GPT函数调用实践

更新时间:2023/08/25, 09:50

官方的翻译链接在这里,GPT函数调用,看完后,有点似懂非懂的感觉,还是需要实践。

GPT 函数调用是什么(What-Is)

一句话说明,就是为GPT提供分析所需的数据,比如例子中的某地天气,在没有 GPT不能联网的场景下,没有函数调用,GPT 只能靠猜或者瞎说(幻觉)。 或者一些不依靠推理的数据,通过函数调用告知 GPT,方便做下一步的推理,比如昨天的销量是多少。 或者固定的格式化的数据结构,你的业务系统中数据流转,数据需要保持的格式。

怎么使用 GPT 函数调用(How-To)

API中才能使用

在官方聊天界面中,这个功能无法使用的,在 API 调用使用,毕竟需要指定参数,也可以在 OpenAI Playground 中使用。

设置函数描述

在消息类型为 user 的消息中,设置函数描述,即带上参数 functions=[{函数描述1,函数描述2}],其中函数描述结构体:

{  
    "name": "function_name",  
    "description": "function description",  
    "parameters": {  
        "type": "object",  
        "properties": {  
            "category": {  
                "type": "string", "description": "类别"  
            },  
            "value": {  
                "type": "string", "description": "价值"  
            }  
        },  
        "required": ["category", "price"]  
    },  
}

函数执行

判断是否需要执行函数,这个由 GPT 推理决定。

如果需要执行,API 的返回体中,content = null,function_name = 前面设置的方法名称。 这就告诉你,GPT 需要执行指定的函数,还给了方法执行的参数,比如这种:

{  
    "role": "assistant",  
    "content": null,  
    "function_call": {  
        "name": "function_name",  
        "arguments": "{\n  \"category\": \"\u5976\u8336\",\n  \"value\": \"6\u5143\"\n}"  
    }  
}

这就需要使用者,调用代码中的函数,执行方法,GPT API 本身不会去执行。

if assistant_message.get("function_call"):  
    results = execute_function_call(assistant_message)  # 执行方法
    messages.append({"role": "function", "content": results, "name": assistant_message["function_call"]["name"]})

执行后续

可以将后续的结果作为参数返回给 GPT,返回给 GPT 消息需要指定参数类型为 function,比如:

messages.append(  
    {  
        "role": "function""name": function_name,  
"content": function_response,  
}  
) # 用函数响应扩展对话

总结(Final)

GPT 推断出,是否需要调用函数,将需要执行的函数名称、参数,给使用者,使用者调用函数,将结果告知给 GPT。

这个依靠 GPT 的推断过程,不一定是 100% 正确,分析不准确,分析的参数错误,也是有的,比如参数需要一个纯数字,它可能告诉使用者,参数为6元,6块,60分,都是有可能的。

可能使用的场景

比如,智能分析,终端用户:“告诉我昨天的销量如何?”,GPT,调用你的数据库SQL查询后,再告诉终端用户结果。

比如,记录数据,终端用户:“xx城市xx有哪些地方可以玩”,GPT,调用你的文件读写函数,新增一条记录。 很多场景可以畅想下。

AI奇想空间
AI奇想空间
https://aimazing.site
AI惊奇站是一个汇聚人工智能工具、资源和教程的导航网站。 在这里,你可以发现最新的AI技术、工具和应用,学习如何使用各种AI平台和框架,获取丰富的AI资源。 欢迎广大AI爱好者加入我们的社区,开启你的AI之旅!
AI交流群
Copyright © 2024 AI奇想空间.微信