コンテンツにスキップ

🛠️ ツール (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" としてモデルに送り返すことで、モデルに最終的な自然言語の回答を完了させます。

📚 モデル別に表示