Open AI 使用篇

该文章已生成可运行项目,

一.function Calling

大模型中的 function calling 指的是在人工智能模型(如 GPT-4)中调用外部函数或API,以便模型能够执行更复杂的任务或获取外部数据。这种方式允许模型在生成回答时不仅仅依赖于内部的训练数据,还能够与外部系统进行交互,从而拓展其功能

关键点

  • 模型能够获取外部数据

原理

在这里插入图片描述

案例

# 导入必要的库
from openai import OpenAI
import json
import requests

# 定义一个获取天气数据的函数,使用经纬度作为输入
def get_weather(latitude, longitude):
    # 发送GET请求到Open Meteo API,获取当前天气信息
    response = requests.get(f"https://api.open-meteo.com/v1/forecast?latitude={latitude}&longitude={longitude}&current=temperature_2m,wind_speed_10m&hourly=temperature_2m,relative_humidity_2m,wind_speed_10m")
    # 解析返回的JSON数据
    data = response.json()
    # 返回当前温度(单位:摄氏度)
    return data['current']['temperature_2m']

# 创建OpenAI客户端实例
client = OpenAI()

# 定义工具(函数),用于获取天气
tools = [{
    "type": "function",  # 这是一个工具(函数),将在对话中使用
    "function": {
        "name": "get_my_weather",  # 函数名称
        "description": "获取提供坐标的当前温度(摄氏度)。",  # 函数描述
        "parameters": {
            "type": "object",  # 参数类型为对象
            "properties": {
                "latitude": {"type": "number"},  # 纬度是一个数字
                "longitude": {"type": "number"}  # 经度是一个数字
            },
            "required": ["latitude", "longitude"],  # 纬度和经度是必填参数
            "additionalProperties": False  # 不允许有其他额外的属性
        },
        "strict": True  # 确保参数严格匹配定义
    }
}]

# 定义初始的用户消息(询问巴黎的天气情况)
messages = [{"role": "user", "content": "巴黎今天的天气怎么样?"}]

# 请求GPT模型生成对话内容,基于用户的消息
completion = client.chat.completions.create(
    model="gpt-4.1",  # 使用GPT-4.1模型
    messages=messages,  # 传递当前对话内容(用户的消息)
    tools=tools,  # 提供工具(天气查询函数)
)

# 打印模型生成的工具调用(例如,天气查询函数的调用)
print(completion.choices[0].message.tool_calls)

# 从模型的响应中提取工具调用
tool_call = completion.choices[0].message.tool_calls[0]
# 解析工具调用中的函数参数(纬度和经度)
args = json.loads(tool_call.function.arguments)

# 使用解析出的纬度和经度调用天气查询函数
result = get_weather(args["latitude"], args["longitude"])

# 将模型的函数调用消息添加到对话中
messages.append(completion.choices[0].message)
# 将工具返回的结果(温度)作为消息添加到对话中
messages.append({
    "role": "tool",  # 这是一条来自工具(天气函数)的消息
    "tool_call_id": tool_call.id,  # 包含工具调用的ID以供参考
    "content": str(result)  # 天气查询函数返回的温度结果
})

# 请求GPT-4.1模型生成最终的响应,包含天气信息
completion_2 = client.chat.completions.create(
    model="gpt-4.1",  # 使用GPT-4.1模型
    messages=messages,  # 传递包含天气查询结果的对话
    tools=tools,  # 提供工具(虽然此时不再需要,但保持一致性)
)

# 打印GPT模型的最终响应,应该包括天气信息
print(completion_2)

二.GPT Builder

GPT Builder 是 OpenAI 提供的工具,允许用户自定义专属 GPT 模型,无需编程。
核心功能

  • 无代码开发:通过对话式界面配置
  • 自定义能力
    - 指令(Instructions)设定行为
    - 知识库(Knowledge)上传文件扩展上下文
    - 能力(Capabilities)启用网页浏览、代码执行等
  • 发布与共享:可私有或公开(GPT Store)

待续…

本文章已经生成可运行项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值