什么是函数调用?
函数调用是一项功能,允许您在 API 调用中向 ChatGPT 模型描述特定函数。反过来,该模型会智能地决定是否生成包含这些函数参数的 JSON 对象作为其输出。请务必注意,聊天完成 API 本身不会执行该函数;相反,它会生成可用于在自己的代码中执行函数的 JSON 对象。
此功能允许您更可靠地从模型中获取结构化数据,从而显著增强了程序的多功能性。当您想要根据模型的输出处理特定任务或操作时,它特别有用。
对 gpt-3.5-turbo-0613 和 gpt-4-0613 等模型的 API 调用,并允许模型智能地生成包含用于调用这些函数的参数的 JSON 对象。此功能(称为函数调用)现已可用于 ChatGPT,并提供一种更可靠的方法来从模型接收结构化数据。
增强的聊天GPT模型
最新型号,如 gpt-3.5-turbo-0613 和 gpt-4-0613,已经过微调,以根据输入检测何时应调用函数,并使用与函数签名一致的 JSON 进行响应。但是,值得注意的是,此功能也存在潜在风险。强烈建议在执行可能影响现实世界的操作(例如发送电子邮件、购买或在线发布)之前构建用户确认流。
在用户友好的界面下,函数使用模型已训练的语法注入到系统消息中。这意味着这些函数计入模型的上下文限制,并作为输入令牌计费。为避免达到上下文限制,建议限制函数的数量或为函数参数提供的文档长度。
聊天GPT函数调用流程
在 ChatGPT 中调用函数的基本步骤顺序如下:
- 使用用户查询和参数中定义的一组函数调用模型。
functions
- 模型可以选择调用函数;如果是这样,则内容将是符合自定义架构的字符串化 JSON 对象。请注意,该模型可能会生成无效的 JSON 或幻觉参数。
- 在代码中将字符串解析为 JSON,并使用提供的参数调用函数(如果存在)。
- 通过将函数响应追加为新消息来再次调用模型,并让模型将结果汇总回给用户。
ChatGPT 中的函数调用是一个功能强大的工具,可以显著增强 AI 应用程序的功能。通过提供结构化数据并提供基于模型输出执行特定功能的能力,此功能为更具交互性和更复杂的 AI 应用程序铺平了道路。
OpenAI a 解释了有关函数调用的更多信息
创建聊天机器人,通过调用外部工具(例如,ChatGPT 插件
)来回答问题 将诸如“给 Anya 发送电子邮件以查看她是否想在下周五喝咖啡”之类的查询转换为 send_email(to:string, body: string)或“波士顿的天气怎么样?”这样的函数调用转换为 get_current_weather(位置:字符串,单位:“摄氏度” |“华氏度”)。
将自然语言转换为 API 调用或数据库查询 将“本月我的十大客户是谁?”转换为内部 API 调用,例如 get_customers_by_revenue(start_date:字符串,end_date:字符串,限制:int)或“Acme, Inc. 上个月下了多少订单?”转换为使用 sql_query(query: string) 的 SQL 查询。
从文本
中提取结构化数据 定义一个名为extract_people_data(people: [{name: string, birthday: string, location: string}])的函数,以提取维基百科文章中提到的所有人。
这些用例由 /v1/chat/completions 端点、函数和function_call中的新 API 参数启用,允许开发人员通过 JSON 模式向模型描述函数,并选择性地要求它调用特定函数。开始使用我们的开发人员文档,如果发现函数调用可以改进的情况,请添加 EVALS
原创文章,作者:校长,如若转载,请注明出处:https://www.yundongfang.com/Yun235041.html