shishirpatil--gorilla
196 行
16 KiB
Markdown
196 行
16 KiB
Markdown
<!-- WEHUB_ZH_README -->
|
||
> [!NOTE]
|
||
> 本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。
|
||
> [English](./README.en.md) · [原始项目](https://github.com/ShishirPatil/gorilla) · [上游 README](https://github.com/ShishirPatil/gorilla/blob/HEAD/README.md)
|
||
> 原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。
|
||
|
||
# Gorilla:连接海量 API 的大型语言模型
|
||
|
||
<div align="center">
|
||
<img src="https://github.com/ShishirPatil/gorilla/blob/gh-pages/assets/img/logo.png" width="50%" height="50%">
|
||
</div>
|
||
|
||
<div align="center">
|
||
|
||
[](https://arxiv.org/abs/2305.15334) [](https://discord.gg/grXXvj9Whz) [](https://gorilla.cs.berkeley.edu/) [](https://gorilla.cs.berkeley.edu/blog.html) [](https://huggingface.co/gorilla-llm)
|
||
|
||
</div>
|
||
|
||
## 最新动态
|
||
> 📢 查看我们详细的 [Berkeley Function Calling Leaderboard 更新日志](/berkeley-function-call-leaderboard/CHANGELOG.md)(最后更新:)),了解 Berkeley Function Calling Leaderboard 最新的数据集/模型更新!
|
||
|
||
|
||
- 🤖 [07/17/2025] 宣布推出 BFCL V4 Agentic!由于函数调用构成 Agentic 系统的基石,BFCL V4 Agentic 基准专注于真实世界 Agentic 场景中的工具调用,涵盖带多跳推理与错误恢复的网页搜索、智能体内存管理,以及格式敏感性评估。[[Web-search 博客](https://gorilla.cs.berkeley.edu/blogs/15_bfcl_v4_web_search.html)] [[Memory 博客](https://gorilla.cs.berkeley.edu/blogs/16_bfcl_v4_memory.html)] [[格式敏感性博客](https://gorilla.cs.berkeley.edu/blogs/17_bfcl_v4_prompt_variation.html)] [[PR](https://github.com/ShishirPatil/gorilla/pull/1019)] [[Tweet](https://x.com/shishirpatil_/status/1946020561626546176)]
|
||
|
||
- 🎯 [10/04/2024] 推出 Gorilla X LMSYS Chatbot Arena 的 Agent Arena!在搜索、金融、RAG 等任务中比较不同智能体。通过我们新颖的排名系统与社区驱动的 prompt 中心,探索哪些模型与工具最适合特定任务。[[博客](https://gorilla.cs.berkeley.edu/blogs/14_agent_arena.html)] [[Arena](http://agent-arena.com)] [[排行榜](http://agent-arena.com/leaderboard)] [[数据集](https://github.com/ShishirPatil/gorilla/tree/main/agent-arena#evaluation-directory)] [[Tweet](https://x.com/shishirpatil_/status/1841876885757977044)]
|
||
|
||
- 📣 [09/21/2024] 宣布 BFCL V3——评估多轮与多步函数调用能力!全新基于状态的评估系统测试模型处理复杂工作流、顺序函数与服务状态的能力。[[博客](https://gorilla.cs.berkeley.edu/blogs/13_bfcl_v3_multi_turn.html)] [[排行榜](https://gorilla.cs.berkeley.edu/leaderboard.html)] [[代码](https://github.com/ShishirPatil/gorilla/tree/main/berkeley-function-call-leaderboard)] [[Tweet](https://x.com/shishirpatil_/status/1837205152132153803)]
|
||
|
||
- 🚀 [08/20/2024] 发布 BFCL V2 • Live!Berkeley Function-Calling Leaderboard 现已纳入企业贡献数据与真实场景。[[博客](https://gorilla.cs.berkeley.edu/blogs/12_bfcl_v2_live.html)] [[实时排行榜](https://gorilla.cs.berkeley.edu/leaderboard_live.html)] [[V2 分类排行榜](https://gorilla.cs.berkeley.edu/leaderboard.html)] [[Tweet](https://x.com/shishirpatil_/status/1825577931697233999)]
|
||
|
||
- ⚡️ [04/12/2024] 很高兴发布 GoEx——用于执行 LLM 生成动作(如代码、API 调用等)的运行时。具备用于在执行后评估 LLM 动作的“事后验证”(post-facto validation),以及用于管理意外动作与风险的“撤销”(undo)和“损害隔离”(damage confinement)抽象。这为完全自主的 LLM 智能体铺平道路,在人不在回路(human-out-of-loop)的情况下增强应用与服务之间的交互。[[博客](https://gorilla.cs.berkeley.edu/blogs/10_gorilla_exec_engine.html)] [[代码](https://github.com/ShishirPatil/gorilla/tree/main/goex)] [[论文](https://arxiv.org/abs/2404.06921)] [[Tweet](https://x.com/shishirpatil_/status/1778485140257452375)]
|
||
|
||
- ⏰ [04/01/2024] 在 [Berkeley function calling leaderboard](https://gorilla.cs.berkeley.edu/leaderboard)! 中引入成本与延迟指标
|
||
- :rocket: [03/15/2024] RAFT:将语言模型适配到特定领域 RAG 已上线] [[Berkeley 博客](https://gorilla.cs.berkeley.edu/blogs/9_raft.html)]
|
||
- :trophy: [02/26/2024] [Berkeley Function Calling Leaderboard](https://gorilla.cs.berkeley.edu/leaderboard) 已上线!
|
||
- :dart: [02/25/2024] [OpenFunctions v2](https://gorilla.cs.berkeley.edu/blogs/7_open_functions_v2.html) 为开源 LLM 树立新的 SoTA!
|
||
- :fire: [11/16/2023] 很高兴发布 [Gorilla OpenFunctions](https://gorilla.cs.berkeley.edu/blogs/4_open_functions.html)
|
||
- 💻 [06/29/2023] 发布 [gorilla-cli](https://github.com/gorilla-llm/gorilla-cli), ——面向 CLI 的 LLM!
|
||
- 🟢 [06/06/2023] 发布可商用、Apache 2.0 许可的 Gorilla 模型
|
||
- :rocket: [05/30/2023] 提供用于与 Gorilla 对话的 [CLI 接口](inference/README.md)!
|
||
- :rocket: [05/28/2023] 发布 Torch Hub 与 TensorFlow Hub 模型!
|
||
- :rocket: [05/27/2023] 发布首个 Gorilla 模型](https://colab.research.google.com/drive/1y78Zj7xHysX0xMpr9S468HYs12Mj6X1F?usp=sharing) 或 [:hugs:](https://huggingface.co/gorilla-llm/gorilla-7b-hf-delta-v0)!
|
||
- :fire: [05/27/2023] 我们发布了 APIZoo 贡献指南,供社区贡献 API!
|
||
- :fire: [05/25/2023] 我们发布 Gorilla 的 APIBench 数据集与评估代码!
|
||
|
||
|
||
## 关于
|
||
|
||
**Gorilla 通过调用 API 使 LLM 能够使用工具。给定自然语言查询,Gorilla 会生成语义和语法均正确的待调用 API。**
|
||
|
||
借助 Gorilla,我们率先展示了如何使用 LLM 准确调用 1,600+(且仍在增长)个 API 调用,同时减少幻觉。本仓库包含用于运行 Gorilla 微调模型的[推理代码](/gorilla/inference)、用于复现论文结果的[评估代码](/gorilla/eval),以及 [APIBench](/data)——规模最大的 API 集合,经过精心整理且易于训练!
|
||
|
||
自首次发布以来,我们已处理约 50 万次请求,并见证了全球开发者的广泛采用。项目已扩展至涵盖工具、评估、排行榜、端到端微调方案、基础设施组件以及 Gorilla API Store:
|
||
|
||
| 项目 | 类型 | 描述(点击展开) |
|
||
|---------|------|---------------------------|
|
||
| [Gorilla Paper](https://arxiv.org/abs/2305.15334) | 🤖 Model<br>📝 Fine-tuning<br>📚 Dataset<br>📊 Evaluation<br>🔧 Infra | <details><summary>连接海量 API 的大型语言模型</summary>• 面向 API 调用的创新微调方法<br>• 在 1,600+ API(APIBench)上的评估<br>• 用于测试时适配的检索增强训练 |
|
||
| [Gorilla OpenFunctions-V2](openfunctions/) | 🤖 Model | <details><summary>可直接替换的函数调用方案,支持多种复杂数据类型与并行执行</summary>• 通过 OpenAI 兼容端点实现多函数与并行函数执行<br>• 原生支持 Python、Java、JavaScript 及 REST API,并扩展数据类型<br>• 函数相关性检测以降低幻觉<br>• 增强的 RESTful API 格式化能力<br>• 在开源模型中达到最先进(SoTA)性能</details> |
|
||
| [Berkeley Function Calling Leaderboard (BFCL)](berkeley-function-call-leaderboard/) | 📊 Evaluation<br>🏆 Leaderboard<br>🔧 Function Calling Infra<br>📚 Dataset | <details><summary>函数调用能力的全面评估</summary>• V1:专家策划数据集,用于评估单轮函数调用<br>• V2:企业贡献数据,面向真实场景<br>• V3:多轮与多步函数调用评估<br>• 所有模型的成本与延迟指标<br>• 用于测试的交互式 API 探索器<br>• 社区驱动的基准测试平台</details> |
|
||
| [Agent Arena](agent-arena/) | 📊 Evaluation<br>🏆 Leaderboard | <details><summary>跨模型、工具与框架比较 LLM 智能体</summary>• 采用 ELO 评分系统的智能体正面对决比较<br>• 框架兼容性测试(LangChain、AutoGPT)<br>• 社区驱动的评估平台<br>• 真实任务性能指标</details> |
|
||
| [Gorilla Execution Engine (GoEx)](goex/) | 🔧 Infra | <details><summary>在安全保障下执行 LLM 生成动作的运行时</summary>• 事后验证(post-facto validation),用于在执行后核验 LLM 动作<br>• 撤销能力与损害隔离(damage confinement)以缓解风险<br>• 对多种服务提供 OAuth2 与 API 密钥认证<br>• 支持 RESTful API、数据库与文件系统操作<br>• 基于 Docker 的沙箱化执行环境</details> |
|
||
| [Retrieval-Augmented Fine-tuning (RAFT)](raft/) | 📝 Fine-tuning<br>🤖 Model | <details><summary>微调 LLM 以实现稳健的特定领域检索</summary>• 面向特定领域 RAG 的创新微调方案<br>• 带直接文档引用的思维链(chain-of-thought)回答<br>• 使用 oracle 与干扰文档进行训练<br>• 在 PubMed、HotpotQA 与 Gorilla 基准上性能提升<br>• 高效适配较小模型用于领域问答</details> |
|
||
| [Gorilla CLI](https://github.com/gorilla-llm/gorilla-cli) | 🤖 Model<br>🔧 Local CLI Infra | <details><summary>面向命令行界面的 LLM</summary>• 用户友好的 CLI 工具,支持约 1500 个 API(Kubernetes、AWS、GCP 等)<br>• 多 LLM 融合的自然语言命令生成<br>• 注重隐私,需明确批准后才执行<br>• 命令历史与交互式选择界面</details> |
|
||
| [Gorilla API Zoo](apizoo/) | 📚 Dataset | <details><summary>社区维护的最新 API 文档库</summary>• 跨领域的集中式可检索 API 索引<br>• 结构化文档格式,含参数、版本与示例<br>• 社区驱动更新以跟上 API 变更<br>• 用于模型训练与微调的丰富数据源<br>• 支持检索增强训练与推理<br>• 通过最新文档减少幻觉</details> |
|
||
|
||
## 快速入门
|
||
|
||
### 快速开始
|
||
在浏览器中试用 Gorilla:
|
||
- 🚀 [Gorilla Colab Demo](https://colab.research.google.com/drive/1y78Zj7xHysX0xMpr9S468HYs12Mj6X1F?usp=sharing): 试用基础 Gorilla 模型
|
||
- 🌐 [Gorilla Gradio Demo](https://huggingface.co/spaces/gorilla-llm/gorilla-demo/): 交互式 Web 界面
|
||
- 🔥 [OpenFunctions Colab Demo](https://colab.research.google.com/drive/1Td3_R5vPael9PnKYHcl-PxmZkZzA9TCo?usp=sharing): 试用最新 OpenFunctions 模型
|
||
- 🎯 [OpenFunctions Website Demo](https://gorilla.cs.berkeley.edu/leaderboard.html#api-explorer): 体验函数调用(function calling)
|
||
- 📊 [Berkeley Function Calling Leaderboard](https://gorilla.cs.berkeley.edu/leaderboard): 比较函数调用能力
|
||
|
||
### 安装选项
|
||
|
||
1. **Gorilla CLI** - 最快的入门方式
|
||
```bash
|
||
pip install gorilla-cli
|
||
gorilla generate 100 random characters into a file called test.txt
|
||
```
|
||
[了解更多关于 Gorilla CLI 的信息 →](https://github.com/gorilla-llm/gorilla-cli)
|
||
|
||
2. **本地运行 Gorilla**
|
||
```bash
|
||
git clone https://github.com/ShishirPatil/gorilla.git
|
||
cd gorilla/inference
|
||
```
|
||
[详细的本地设置说明 →](/gorilla/inference/README.md)
|
||
|
||
3. **使用 OpenFunctions**
|
||
```python
|
||
import openai
|
||
|
||
openai.api_key = "EMPTY"
|
||
openai.api_base = "http://luigi.millennium.berkeley.edu:8000/v1"
|
||
|
||
# Define your functions
|
||
functions = [{
|
||
"name": "get_current_weather",
|
||
"description": "Get weather in a location",
|
||
"parameters": {
|
||
"type": "object",
|
||
"properties": {
|
||
"location": {"type": "string"},
|
||
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]}
|
||
},
|
||
"required": ["location"]
|
||
}
|
||
}]
|
||
|
||
# Make API call
|
||
completion = openai.ChatCompletion.create(
|
||
model="gorilla-openfunctions-v2",
|
||
messages=[{"role": "user", "content": "What's the weather in San Francisco?"}],
|
||
functions=functions
|
||
)
|
||
```
|
||
[OpenFunctions 文档 →](/openfunctions/README.md)
|
||
|
||
### 🔧 其他快速入门
|
||
|
||
- 📊 **评估与基准测试(Evaluation & Benchmarking)**
|
||
- [Berkeley Function Calling Leaderboard](/berkeley-function-call-leaderboard/README.md):比较函数调用能力
|
||
- [Agent Arena](/agent-arena/README.md):评估智能体工作流
|
||
- [Gorilla Paper Evaluation Scripts](/gorilla/eval/README.md):运行你自己的评估
|
||
|
||
- 🛠️ **开发工具(Development Tools)**
|
||
- [GoEx](/goex/README.md):安全执行 LLM 生成的操作
|
||
- [RAFT](/raft/README.md):针对特定领域任务微调模型
|
||
- [API Store](/data/README.md):贡献并使用 API
|
||
|
||
|
||
## 常见问题
|
||
1. 我想在商业场景中使用 Gorilla。会有 Apache 2.0 许可的版本吗?
|
||
|
||
有的!我们现在提供可在商业场景中无任何附加义务使用的模型。
|
||
|
||
|
||
2. 我们可以将 Gorilla 与其他工具(如 Langchain 等)一起使用吗?
|
||
|
||
完全可以!你提到了我们工具的一个突出优势。Gorilla 是一个端到端模型,专门用于提供正确的 API 调用(工具),无需任何额外编码。它旨在作为更广泛生态系统的一部分,并可灵活集成到智能体框架(agentic frameworks)及其他工具中。
|
||
|
||
Langchain 是一款多功能的开发者工具。其「agents」可以高效替换任意 LLM,包括 Gorilla,使其成为适应各种需求的高度灵活解决方案。
|
||
|
||
这些工具在协作时才能真正发挥优势,彼此互补长处与能力,从而打造更强大、更全面的解决方案。这正是你的贡献可以发挥作用的地方。我们热烈欢迎任何有助于进一步改进和完善这些工具的反馈。
|
||
|
||
请查看我们的博客文章 [How to Use Gorilla: A Step-by-Step Walkthrough](https://gorilla.cs.berkeley.edu/blogs/5_how_to_gorilla.html),了解将 Gorilla 集成到项目中的各种方式。
|
||
|
||
## 项目路线图
|
||
在不久的将来,我们计划发布以下内容:
|
||
|
||
- [ ] 多模态函数调用排行榜
|
||
- [ ] 智能体函数调用排行榜
|
||
- [ ] 新一批用户贡献的实时函数调用评估
|
||
- [ ] 用于评估污染的 BFCL 指标
|
||
- [ ] 支持更多语言和多轮能力的 Openfunctions-v3 模型
|
||
- [x] Agent Arena:跨模型、工具和框架比较 LLM 智能体 [10/04/2024]
|
||
- [x] 多轮与多步函数调用评估 [09/21/2024]
|
||
- [x] 用户贡献的实时函数调用排行榜 [08/20/2024]
|
||
- [x] 包含成本与延迟的 BFCL 系统指标 [04/01/2024]
|
||
- [x] Gorilla Execution Engine (GoEx) - 在安全保障下执行 LLM 生成操作的运行时 [04/12/2024]
|
||
- [x] 用于评估工具调用/函数调用模型的 Berkeley Function Calling leaderboard (BFCL) [02/26/2024]
|
||
- [x] 支持更多语言(Java、JS、Python)及相关性检测的 Openfunctions-v2 [02/26/2024]
|
||
- [x] 便于访问所有 API 的 API Zoo Index [02/16/2024]
|
||
- [x] 支持并行与多重函数调用的 Openfunctions-v1,Apache 2.0 [11/16/2023]
|
||
- [x] Openfunctions-v0,Apache 2.0 函数调用模型 [11/16/2023]
|
||
- [X] 发布可在商业场景使用的、Apache 2.0 许可的 Gorilla 模型 [06/05/2023]
|
||
- [X] 发布 APIBench 中所有 API 的权重 [05/28/2023]
|
||
- [X] 本地运行 Gorilla LLM [05/28/2023]
|
||
- [X] 发布 HF 模型 API 的权重 [05/27/2023]
|
||
- [X] 面向 HF 模型 API 的托管 Gorilla LLM 聊天服务 [05/27/2023]
|
||
- [X] 向社区开放 APIZoo 以接受贡献
|
||
- [X] 数据集与评估代码
|
||
|
||
## 许可证
|
||
|
||
Gorilla 采用 Apache 2.0 许可,适用于学术与商业用途。
|
||
|
||
## 联系方式
|
||
|
||
- 💬 加入我们的 [Discord Community](https://discord.gg/grXXvj9Whz)
|
||
- 🐦 在 [X](https://x.com/shishirpatil_) 关注我们
|
||
|
||
## 引用
|
||
|
||
```text
|
||
@article{patil2023gorilla,
|
||
title={Gorilla: Large Language Model Connected with Massive APIs},
|
||
author={Shishir G. Patil and Tianjun Zhang and Xin Wang and Joseph E. Gonzalez},
|
||
year={2023},
|
||
journal={arXiv preprint arXiv:2305.15334},
|
||
}
|
||
```
|