BMTools简介
BMTools是由OpenBMB团队开发的开源工具学习仓库,旨在通过工具扩展语言模型的能力,为研究人员和开发者提供一个构建和共享工具的平台。该项目受到开源项目LangChain的启发,针对ChatGPT插件等开源工具的使用进行了优化,致力于实现ChatGPT插件的开源学术版本。
通过BMTools,用户可以轻松地通过编写Python函数来构建插件,或使用外部的ChatGPT插件。这种方法不仅简化了工具开发过程,还为大型语言模型提供了更多样化的能力扩展途径。
BMTools的主要特性
1. 易于使用的工具开发接口
BMTools提供了简洁的API,允许开发者通过编写Python函数快速构建和注册新工具。例如,用户可以轻松创建一个执行Python代码的工具:
from bmtools.tools import Tool
from pydantic import BaseModel
class ExecutionQuery(BaseModel):
code: str
class ExecutionResult(BaseModel):
result: str
def build_python_tool(config) -> Tool:
tool = Tool(
"PythonTool",
"A plugin that can execute python code",
name_for_model="python",
description_for_model="A plugin that can execute python code",
contact_email="your@email",
)
@tool.post("/execute")
def execute_python_code(query : ExecutionQuery) -> ExecutionResult:
return ExecutionResult(
result=eval(query.code)
)
return tool
2. 支持多种工具类型
BMTools不仅支持本地开发的工具,还可以集成外部的ChatGPT插件。用户可以通过简单的配置来加载和使用这些工具:
from bmtools.agent.tools_controller import load_valid_tools, MTQuestionAnswerer
tools_mappings = {
"klarna": "https://www.klarna.com/",
"chemical-prop": "http://127.0.0.1:8079/tools/chemical-prop/",
"wolframalpha": "http://127.0.0.1:8079/tools/wolframalpha/",
}
tools = load_valid_tools(tools_mappings)
qa = MTQuestionAnswerer(openai_api_key='', all_tools=tools)
agent = qa.build_runner()
3. 灵活的工具组合
BMTools允许用户同时使用多个工具,语言模型会递归地处理这些工具。它将整个工具视为一个API,向其发送问题,工具调用其子API解决问题并将结果返回给父工具。这种灵活性使得复杂任务的解决变得更加简单。
4. 优化的提示工程
为了使AI模型更好地理解和使用工具,BMTools提供了多个优化点:
name_for_model
: 告诉模型工具的用途description_for_model
: 在调用工具前向模型展示,包含如何使用API的信息- API函数名称: 对模型的API选择起重要作用
- 函数的文档字符串: 可以建议模型是否使用该API
- 函数的返回值: 可以为模型提供错误信息,指导下一步操作
BMTools的应用场景
BMTools在多个领域展现出了强大的应用潜力:
-
科研辅助: 研究人员可以利用BMTools构建专门的工具来处理复杂的数据分析任务,如化学属性计算、文献检索等。
-
教育技术: 教育工作者可以开发交互式学习工具,帮助学生更好地理解复杂概念。
-
自动化工作流: 开发者可以创建自动化工具,简化日常工作流程,提高生产效率。
-
人工智能研究: BMTools为研究人员提供了一个探索语言模型与外部工具交互的平台,推动了AI领域的创新。
BMTools的最新进展
BMTools团队一直在积极推动项目的发展和完善。最近的一些重要更新包括:
- 发布了ToolBench,这是一个大规模的工具学习基准,同时还附带了一个功能强大的模型。
- 部分发布了论文中使用的评估数据,并创建了大规模的高质量工具使用训练数据。
- 新增支持百度地图、Google Scholar搜索和Zillow等工具。
- WebCPM(中文版WebGPT)被ACL 2023接收。
此外,BMTools还支持了Auto-GPT和BabyAGI等先进的AI代理系统,进一步扩展了其应用范围。
结语
BMTools作为一个开源的工具学习平台,为大型语言模型的能力扩展提供了强大的支持。它不仅简化了工具开发和集成的过程,还为AI研究和应用开辟了新的可能性。随着项目的不断发展和社区的积极参与,BMTools有望在推动AI技术进步和创新应用方面发挥越来越重要的作用。
对于有兴趣深入了解或贡献到BMTools项目的开发者和研究人员,可以访问BMTools的GitHub仓库获取更多信息。同时,BMTools团队也欢迎社区成员贡献新的工具和改进建议,共同推动这个开源项目的发展。
通过BMTools,我们正在见证人工智能与工具学习的融合,这无疑将为未来的AI应用带来无限可能。让我们期待BMTools在未来能够为更多创新性的AI解决方案铺平道路,推动整个技术领域的进步.