通过 Function Calling 连接 GPT 和你的业务系统

GPT 的能力很强,但是很多人不知道如何去使用,如何去落地到自己的业务系统

现在 OpenAI 开发了两个能力 Actions,Function Calling。

GPT 通过这两个能力与外部世界打通。

本文主要介绍 Function Calling

原理

1 .业务系统先拿到用户的输入

2.应用系统构建一个 prompt, 以及一个 function 的定义喂给大模型

3.大模型判断是否需要调用函数,

        3.1 不需要调用函数,大模型直接回答问题了

        3.2 需要调用函数,就返回一个调用说明,里面包含调用的参数给应用系统

4. 应用系统拿到大模型返回的函数调用说明,调用函数获取到结果

5. 应用系统将调用结果构建一个 prompt 给大模型

6. 大模型输出自然语言经过应用系统返回给用户

整体的过程如下图所示:

示例:

先定义几个工具方法

print_json 是为了打印参数用于调试

get_completion:定义了几个函数,供大模型判断是否需要调用

fbnq:是用户自己定义的一个函数

from openai import OpenAI
import json

client = OpenAI(api_key="YOUR KEY")


def print_json(data):
    """
    打印参数。如果参数是有结构的(如字典或列表),则以格式化的 JSON 形式打印;
    否则,直接打印该值。
    """
    if hasattr(data, 'model_dump_json'):
        data = json.loads(data.model_dump_json())

    if isinstance(data, list):
        for item in data:
            print_json(item)
    elif isinstance(data, dict):
        print(json.dumps(
            data,
            indent=4,
            ensure_ascii=False
        ))
    else:
        print(data)


def get_comletion(messages, model="gpt-3.5-turbo"):
    response = client.chat.completions.create(
        model=model,
        messages=messages,
        temperature=0.7,
        tools=[  # 用 JSON 描述函数,可以定义多个,由大模型决定调用或者不调用
            {
                "type": "function",
                "function": {
                    "name": "sum",
                    "description": "加法器,计算一组数据的和",
                    "parameters": {
                        "type": "array",
                        "items": {
                            "type": "number"
                        }
                    }
                }
            },
            {
                "type": "function",
                "function": {
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值