当前位置:首页|资讯|OpenAI

OpenAI 函数调用 功能入门

作者:AI小火箭发布时间:2023-06-21

原标题:OpenAI 函数调用 功能入门

范例

初步体验

OpenAI新增了“函数调用”功能,这是什么呢?

我们先调用API来体验下。

curl--location'https://api.openai.com/v1/chat/completions' \
--header'Content-Type: application/json' \
--header'Authorization: Bearer sk-xxxx' \
--data'{
"model": "gpt-3.5-turbo-0613",
"messages": [
{"role": "user", "content": "Send Cobus from humanfirst ai an email asking for the monthly report?"}
],
"functions": [
{
"name": "send_email",
"description": "Please send an email.",
"parameters": {
"type": "object",
"properties": {
"to_address": {
"type": "string",
"description": "To address for email"
},
"subject": {
"type": "string",
"description": "subject of the email"
},
"body": {
"type": "string",
"description": "Body of the email"
}
}
}
}
]
}'
{
"id": "chatcmpl-7TQuwzJpQAY470saQM2RPfxwF6DDE",
"object": "chat.completion",
"created": 1687249338,
"model": "gpt-3.5-turbo-0613",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": null,
"function_call": {
"name": "send_email",
"arguments": "{\n \"to_address\": \"cobus@humanfirst.ai\",\n \"subject\": \"Request for Monthly Report\",\n \"body\": \"Hi Cobus,\\n\\nI hope you're doing well. Could you please share the monthly report with me? It would be great to have it before the end of the week.\\n\\nThanks,\\n[Your Name]\"\n}"
}
},
"finish_reason": "function_call"
}
],
"usage": {
"prompt_tokens": 86,
"completion_tokens": 82,
"total_tokens": 168
}
}

GPT模型会返回需要调用的函数名 send_email和对应的参数(放在arguments字段)。

{
"to_address": "cobus@humanfirst.ai",
"subject": "Request for Monthly Report",
"body": "Hi Cobus,\n\nI hope you're doing well. Could you please share the monthly report with me? It would be great to have it before the end of the week.\n\nThanks,\n[Your Name]"
}

这就非常有用,第三方的应用可以提供多个函数/服务(类似插件),GPT模型可以根据用户的指令自动选择不同的函数/服务。

现在再来看示例,就比较清晰了。

用途

根据官网文档,函数调用允许您更可靠地从模型中获取结构化数据。例如,您可以:

函数调用的基本步骤顺序如下:

  1. 使用用户查询和函数参数中定义的一组函数调用模型。
  2. 模型可以选择调用函数;如果是这样,内容将是符合自定义架构的字符串化 JSON 对象(注意:模型可能会生成无效的 JSON 或幻觉参数)。
  3. 在代码中将字符串解析为 JSON,并使用提供的参数调用函数(如果存在)。
  4. 通过将函数响应追加为新消息来再次调用模型,并让模型将结果汇总回给用户。

AI小火箭

AI小火箭已经支持函数调用和gpt-3.5-turbo-16k、gpt-3.5-turbo-0613、gpt-3.5-turbo-16k-0613,大家可以去体验下。


Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1