OctoTools 使用教程
1. 项目介绍
OctoTools 是一个由 优快云 公司开发的、基于开源协议的开源性框架,它是一个无需训练、用户友好且易于扩展的代理框架,旨在解决跨不同领域的复杂推理问题。该框架引入了标准化的“工具卡片”来封装工具功能,并具备高级和低级规划能力的规划器,以及用于执行工具使用的执行器。
2. 项目快速启动
环境搭建
首先,您需要创建一个 Conda 环境,并激活它:
conda env create -f conda.yaml
conda activate octotools
然后,安装所需的依赖:
pip install -e .
接下来,创建一个 .env
文件并配置相关 API 密钥:
# .env 文件内容示例
#
# 用于 GPT-4o 动力的工具
OPENAI_API_KEY=<你的 API 密钥>
#
# 用于 Google 搜索工具
GOOGLE_API_KEY=<你的 API 密钥>
GOOGLE_CX=<你的 CX>
#
# 用于高级对象检测工具(可选)
DINO_KEY=<你的 DINO 密钥>
确保按照 Google 自定义搜索 API 文档获取 Google API Key 和 Google CX。
工具测试
使用以下命令测试工具箱中的工具是否可用:
cd octotools/tools
source test_all_tools.sh
运行示例
以 CLEVR-Math
为例,运行推理:
cd octotools/tasks
# 仅使用 GPT-4 的推理
source clevr-math/run_gpt4o.sh
# 使用基础工具的推理
source clevr-math/run_octotool_base.sh
# 使用 OctoTools 的优化工具集的推理
source clevr-math/run_octotools.sh
更多基准测试可在 tasks
目录下找到。
3. 应用案例和最佳实践
- 工具集成:OctoTools 允许用户根据需要轻松添加新的工具卡片,替换或更新现有工具,实现工具的无缝集成。
- 任务定制:用户可以为特定任务启用整个工具集或工具的子集,通过在
tasks/solve.py
中设置enabled_tools
参数来实现。 - 可视化分析:框架提供了工具使用的可视化分析,帮助用户理解工具在不同任务中的作用和效果。
4. 典型生态项目
- Chameleon:一个早期尝试增强语言模型工具的项目。
- TextGrad:一个创新且设计优雅的框架。
- AutoGen:在构建代理系统中表现出色的项目。
- LangChain:以丰富的功能著称的强大代理系统框架。
通过以上教程,您可以开始使用 OctoTools 来解决复杂的推理问题,并根据具体需求定制和扩展框架。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考