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}¤t=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)