用不到 50 行 Python 代码实现全功能 AI 代理应用(逐步指导)
AI 工具正在改变企业家识别趋势和决策的方式,但构建一个可扩展的解决方案来分析创业机会通常需要整合多个数据源并快速处理。然而,通过配备合适工具的先进大语言模型 (LLM),这一过程可以自动化,从而提供可操作的洞察。
在本教程中,我们将指导您构建一个 AI 创业趋势分析代理。这个 AI 代理将分析创业新闻,识别新兴趋势,并验证创业想法。它将使用不到 50 行 Python 代码,结合 Newspaper4k 和 DuckDuckGo,并使用 Claude 3.5 Sonnet。
主要功能:
- 用户输入:允许企业家输入感兴趣的特定创业领域或技术
- 新闻收集:使用 @DuckDuckGo
收集最新的创业新闻和市场分析
- 摘要生成:使用 Newspaper4k 生成经验证信息的简洁摘要
- 趋势分析:识别创业融资、技术应用和市场机会的新兴模式
- 前端界面:@streamlit
提供用户友好的交互界面
系统架构包含三个 Agent:
- 新闻收集:负责搜索和收集相关文章
- 摘要撰写:处理和总结文章内容
- 趋势分析:分析摘要并识别趋势
实现步骤:
- 环境设置:包括安装必要的依赖和获取 API 密钥
- 创建 Streamlit 应用:构建用户界面
- 实现三个 Agent 的功能并将它们组合成一个团队
- 执行分析工作流程并展示结果
我们将构建什么
AI 创业趋势分析代理是为新兴企业家设计的工具,通过识别初现端倪的趋势、潜在市场空白和特定领域的增长机会,生成可操作的洞察。它结合 Newspaper4k 和 DuckDuckGo 扫描并分析以创业为中心的文章和市场数据。借助 Claude 3.5 Sonnet,它处理这些信息以提取新兴模式,并帮助企业家发现有前景的创业机会。
功能
- 用户提示:企业家可以输入感兴趣的特定创业领域或技术进行研究。
- 新闻收集:该代理通过 DuckDuckGo 收集最近的创业新闻、融资动态和市场分析。
- 摘要生成:使用 Newspaper4k 生成经过验证信息的简洁摘要。
- 趋势分析:系统识别创业融资、技术采纳和市场机会的趋势,并分析相关故事。
- Streamlit 界面:应用程序采用 Streamlit 构建的用户友好界面,方便交互。
前置条件
在我们开始之前,请确保您已经具备以下条件:
- 在您的计算机上安装 Python(建议使用 3.7 或更高版本)
- 拥有 Anthropic API 密钥
- 对 Python 编程有基本的了解
- 使用您喜欢的代码编辑器(我们推荐 VS Code 或 PyCharm,它们对 Python 的支持非常优秀)
逐步操作指南
设置开发环境
首先,让我们准备好开发环境:
- 克隆 GitHub 仓库:
git clone https://github.com/Shubhamsaboo/awesome-llm-apps.git
- 进入 ai_startup_trend_analysis_agent 文件夹:
cd ai_agent_tutorials/ai_startup_trend_analysis_agent
- 安装 必要的依赖项:
pip install -r requirements.txt
- 获取您的 API 密钥:注册 Anthropic 账户并获取您的 API 密钥。
创建 Streamlit 应用
让我们创建应用。新建文件 startup_trends_agent.py
,并添加以下代码:
- 导入必要的库:
• 用于构建网页应用的 Streamlit
• 用于构建 AI 代理和工具的 Phidata
• 大语言模型 Claude Sonnet 3.5
• 用于搜索的 DuckDuckGo
• 用于文章处理的 Newspaper4k
import streamlit as st
from phi.agent import Agent
from phi.tools.duckduckgo import DuckDuckGo
from phi.model.anthropic import Claude
from phi.tools.newspaper4k import Newspaper4k
from phi.tools import Tool
import logging
- 创建 Streamlit 应用:
• 界面简洁清晰
• 安全的 API 密钥输入
• 基于主题的分析
# 设置 Streamlit 应用
st.title("AI 创业趋势分析助手 📈")
st.caption("只需点击一下,获取基于您感兴趣主题的最新趋势分析和创业机会。")
topic = st.text_input("输入您感兴趣的创业领域:")
anthropic_api_key = st.sidebar.text_input("输入 Anthropic API 密钥", type="password")
if st.button("生成分析"):
if not anthropic_api_key:
st.warning("请输入必需的 API 密钥。")
else:
with st.spinner("正在处理您的请求..."):
try:
# 初始化 Anthropic 模型
anthropic_model = Claude(id ="claude-3-5-sonnet-20240620",api_key=anthropic_api_key)
- 创建新闻收集代理:
• 使用 DuckDuckGo 进行搜索
• 收集最新文章
• 限制为 5 条结果以保持重点
# 定义新闻收集代理 - DuckDuckGo 搜索工具使代理能够从网上搜索信息。
search_tool = DuckDuckGo(search=True, news=True, fixed_max_results=5)
news_collector = Agent(
name="新闻收集器",
role="收集关于指定主题的最新新闻文章",
tools=[search_tool],
model=anthropic_model,
instructions=["收集该主题的最新文章"],
show_tool_calls=True,
markdown=True,
)
- 添加摘要生成代理:
• 处理文章内容
• 创建简洁摘要
• 保留关键信息
# 定义摘要生成代理
news_tool = Newspaper4k(read_article=True, include_summary=True)
summary_writer = Agent(
name="摘要生成器",
role="为收集到的新闻文章生成摘要",
tools=[news_tool],
model=anthropic_model,
instructions=["提供文章的简洁摘要"],
show_tool_calls=True,
markdown=True,
)
- 创建趋势分析代理:
• 分析总结内容
• 识别趋势
• 发掘创业机会
# 定义趋势分析代理
trend_analyzer = Agent(
name="趋势分析器",
role="从摘要中分析趋势",
model=anthropic_model,
instructions=["识别新兴趋势和潜在创业机会"],
show_tool_calls=True,
markdown=True,
)
- 将代理组合为团队:
• 协调工作流
• 确保数据流动
• 保持上下文一致
# Phidata 的多代理团队设置:
agent_team = Agent(
agents=[news_collector, summary_writer, trend_analyzer],
instructions=[
"首先,使用 DuckDuckGo 搜索与用户指定主题相关的最新新闻文章。",
"然后,将收集到的文章链接提供给摘要生成器。",
"重要提示:必须确保摘要生成器接收到所有文章链接以供阅读。",
"接下来,摘要生成器将阅读文章并为每篇文章准备简洁的摘要。",
"总结后,摘要将被传递给趋势分析器。",
"最后,趋势分析器将根据提供的摘要,识别新兴趋势和潜在创业机会,并以详细报告形式提供,让任何年轻企业家都能轻松获取巨大价值。"
],
show_tool_calls=True,
markdown=True,
)
- 执行分析工作流:
• 顺序处理
• 确保数据流动
• 显示结果
# 步骤 1:收集新闻
news_response = news_collector.run(f"收集关于 {topic} 的最新新闻")
articles = news_response.content
# 步骤 2:总结文章
summary_response = summary_writer.run(f"总结以下文章:\n{articles}")
summaries = summary_response.content
# 步骤 3:分析趋势
trend_response = trend_analyzer.run(f"从以下摘要中分析趋势:\n{summaries}")
analysis = trend_response.content
# 显示结果 - 如果需要进一步使用,可以取消注释以下两行以获取摘要!
# st.subheader("新闻摘要")
# # st.write(summaries)
st.subheader("趋势分析和潜在创业机会")
st.write(analysis)
except Exception as e:
st.error(f"发生错误:{e}")
else:
st.info("输入主题和 API 密钥,然后点击“生成分析”以开始。")
运行应用
代码准备就绪后,启动应用。
- 在终端中,导航到项目文件夹,并运行以下命令:
streamlit run startup_trends_agent.py
- Streamlit 将提供一个本地 URL(通常是 http://localhost:8501)。在浏览器中打开,输入您的 API 密钥,选择您想要探索的领域,并观察您的 AI 代理为您进行研究。
工作应用演示
总结
在不到 50 行代码中,您的 AI 代理已经准备好为企业家提供趋势分析的可操作性洞见。
为了进一步增强功能,可以考虑以下方面:
- 可视化:以图形方式展示趋势,使模式更加清晰且具有可操作性。
- 数据过滤:为用户添加高级过滤器,以根据地理位置、融资规模或技术类型细化洞见。
- 协作:在应用内启用共享和团队讨论功能,便于更深入地利用洞见。
持续实验和改进,构建更智能的 AI 解决方案!