我的AI学习 Function Calling

Function Calling的架构模型,如下
在这里插入图片描述所为的Function Calling就是函数调用,调用外部的函数,例如让大模型告诉我们我目前位置的坐标,大模型肯定不知道,此时让大模型调用指定的函数,获取信息后,再给到大模型,然后大模型再输出到外部给到用户

接口:
人与软件之间的接口叫GUI接口,应用程序之间的接口叫API接口。自然语言在与大模型之间的交互靠的是Prompt, 就是自然语言传递,是不是更接近普通大众,更能被人们接受,受众人群也更广泛,因为我们说句话他就能识别到。

大模型的缺陷:并非知晓一切
训练数据不可能什么都有。垂直、非公开数据必有欠缺,不知道最新信息。大模型的训练周期很长,且更新一次耗资巨大,还有越训越傻的风险。所以它 不可能实时训练。OpenAI 模型知识截止日期:
GPT-3.5 知识截至 2021 年 9 月
GPT-4-turbo 知识截至 2023 年 12 月
GPT-4o-mini 知识截至 2023 年 10 月
GPT-4o 知识截至 2023 年 10 月
GPT-4 知识截至 2021 年 9 月
GPT-o1模型是2024年9月13日发布的,但没有查到知识的截至日期
没有「真逻辑」。它表现出的逻辑、推理,是训练文本的统计规律,而不是真正的逻辑,所以有幻觉。
所以:大模型需要连接真实世界,并对接真逻辑系统执行确定性任务

下面就举例function calling的用法
1.调用本地函数
单function的调用

# 初始化
from openai import OpenAI
from dotenv import load_dotenv, find_dotenv
import json

_ = load_dotenv(find_dotenv())
client = OpenAI()

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_completion(messages, model="gpt-4o-mini"):
    response = client.chat.completions.create(
        model=model,
        messages=messages,
        temperature=0.7,
        tools=[{
   
     # 用 JSON 描述函数。可以定义多个。由大模型决定调用谁。也可能都不调用
            "type": "function",
            "function": {
   
   
                "name": "sum",
                "description": "加法器,计算一组数的和",
                "parameters": {
   
   
                    "type": "object",
                    "properties": {
   
   
                        "numbers": {
   
   
                            "type": "array",
                            "items": {
   
   
                                "type": "number"
                            }
                        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值