Durch den Funktionsaufruf kann das LLM relevantere und kontextbezogenere Antworten liefern.
Mit der Function Calling API können Sie einem generativen KI-Modell benutzerdefinierte Funktionen zur Verfügung stellen. Das Modell ruft diese Funktionen nicht direkt auf, sondern generiert eine strukturierte Datenausgabe, in der der Funktionsname und die vorgeschlagenen Argumente angegeben sind.
Mit dieser Ausgabe können externe APIs oder Informationssysteme wie Datenbanken, Customer-Relationship-Management-Systeme und Dokument-Repositories aufgerufen werden. Die resultierende API-Ausgabe kann vom LLM verwendet werden, um die Qualität der Antwort zu verbessern.
Weitere konzeptionelle Dokumentationen zum Funktionsaufruf finden Sie unter Funktionsaufrufe.
Unterstützte Modelle
- Gemini 2.5 Flash-Lite
- Gemini 2.5 Flash mit nativer Audio-Live-API
Vorschau - Gemini 2.0 Flash mit Live API
Vorschau - Vertex AI Model Optimizer
Experimentell - Gemini 2.5 Pro
- Gemini 2.5 Flash
- Gemini 2.0 Flash
- Gemini 2.0 Flash-Lite
Beschränkungen:
- Die maximale Anzahl von Funktionsdeklarationen, die mit der Anfrage bereitgestellt werden können, beträgt 128.
Beispielsyntax
Syntax zum Senden einer API-Anfrage für einen Funktionsaufruf.
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": [ { ... } ] }] }'
Parameterliste
Einzelheiten zur Implementierung finden Sie in den Beispielen.
FunctionDeclaration
Definiert eine Funktion, für die das Modell auf Grundlage der OpenAPI 3.0-Spezifikationen JSON-Eingaben generieren kann.
Parameter | |
---|---|
|
Der Name der aufzurufenden Funktion. Muss mit einem Buchstaben oder Unterstrich beginnen. Muss a–z, A–Z, 0–9 sein oder Unterstriche, Punkte oder Bindestriche enthalten. Die maximale Länge beträgt 64. |
|
Optional: Die Beschreibung und der Zweck der Funktion. Anhand dieser Informationen entscheidet das Modell, wie und ob die Funktion aufgerufen werden soll. Für optimale Ergebnisse empfehlen wir, eine Beschreibung anzugeben. |
|
Optional: Beschreibt die Parameter der Funktion im OpenAPI-JSON-Schemaobjektformat: OpenAPI 3.0-Spezifikation. |
|
Optional: Beschreibt die Ausgabe der Funktion im OpenAPI-JSON-Schemaobjektformat: OpenAPI 3.0-Spezifikation. |
Weitere Informationen finden Sie unter Funktionsaufrufe.
Schema
Definiert das Format der Ein- und Ausgabedaten in einem Funktionsaufruf basierend auf der OpenAPI 3.0-Schemaspezifikation.
Parameter | |
---|---|
Typ |
Enum. Der Typ der Daten. Muss einer der folgenden sein:
|
description |
Optional: Beschreibung der Daten. |
enum |
Optional: Mögliche Werte des Elements des einfachen Typs im enum-Format. |
items |
Optional: Schema der Elemente von |
properties |
Optional: Schema der Attribute von |
required |
Optional: Erforderliche Properties von |
nullable |
Optional: Gibt an, ob der Wert |
FunctionCallingConfig
Die FunctionCallingConfig
steuert das Verhalten des Modells und bestimmt, welche Art von Funktion aufgerufen wird.
Parameter | |
---|---|
|
Optional:
|
|
Optional: Namen der aufzurufenden Funktionen. Nur festgelegt, wenn der |
functionCall
Ein vorhergesagter functionCall
, der vom Modell zurückgegeben wird und einen String enthält, der functionDeclaration.name
und ein strukturiertes JSON-Objekt enthält, das die Parameter und ihre Werte enthält.
Parameter | |
---|---|
|
Der Name der aufzurufenden Funktion. |
|
Die Funktionsparameter und -werte im JSON-Objektformat. Weitere Informationen zu Parametern finden Sie unter Funktionsaufrufe. |
functionResponse
Die resultierende Ausgabe von einem FunctionCall
, das einen String mit der FunctionDeclaration.name
enthält. Enthält auch ein strukturiertes JSON-Objekt mit der Ausgabe der Funktion, das als Kontext für das Modell verwendet wird. Dieser sollte das Ergebnis einer FunctionCall
enthalten, die auf der Grundlage der Modellvorhersage erstellt wurde.
Parameter | |
---|---|
|
Der Name der aufzurufenden Funktion. |
|
Die Funktionsantwort im JSON-Objektformat. |
Beispiele
Funktionsdeklaration senden
Das folgende Beispiel zeigt, wie Sie eine Abfrage und eine Funktionsdeklaration an das Modell senden.
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Ihre Projekt-ID.
- MODEL_ID: Die ID des Modells, das verarbeitet wird.
- ROLE: Die Identität der Entität, die die Nachricht erstellt.
- TEXT: Der Prompt, der an das Modell gesendet werden soll.
- NAME: Der Name der aufzurufenden Funktion.
- DESCRIPTION: Beschreibung und Zweck der Funktion.
- Informationen zu anderen Feldern finden Sie in der Tabelle Parameterliste.
HTTP-Methode und URL:
POST https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/MODEL_ID:generateContent
JSON-Text der Anfrage:
{ "contents": [{ "role": "ROLE", "parts": [{ "text": "TEXT" }] }], "tools": [{ "function_declarations": [ { "name": "NAME", "description": "DESCRIPTION", "parameters": { "type": "TYPE", "properties": { "location": { "type": "TYPE", "description": "DESCRIPTION" } }, "required": [ "location" ] } } ] }] }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
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
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
$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
Beispiel: cURL-Befehls
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 für Python
Node.js
Java
Go
REST (OpenAI)
Sie können die Function Calling API mit der OpenAI-Bibliothek aufrufen. Weitere Informationen finden Sie unter Vertex AI-Modelle mithilfe der OpenAI-Bibliothek aufrufen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: .
- MODEL_ID: Die ID des Modells, das verarbeitet wird.
HTTP-Methode und URL:
POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/endpoints/openapi/chat/completions
JSON-Text der Anfrage:
{ "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"] } } } ] }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
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
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
$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)
Sie können die Function Calling API mit der OpenAI-Bibliothek aufrufen. Weitere Informationen finden Sie unter Vertex AI-Modelle mithilfe der OpenAI-Bibliothek aufrufen.
Funktionsdeklaration mit FunctionCallingConfig
senden
Das folgende Beispiel zeigt, wie eine FunctionCallingConfig
an das Modell übergeben wird.
Die functionCallingConfig
sorgt dafür, dass die Modellausgabe immer ein bestimmter Funktionsaufruf ist. Zum Konfigurieren:
- Legen Sie den Funktionsaufruf
mode
aufANY
fest. Geben Sie die Funktionsnamen an, die Sie in
allowed_function_names
verwenden möchten. Wennallowed_function_names
leer ist, kann eine der bereitgestellten Funktionen zurückgegeben werden.
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 für Python
Node.js
Go
REST (OpenAI)
Sie können die Function Calling API mit der OpenAI-Bibliothek aufrufen. Weitere Informationen finden Sie unter Vertex AI-Modelle mithilfe der OpenAI-Bibliothek aufrufen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: .
- MODEL_ID: Die ID des Modells, das verarbeitet wird.
HTTP-Methode und URL:
POST https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/endpoints/openapi/chat/completions
JSON-Text der Anfrage:
{ "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" }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
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
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
$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)
Sie können die Function Calling API mit der OpenAI-Bibliothek aufrufen. Weitere Informationen finden Sie unter Vertex AI-Modelle mithilfe der OpenAI-Bibliothek aufrufen.
Nächste Schritte
Eine ausführliche Dokumentation finden Sie hier: