一.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)