CompetiAI
人工智能驱动的竞争情报工具
现在每个做生意的人都有竞争对手,而且随着技术的发展,保持竞争优势不仅重要,而且至关重要。
为此,许多公司开始使用竞争情报 (CI)工具,这些工具可以帮助追踪竞争对手的活动、产品、市场变化以及客户行为和情绪。在人工智能的支持下,这些工具更进一步,能够分析数据并将其转化为切实可行的洞察,帮助企业做出更明智的决策,保持竞争优势。
人工智能增强型持续集成 (CI) 工具不仅能观察趋势,还能帮助企业更深入地了解行业动态,而且通常是实时的。借助这些工具,企业可以主动适应变化,应对竞争对手的动向,甚至在新机遇广为人知之前就发现它们。事实上,持续集成不仅适用于大型企业,它也能为小型企业创造公平的竞争环境,使它们能够做出与大型企业一样明智的数据驱动型决策。
竞争情报 (CI) 不仅仅是关注竞争对手的动态,更是获取宝贵的洞察,指导您的业务决策。无论您是调整定价策略、优化信息传递、优化价值主张,还是开发新产品,CI 都能为您提供做出明智选择所需的数据。但它的意义不仅仅在于收集信息,更在于有效地利用这些信息,保持领先地位。
以下是 AI 驱动的 CI 工具可以解决的一些关键问题:
保持领先于竞争对手:
通过实时追踪竞争对手的定价、产品和营销活动,企业可以预测市场变化并提前采取行动,而不是事后才做出反应。麦肯锡公司强调了持续集成工具如何帮助企业在竞争环境中保持领先地位。
提升市场定位:
CI工具能够揭示竞争对手的产品定位,并识别市场空白,帮助企业调整产品组合。《哈佛商业评论》展示了CI如何提升市场定位,并帮助企业瞄准尚未开发的市场。
简化决策流程:
人工智能驱动的持续集成 (CI) 工具可以过滤掉不必要的数据,并提供切实可行的洞察,使领导层能够更轻松地快速做出明智的决策。据 Gartner 称,这种自动化技术能够实现更快、更具战略性的决策。
识别新兴趋势:
人工智能工具可以扫描海量数据集,及早发现新兴趋势和消费者行为,帮助企业保持竞争力。Forrester解释了这些工具如何帮助企业在趋势成为主流之前就有所察觉。
加强产品开发和创新:
通过了解竞争对手的产品和消费者反馈,企业可以改进自身产品以满足市场需求。Forrester强调了竞争情报 (CI) 在推动创新和产品开发方面发挥的作用。
优化营销和销售:
CI 工具可以分析竞争对手的营销策略,揭示哪些策略有效(或无效),帮助企业调整营销活动并提升参与度。《哈佛商业评论》概述了 CI 如何优化营销策略,从而实现更高的客户转化率。
降低风险,提升市场认知:
追踪竞争对手的活动可以帮助企业发现潜在风险或市场突变,从而调整战略,避免遭遇挫折。麦肯锡公司指出,竞争情报 (CI) 可以通过预测竞争对手的动向来降低风险。
有了这些优势,很明显,将竞争情报工具集成到您的业务中不再是可选的,而是必不可少的。
现在我们了解了竞争情报的价值,让我们深入了解如何构建自己的人工智能竞争情报工具。
我们将使用以下工具:
首先,设置 Python 环境。然后,在项目的根文件夹中,创建一个名为 的文件requirements.txt
。将以下依赖项复制并粘贴到该文件中:
streamlit
langchain
langchain_ollama
selenium
beautifulsoup4
lxml
html5lib
python-dotenv
接下来,通过运行以下命令激活您的环境:
./name_of_environment/Scripts/Activate
然后,通过运行以下命令一次性安装所有依赖项:
pip install -r requirements.txt
main.py
在根文件夹中创建一个名为 的 Python 文件。在此文件中,我们将构建一个简单的 Streamlit 用户界面。
Streamlit 是一款极其简单的工具,可用于以极少的代码创建基于 Python 的 Web 应用程序。它是与大型语言模型 (LLM) 等工具交互的最简单方法之一,我们将在本教程中使用这些工具。
以下是设置界面的代码:
import streamlit as st
st.title("Competitive Intelligence Tool (Demo)")
url = st.text_input("Enter Competitor's Website URL")
if st.button("Gather Insights"):
if url:
st.write("Analyzing the website...")
要运行 Streamlit 应用程序,请打开终端,激活虚拟环境(如果尚未激活),然后键入以下命令,指定包含 Streamlit 应用程序的 Python 文件的名称(main.py
在本例中为):
streamlit run main.py
它将打开一个包含该应用程序的网络服务器。
构建好 Streamlit UI 后,下一步就是从我们想要抓取的网站实际抓取数据。为此,我们将使用一个名为Selenium的 Python 模块。
Selenium 允许我们自动化 Web 浏览器,因此我们实际上可以导航到网页,抓取该页面上的所有内容,然后对内容进行一些过滤,然后将其传递到 ChatGPT 或 Gemini 等 LLM,然后我们可以使用该 LLM 解析数据并给出有意义的响应。
Bright Data 是一个网络数据平台,它使企业能够收集和构建任何公共网络数据,并且由于广泛的代理网络,可以从任何位置准确地查看网络,而不会受到阻止或误导。
对于本教程,您可以完全免费使用它们。
单击此处创建帐户。
之后,转到您的仪表板并创建一个名为Scraping Browser 的工具的新实例/区域。
这款抓取浏览器内置验证码解析器,并连接到代理网络。这意味着它会自动提供你的新 IP 地址,并循环使用这些 IP 地址,模拟你作为真实用户访问网站。
这也意味着如果有验证码,它会自动为您解决,因此您无需处理被验证码阻止的问题。
因此,输入区域名称并创建它。
然后单击“确定”。
Bright Data 对于开发人员来说的一个主要优势是,它只适用于您已有的代码。
在本例中,我们使用的是 Selenium。因此,只需复制 URL
然后在根目录中创建一个.env
文件并粘贴 URL:
SBR_WEBDRIVER="paste_the_url_here"
接下来,创建一个名为 的新文件scrape.py
。我们将在这里编写网页抓取功能,并将其与主文件分开,以便于我们导航。
首先,将一些 selenium 模块导入到您的scrape.py
文件中,然后编写一个函数,该函数获取网站的域名,抓取网页的所有内容,清理它,然后返回所有内容。
from selenium.webdriver import Remote, ChromeOptions
from selenium.webdriver.chromium.remote_connection import ChromiumRemoteConnection
from bs4 import BeautifulSoup
from dotenv import load_dotenv
import os
load_dotenv()
SBR_WEBDRIVER = os.getenv("SBR_WEBDRIVER")
def scrape_website(website):
print("Connecting to Scraping Browser...")
sbr_connection = ChromiumRemoteConnection(SBR_WEBDRIVER, "goog", "chrome")
with Remote(sbr_connection, options=ChromeOptions()) as driver:
driver.get(website)
print("Waiting captcha to solve...")
solve_res = driver.execute(
"executeCdpCommand",
{
"cmd": "Captcha.waitForSolve",
"params": {"detectTimeout": 10000},
},
)
print("Captcha solve status:", solve_res["value"]["status"])
print("Navigated! Scraping page content...")
html = driver.page_source
return html
def extract_body_content(html_content):
soup = BeautifulSoup(html_content, "html.parser")
body_content = soup.body
if body_content:
return str(body_content)
return ""
def clean_body_content(body_content):
soup = BeautifulSoup(body_content, "html.parser")
for script_or_style in soup(["script", "style"]):
script_or_style.extract()
# Get text or further process the content
cleaned_content = soup.get_text(separator="\n")
cleaned_content = "\n".join(
line.strip() for line in cleaned_content.splitlines() if line.strip()
)
return cleaned_content
def split_dom_content(dom_content, max_length=6000):
return [
dom_content[i : i + max_length] for i in range(0, len(dom_content), max_length)
]
创建一个名为 的新文件parse.py
。然后复制并粘贴下面的代码,然后我们将在本地设置 Ollama,用于执行 LLM。
from langchain_ollama import OllamaLLM
from langchain_core.prompts import ChatPromptTemplate
template = (
"You are tasked with extracting or generating specific information based on the following text content: {dom_content}. "
"Please follow these instructions carefully:\n\n"
"1. **Follow Instructions:** Perform the task as described here: {parse_description}.\n"
"2. **Precise Output:** Provide the most concise and accurate response possible.\n"
"3. **No Additional Text:** Do not include extra comments, explanations, or unrelated information in your response."
)
model = OllamaLLM(model="llama3.2")
def parse_with_ollama(dom_chunks, parse_description):
"""
Handles a variety of tasks based on the provided parse_description.
Parameters:
- dom_chunks (list of str): Chunks of text content to process.
- parse_description (str): Instruction for the task (e.g., "Find competitors", "Summarize product").
Returns:
- str: Combined result of all tasks across chunks.
"""
prompt = ChatPromptTemplate.from_template(template)
chain = prompt | model
parsed_results = []
for i, chunk in enumerate(dom_chunks, start=1):
response = chain.invoke(
{"dom_content": chunk, "parse_description": parse_description}
)
print(f"Processed batch {i}: {response}")
parsed_results.append(response)
return "\n".join(parsed_results)
Ollama 允许您在计算机上本地运行开源 LLM。因此,您无需依赖 API 令牌之类的工具,而且它完全免费。
要开始使用 Ollama,请访问此链接:https://ollama.com/download
下载并安装 Ollama 后,打开终端或命令提示符并输入 Ollama 命令:
ollama
你会得到类似这样的结果:
接下来,你需要拉取一个 Ollama 模型。你需要先将 Ollama 模型下载到本地,然后才能执行你的代码。
为此,请访问https://github.com/ollama/ollama
在这里您将看到所有可以使用的不同模型。
根据你的电脑配置选择合适的型号。本教程使用Llama 3.2
型号。它只需要 3 GB 的内存。
接下来,返回终端或命令提示符并运行以下命令:
ollama pull llama 3.2
然后,系统会将模型下载到您的电脑上。下载完成后,您就可以在parse.py
文件中使用该模型了。
现在您可以使用以下命令继续运行代码:
streamlit run main.py
一切就绪。
您可以继续随意修改代码,使其能够同时从多个 URL 或多个域获取数据。
使用pandas.pydata.org和matplotlib.org添加数据可视化,使其对您的业务具有可操作性
甚至可以自动化数据收集流程,定期跟踪竞争对手的动态。使用cron 作业或 Python 的计划模块,按定义的时间间隔运行数据抓取和分析脚本。
要查看完整代码,请查看 GitHub 仓库:
为您的企业或产品构建竞争情报工具潜力巨大。通过结合网页抓取和文本分析,您可以创建一个工具,帮助您在竞争中保持领先地位,并做出更明智的决策。
这可以显著改善您的产品开发、营销策略、销售拓展和整体市场知名度。
这些工具提供的竞争优势是无价的,尤其是在瞬息万变、竞争激烈的行业。随着人工智能和机器学习的进步,您可以期待更先进的功能,从预测分析到实时市场警报。
如果您正在考虑构建 CI 工具,那么从这样的项目入手是获得实践经验的绝佳途径。随着您发现新方法可以为您的业务运营增值,您可以不断尝试、迭代和改进该工具。
对本教程有任何想法或反馈吗?请在下方评论区分享,或随时与我联系。我很乐意听听您如何利用竞争情报来转型您的业务!
鏂囩珷鏉ユ簮锛�https://dev.to/sholajgede/build-a-competitive-intelligence-tool-powered-by-ai-1nd1