codeFunction Calling

了解如何使用函数调用将大型语言模型连接到外部工具。

介绍

使用 API 时,您可以定义模型可以选择调用的函数,从而生成具有必要参数的 JSON 对象。Chat Completions API 本身不执行这些函数;相反,它会输出 JSON,然后您可以使用该 JSON 在代码中调用该函数。

最新模型(gpt-4o、gpt-4-turbo 和 gpt-3.5-turbo)旨在根据输入检测何时应调用函数,并生成与函数签名紧密匹配的 JSON。但是,此功能存在潜在风险。我们强烈建议您在执行可能影响实际操作的操作(例如,发送电子邮件、在线发帖、进行购买)之前实施用户确认步骤。

本指南重点介绍使用 Chat Completions API 进行函数调用。

常见用例

通过函数调用,您可以可靠地从模型中获取结构化数据。例如,您可以:

  • 创建通过调用外部 API 回答问题的助手

    • 示例函数: send_email(to: string, body: string), get_current_weather(location: string, unit: 'celsius' | 'fahrenheit')

  • 将自然语言转换为 API 调用

    • 转换示例: "谁是我的头号顾客?" to get_customers(min_revenue: int, created_before: string, limit: int), 然后调用您的内部 API

  • 从文本中提取结构化数据

    • 示例函数: extract_data(name: string, birthday: string), sql_query(query: string)

函数调用的基本步骤顺序

  1. 调用模型 使用用户查询和 functions 参数中定义的一组函数来进行调用模型。

  2. 模型响应: 模型可以选择调用一个或多个函数。如果是这样,它将输出一个符合您的自定义架构的字符串化 JSON 对象(注意:模型可能会产生幻觉参数)。

  3. 解析 JSON: 在您的代码中,将字符串解析为 JSON,并使用提供的参数(如果存在)调用函数。

  4. 再次调用模型: 将函数响应作为新消息附加,并让模型将结果汇总回给用户。

支持的型号

  • gpt-4o-2024-05-13

  • gpt-4-turbo

  • gpt-4-turbo-2024-04-09

  • gpt-4-turbo-preview

  • gpt-4-0125-preview

  • gpt-4-1106-preview

  • gpt-4

  • gpt-4-0613

  • gpt-3.5-turbo

  • gpt-3.5-turbo-0125

  • gpt-3.5-turbo-1106

  • gpt-3.5-turbo-0613

例子

最后更新于