什么是 函数调用?
函数调用是大语言模型的一项能力,允许模型生成结构化输出,指定要调用的函数及其参数,使 AI 系统能够以可靠且类型安全的方式与外部工具、API 和服务进行交互。
快速了解
| 全称 | 大语言模型函数调用 |
|---|---|
| 创建时间 | 2023 年由 OpenAI 推出 |
| 规范文档 | 官方规范 |
工作原理
函数调用弥合了自然语言理解与程序化操作之间的鸿沟。该功能由 OpenAI 于 2023 年推出,现已被大多数主流 LLM 提供商支持。开发者可以定义可用函数及其参数,模型会根据用户请求智能决定何时以及如何使用这些函数。这是构建 AI 智能体和模型上下文协议(MCP)的基础。
主要特点
- 结构化 JSON 输出,便于可靠解析
- 使用 Schema 进行类型安全的参数规范
- 模型根据上下文决定何时调用函数
- 支持单次响应中的多个函数调用
- 实现工具使用和外部 API 集成
- AI 智能体和自主系统的基础
常见用途
- 构建与外部服务交互的 AI 智能体
- 创建具有数据库访问能力的聊天机器人
- 通过自然语言自动化工作流程
- 实现 MCP 服务器和客户端
- 开发具有操作能力的语音助手
示例
loading...
Loading code...常见问题
函数调用与常规文本生成有什么不同?
常规文本生成产生自由形式的自然语言,而函数调用生成结构化的 JSON 输出,指定要调用的函数及其参数。这种结构化格式支持可靠的解析和操作执行,使其适合构建需要与 API、数据库或外部服务进行程序化交互的应用。
模型可以在单次响应中调用多个函数吗?
可以,大多数支持函数调用的现代 LLM 支持并行函数调用,模型可以请求同时执行多个函数。这对于同时从多个来源获取数据等场景很有用。模型会根据上下文决定顺序调用还是并行调用更合适。
当模型错误调用函数时如何处理错误?
通过在执行前验证函数参数、向模型返回清晰的错误消息,并允许它重试或调整方法来实现健壮的错误处理。使用 JSON Schema 验证及早捕获格式错误的参数。在函数响应中包含有用的错误描述,以便模型可以从错误中学习并自我纠正。
函数调用和 AI 智能体有什么关系?
函数调用是 AI 智能体的基本构建块。智能体使用函数调用与环境交互——读取数据、执行操作和响应结果。智能体循环通常包括:接收用户输入、决定调用哪些函数、执行它们、观察结果,然后重复直到任务完成。函数调用实现了这种工具使用能力。
如何设计函数 Schema 以获得最佳模型性能?
编写清晰、描述性的函数名称和说明,解释何时以及为何使用每个函数。定义精确的参数 Schema,包含有用的描述和示例。保持可用函数数量合理(最好不超过 20 个)。合理地分组相关功能,避免可能使模型混淆该选择哪个的重叠函数。