関数呼び出しにより、関連性の高いコンテキストに沿った回答を提供する LLM の能力が向上します。
Function Calling API を使用すると、生成 AI モデルにカスタム関数を提供できます。モデルは、これらの関数を直接呼び出すのではなく、関数名と推奨される引数を指定する構造化データ出力を生成します。
この出力により、外部 API や情報システム(データベース、顧客管理システム、ドキュメント リポジトリなど)を呼び出すことができます。生成された API 出力は、LLM で使用してレスポンスの品質を向上させることができます。
関数呼び出しに関するコンセプトの詳細については、関数呼び出しをご覧ください。
サポートされているモデル
- Gemini 2.5 Flash (プレビュー)
- Gemini 2.5 Flash-Lite (プレビュー)
- Gemini 2.5 Flash-Lite
- Live API ネイティブ音声を使用した Gemini 2.5 Flash (プレビュー)
- Live API を使用した Gemini 2.0 Flash (プレビュー)
- Gemini 2.5 Pro
- Gemini 2.5 Flash
- Gemini 2.0 Flash
- Gemini 2.0 Flash-Lite
制限事項:
- リクエストで指定できる関数宣言の最大数は 128 です。
構文の例
関数呼び出し API リクエストを送信する構文。
curl
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:generateContent \ -d '{ "contents": [{ ... }], "tools": [{ "function_declarations": [ { ... } ] }] }'
パラメータ リスト
実装の詳細については、例をご覧ください。
FunctionDeclaration
OpenAPI 3.0 仕様に基づいて、モデルから JSON 入力が生成される関数を定義します。
| パラメータ | |
|---|---|
| 
 | 
 呼び出す関数の名前。先頭は英字またはアンダースコアにする必要があります。a~z、A~Z、0~9 にする必要があり、アンダースコア、ドット、またはダッシュを含めることができます。最大長は 64 文字です。 | 
| 
 | 省略可:  関数の説明と目的。モデルはこれを使用して、関数を呼び出す方法と関数を呼び出すかどうかを決定します。最適な結果を得るには、説明を含めることをおすすめします。 | 
| 
 | 省略可:  関数のパラメータを OpenAPI JSON スキーマ オブジェクト形式(OpenAPI 3.0 仕様)で記述します。 | 
| 
 | 省略可:  関数からの出力を OpenAPI JSON スキーマ オブジェクト形式(OpenAPI 3.0 仕様)で記述します。 | 
詳細については、関数呼び出しをご覧ください。
Schema
OpenAPI 3.0 スキーマ仕様に基づいて、関数呼び出しの入力データと出力データの形式を定義します。
| パラメータ | |
|---|---|
| type | 
 列挙型。データの型。次のいずれかにする必要があります。 
 | 
| description | 省略可:  データの説明。 | 
| enum | 省略可:  プリミティブ型の要素の可能な値(列挙型形式)。 | 
| items | 省略可:  
 | 
| properties | 省略可:  
 | 
| required | 省略可:  
 | 
| nullable | 省略可:  値が  | 
FunctionCallingConfig
FunctionCallingConfig はモデルの動作を制御し、呼び出す関数のタイプを決定します。
| パラメータ | |
|---|---|
| 
 | 省略可:  
 | 
| 
 | 省略可:  呼び出す関数名。 | 
functionCall
モデルから返される、予測された functionCall。functionDeclaration.name を表す文字列と、パラメータとその値を含む構造化 JSON オブジェクトが含まれます。
| パラメータ | |
|---|---|
| 
 | 
 呼び出す関数の名前。 | 
| 
 | 
 JSON オブジェクト形式の関数パラメータと値。 パラメータの詳細については、関数呼び出しをご覧ください。 | 
functionResponse
FunctionDeclaration.name を表す文字列を含む FunctionCall からの出力。また、関数からの出力を含む構造化 JSON オブジェクトも含まれます(これはモデルのコンテキストとして使用されます)。これには、モデル予測に基づいて作成された FunctionCall の結果が含まれている必要があります。
| パラメータ | |
|---|---|
| 
 | 
 呼び出す関数の名前。 | 
| 
 | 
 JSON オブジェクト形式の関数のレスポンス。 | 
例
関数宣言を送信する
次の例は、クエリと関数宣言をモデルに送信する基本的な例です。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: 実際のプロジェクト ID。
- MODEL_ID: 処理中のモデルの ID。
- ROLE: メッセージを作成するエンティティの ID。
- TEXT: モデルに送信するプロンプト。
- NAME: 呼び出す関数の名前。
- DESCRIPTION: 関数の説明と目的。
- 他のフィールドについては、パラメータのリストの表をご覧ください。
HTTP メソッドと URL:
POST https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/MODEL_ID:generateContent
リクエストの本文(JSON):
{
  "contents": [{
    "role": "ROLE",
    "parts": [{
      "text": "TEXT"
    }]
  }],
  "tools": [{
    "function_declarations": [
      {
        "name": "NAME",
        "description": "DESCRIPTION",
        "parameters": {
          "type": "TYPE",
          "properties": {
            "location": {
              "type": "TYPE",
              "description": "DESCRIPTION"
            }
          },
          "required": [
            "location"
          ]
        }
      }
    ]
  }]
}
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
      リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/MODEL_ID:generateContent"
PowerShell
      リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/MODEL_ID:generateContent" | Select-Object -Expand Content
curl コマンドの例
PROJECT_ID=myproject
LOCATION=us-central1
MODEL_ID=gemini-2.5-flash
curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:generateContent \
  -d '{
    "contents": [{
      "role": "user",
      "parts": [{
        "text": "What is the weather in Boston?"
      }]
    }],
    "tools": [{
      "functionDeclarations": [
        {
          "name": "get_current_weather",
          "description": "Get the current weather in a given location",
          "parameters": {
            "type": "object",
            "properties": {
              "location": {
                "type": "string",
                "description": "The city and state, e.g. San Francisco, CA or a zip code e.g. 95616"
              }
            },
            "required": [
              "location"
            ]
          }
        }
      ]
    }]
  }'
Gen AI SDK for Python
Node.js
Java
Go
REST(OpenAI)
OpenAI ライブラリを使用して、Function Calling API を呼び出すことができます。詳細については、OpenAI ライブラリを使用して Vertex AI モデルを呼び出すをご覧ください。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID:
- MODEL_ID: 処理中のモデルの ID。
HTTP メソッドと URL:
POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/endpoints/openapi/chat/completions
リクエストの本文(JSON):
{
  "model": "google/MODEL_ID",
  "messages": [
    {
      "role": "user",
      "content": "What is the weather in Boston?"
    }
  ],
  "tools": [
    {
      "type": "function",
      "function": {
        "name": "get_current_weather",
        "description": "Get the current weather in a given location",
        "parameters": {
          "type": "OBJECT",
          "properties": {
            "location": {
              "type": "string",
              "description": "The city and state, e.g. San Francisco, CA or a zip code e.g. 95616"
            }
           },
          "required": ["location"]
        }
      }
    }
  ]
}
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
      リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/endpoints/openapi/chat/completions"
PowerShell
      リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/endpoints/openapi/chat/completions" | Select-Object -Expand Content
Python(OpenAI)
OpenAI ライブラリを使用して、Function Calling API を呼び出すことができます。詳細については、OpenAI ライブラリを使用して Vertex AI モデルを呼び出すをご覧ください。
FunctionCallingConfig で関数宣言を送信する
次の例では、FunctionCallingConfig をモデルに渡す方法を示します。
functionCallingConfig を使用すると、モデルの出力が常に特定の関数呼び出しになるようにできます。構成するには:
- 関数呼び出しの modeをANYに設定します。
- allowed_function_namesで使用する関数名を指定します。- allowed_function_namesが空の場合、指定された関数のいずれかが返される可能性があります。
REST
PROJECT_ID=myproject
LOCATION=us-central1
MODEL_ID=gemini-2.5-flash
curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:generateContent \
  -d '{
    "contents": [{
      "role": "user",
      "parts": [{
        "text": "Do you have the White Pixel 8 Pro 128GB in stock in the US?"
      }]
    }],
    "tools": [{
      "functionDeclarations": [
        {
          "name": "get_product_sku",
          "description": "Get the available inventory for a Google products, e.g: Pixel phones, Pixel Watches, Google Home etc",
          "parameters": {
            "type": "object",
            "properties": {
              "product_name": {"type": "string", "description": "Product name"}
            }
          }
        },
        {
          "name": "get_store_location",
          "description": "Get the location of the closest store",
          "parameters": {
            "type": "object",
            "properties": {
              "location": {"type": "string", "description": "Location"}
            },
          }
        }
      ]
    }],
    "toolConfig": {
        "functionCallingConfig": {
            "mode":"ANY",
            "allowedFunctionNames": ["get_product_sku"]
      }
    },
    "generationConfig": {
      "temperature": 0.95,
      "topP": 1.0,
      "maxOutputTokens": 8192
    }
  }'
Gen AI SDK for Python
Node.js
Go
REST(OpenAI)
OpenAI ライブラリを使用して、Function Calling API を呼び出すことができます。詳細については、OpenAI ライブラリを使用して Vertex AI モデルを呼び出すをご覧ください。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID:
- MODEL_ID: 処理中のモデルの ID。
HTTP メソッドと URL:
POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/endpoints/openapi/chat/completions
リクエストの本文(JSON):
{
  "model": "google/MODEL_ID",
  "messages": [
  {
    "role": "user",
    "content": "What is the weather in Boston?"
  }
],
"tools": [
  {
    "type": "function",
    "function": {
      "name": "get_current_weather",
      "description": "Get the current weather in a given location",
      "parameters": {
        "type": "OBJECT",
        "properties": {
          "location": {
            "type": "string",
            "description": "The city and state, e.g. San Francisco, CA or a zip code e.g. 95616"
          }
         },
        "required": ["location"]
      }
    }
  }
],
"tool_choice": "auto"
}
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
      リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/endpoints/openapi/chat/completions"
PowerShell
      リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/endpoints/openapi/chat/completions" | Select-Object -Expand Content
Python(OpenAI)
OpenAI ライブラリを使用して、Function Calling API を呼び出すことができます。詳細については、OpenAI ライブラリを使用して Vertex AI モデルを呼び出すをご覧ください。
次のステップ
詳細なドキュメントについては、以下をご覧ください。