本示例展示了如何构建 Sage,一个类似 Perplexity 的答案引擎,它可以根据用户的查询智能地决定是执行网络搜索还是使用 ExaTools 进行深度分析。

Sage:

  1. 使用实时网络搜索(DuckDuckGo)和深度上下文分析(ExaTools)来提供全面的答案
  2. 根据查询的复杂性智能地选择工具
  3. 提供交互式 Streamlit 用户界面,支持会话管理和聊天记录导出
  4. 支持多个 LLM 提供商(OpenAI、Anthropic、Google、Groq)

主要功能

  • 自然语言查询理解和处理
  • 与 DuckDuckGo 的实时网络搜索集成
  • 使用 ExaTools 进行深度上下文分析
  • 支持多个 LLM 提供商
  • 使用 SQLite 进行会话管理
  • 聊天记录导出
  • 交互式 Streamlit 用户界面

可以尝试的简单查询

  • “告诉我关于美国在 2025 年实施的关税”
  • “哪个推理模型更好:o3-mini 还是 DeepSeek R1?”
  • “告诉我关于 Agno”
  • “可再生能源的最新趋势是什么?“

高级分析查询

  • “评估新兴的 AI 法规如何影响创新”
  • “比较电动汽车与氢燃料汽车对环境的影响”
  • “分析全球半导体供应链的挑战”
  • “解释量子计算对加密技术的影响”

代码

完整的代码可在 Agno 仓库 中找到。

使用方法

1

克隆仓库

git clone https://github.com/agno-agi/agno.git
cd agno
2

创建虚拟环境

python3 -m venv .venv
source .venv/bin/activate  # 在 Windows 上:.venv\Scripts\activate
3

安装依赖项

pip install -r cookbook/examples/streamlit_apps/answer_engine/requirements.txt
4

设置 API 密钥

# 必需
export OPENAI_API_KEY=***
export EXA_API_KEY=***

# 可选(用于额外模型)
export ANTHROPIC_API_KEY=***
export GOOGLE_API_KEY=***
export GROQ_API_KEY=***

我们建议使用 gpt-4o 以获得最佳性能。

5

启动应用程序

streamlit run cookbook/examples/streamlit_apps/answer_engine/app.py

打开 localhost:8501 开始使用 Sage。

模型选择

该应用程序支持多个模型提供商:

  • OpenAI (o3-mini, gpt-4o)
  • Anthropic (claude-3-5-sonnet)
  • Google (gemini-2.0-flash-exp)
  • Groq (llama-3.3-70b-versatile)

代理配置

代理配置在 agents.py 中,提示在 prompts.py 中:

  • 要修改提示,请更新 prompts.py 文件
  • 要添加新工具或模型,请更新 agents.py 文件

支持

需要帮助?加入我们的 Discourse 社区 获取支持!