本示例展示了如何构建 Sage,一个类似 Perplexity 的答案引擎,它可以根据用户的查询智能地决定是执行网络搜索还是使用 ExaTools 进行深度分析。
Sage:
- 使用实时网络搜索(DuckDuckGo)和深度上下文分析(ExaTools)来提供全面的答案
- 根据查询的复杂性智能地选择工具
- 提供交互式 Streamlit 用户界面,支持会话管理和聊天记录导出
- 支持多个 LLM 提供商(OpenAI、Anthropic、Google、Groq)
主要功能
- 自然语言查询理解和处理
- 与 DuckDuckGo 的实时网络搜索集成
- 使用 ExaTools 进行深度上下文分析
- 支持多个 LLM 提供商
- 使用 SQLite 进行会话管理
- 聊天记录导出
- 交互式 Streamlit 用户界面
可以尝试的简单查询
- “告诉我关于美国在 2025 年实施的关税”
- “哪个推理模型更好:o3-mini 还是 DeepSeek R1?”
- “告诉我关于 Agno”
- “可再生能源的最新趋势是什么?“
高级分析查询
- “评估新兴的 AI 法规如何影响创新”
- “比较电动汽车与氢燃料汽车对环境的影响”
- “分析全球半导体供应链的挑战”
- “解释量子计算对加密技术的影响”
完整的代码可在 Agno 仓库 中找到。
使用方法
克隆仓库
git clone https://github.com/agno-agi/agno.git
cd agno
创建虚拟环境
python3 -m venv .venv
source .venv/bin/activate # 在 Windows 上:.venv\Scripts\activate
安装依赖项
pip install -r cookbook/examples/streamlit_apps/answer_engine/requirements.txt
设置 API 密钥
# 必需
export OPENAI_API_KEY=***
export EXA_API_KEY=***
# 可选(用于额外模型)
export ANTHROPIC_API_KEY=***
export GOOGLE_API_KEY=***
export GROQ_API_KEY=***
我们建议使用 gpt-4o 以获得最佳性能。
启动应用程序
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 社区 获取支持!
Responses are generated using AI and may contain mistakes.