如何利用OpenAI的函数调用特性

如何利用OpenAI的函数调用特性

函数调用能实现哪些功能?

简单来说,函数调用功能可以助你在请求方法时构建结构化的数据。因为生成模型的特性,它产生的数据往往是无结构的,即使在提示(prompt)中指定了输出格式,但实际输出的结果往往偏离预期。

如果你曾经使用过Langchain,那么你一定知道其中有一个叫做OutputParser的模块,这个模块中定义了许多用于快速结构化数据的工具。

然而,面对大规模的模型,这些工具并不总是那么有效。因为模型的输出结果难以预测,这使得在一些复杂场景下,模型输出的结果总是无法被正确解析。即使是使用了Langchain中的OutputFixingParser,也难以让整个流程变得流畅。

因此,我们仍然需要回归到OpenAI官方推出的函数调用特性。在官方提供的一个示例中,它使用function calling让GPT模型提取自然语言中可用于函数调用的信息,然后利用第三方接口获取实时信息,最后生成一个全新的总结。

如何使用函数调用以及其工作原理?

接下来,让我们借助官方的示例来解析一下如何使用function calling这个特性,以及它究竟是如何运作的。

第一步:携带函数调用去请求GPT接口

首先,你需要把一个问题和函数调用一起,作为请求提交到GPT的接口。

messages = [{
   "role": "user", "content": "What's the weather like in Boston?"}]
functions = [
        {
   
            "name": "get_current_weather",
            "description": "Get the current weather in a given location",
            "parameters": {
   
                "type": "object",
                "properties": {
   
                    "location": {
   
                        "type": "string",
                        "description": "The city and state, e.g. San Francisco, CA",
                    },
                    "unit": {
   "type": "string", "enum": ["celsius", "fahrenheit"]},
                },
                "required": ["location"],
            },
        }
    ]
response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo-0613",
        messages=messages,
        functions=functions,
        function_call="auto"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值