🛠️ ツール (Tools) 概要¶
ツール呼び出し (Tools) は、モデルが回答を生成する際に**外部機能を呼び出す**ために使用されます。一般的なシナリオは以下の通りです:
- ウェブ検索: 最新情報を取得し、回答に引用元を提示します。
- 関数呼び出し (Function Calling): モデルに独自のビジネス API / データベース / 内部サービスを呼び出させます。
本プラットフォームでは、ツールの呼び出しに OpenAI インターフェースと同じパラメータ設計を採用しています。一般的なアクセス方法は 2 つあります:
- 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", ...}] を使用して関数スキーマを定義します。
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" としてモデルに送り返すことで、モデルに最終的な自然言語の回答を完了させます。