🛠️ 工具调用(Tools)概览¶
工具调用(Tools)用于让模型在生成回答时**调用外部能力**,典型场景包括:
- 联网搜索:获取最新信息,并在回答中给出引用来源
- 自定义函数(Function Calling):让模型调用你自己的业务 API / 数据库 / 内部服务
本平台对工具调用采用与 OpenAI 接口一致的参数设计,常用有两种接入方式:
- OpenAI Responses:适合使用 内置工具(例如网络搜索)
- OpenAI Chat Completions:适合使用 自定义函数工具
✅ 快速示例:GPT 联网搜索(推荐用 Responses)¶
使用 tools 启用内置网络搜索工具 web_search_preview,模型会在需要时自动发起搜索并完成回答。
curl https://api-cs-al.naci-tech.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $API_KEY" \
-d '{
"model": "gpt-4.1",
"tool_choice": "auto",
"tools": [
{ "type": "web_search_preview", "search_context_size": "medium" }
],
"input": "帮我搜索并总结:2026 年最新的 TypeScript 版本有什么关键变化?"
}'
✅ 快速示例:自定义函数(Chat Completions)¶
当你希望模型调用自己的后端函数(例如查询订单、查天气、检索库存)时,使用 tools: [{type:"function", ...}] 定义函数 schema。
curl https://api-cs-al.naci-tech.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $API_KEY" \
-d '{
"model": "gpt-4.1",
"messages": [
{ "role": "user", "content": "帮我查一下订单 20240227001 的状态" }
],
"tool_choice": "auto",
"tools": [
{
"type": "function",
"function": {
"name": "get_order_status",
"description": "查询订单状态",
"parameters": {
"type": "object",
"properties": {
"order_id": { "type": "string", "description": "订单号" }
},
"required": ["order_id"]
}
}
}
]
}'
模型如果决定调用函数,会在返回结果里给出 tool_calls(包含函数名与 JSON 参数)。你需要在业务侧执行该函数,并把结果作为 “tool message” 回传给模型,让模型完成最终自然语言回答。