OpenAI 函数调用(Function Calling) API 文档
概念介绍
函数调用(Function Calling)是AI大模型的一种能力。允许大语言模型在对话过程中调用外部函数/工具。当用户提问需要实时数据(如天气、股票等)时,模型会返回函数调用请求,开发者可以在后端执行相应函数并返回结果。
API 基础信息
- 请求地址:
https://www.dmxapi.cn/v1/chat/completions
- 请求方法: POST
- 认证方式: Bearer Token
请求示例
python
import http.client
import json
# 创建HTTPS连接
conn = http.client.HTTPSConnection("www.dmxapi.cn")
# 构造请求体
payload = json.dumps({
"model": "gpt-4o", # 指定模型
"max_tokens": 300, # 最大返回token数
"temperature": 0.8, # 生成结果的随机性控制
"stream": False, # 是否流式输出
"messages": [{
"role": "user",
"content": "上海今天几度?" # 用户提问
}],
"tools": [{ # 定义可用工具
"type": "function",
"function": {
"name": "get_current_weather", # 函数名称
"description": "获得天气信息", # 功能描述
"parameters": { # 参数定义
"type": "object",
"properties": {
"location": { # 必填参数:地点
"type": "string",
"description": "城市和州名,例如:上海, 中国"
},
"unit": { # 可选参数:温度单位
"type": "string",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"] # 必填参数列表
}
}
}]
})
# 请求头设置
headers = {
"Accept": "application/json",
"Authorization": "Bearer sk-**********************", # 替换为你的 DMXAPI 令牌
"Content-Type": "application/json"
}
# 发送请求
conn.request("POST", "/v1/chat/completions", payload, headers)
# 获取响应
res = conn.getresponse()
data = res.read()
# 输出结果
print(data.decode("utf-8"))
响应处理
当用户提问需要调用函数时,API会返回包含函数调用信息的JSON响应。开发者需要:
- 解析响应中的函数调用请求
- 在后端执行对应函数
- 将函数结果再次发送给API获取最终回答
注意事项
- 请妥善保管API密钥,不要泄露
- 函数定义中的description很重要,会影响模型是否/如何调用该函数
- 温度参数(temperature)控制生成结果的随机性,值越大结果越多样