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 Antworten zu verbessern.
Weitere konzeptionelle Dokumentationen zum Funktionsaufruf finden Sie unter Funktionsaufrufe.
Unterstützte Modelle
- Gemini 3 Pro Vorschaumodell
- Gemini 2.5 Pro
- Gemini 2.5 Flash Vorschaumodell
- Gemini 2.5 Flash-Lite Vorschaumodell
- Gemini 2.5 Flash
- Gemini 2.5 Flash-Lite
- Gemini 2.5 Flash mit nativer Audio-Live-API Vorschaumodell
- Gemini 2.0 Flash mit Live API Vorschaumodell
- 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 hinzuzufügen. |
|
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 Eigenschaften 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 |
|
Optional: Wenn |
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. |
|
Optional: Ein undurchsichtiges Token, das den internen Begründungsstatus des Modells kapselt. Wenn vorhanden, muss sie in der nächsten Unterhaltungsrunde enthalten sein, um den Kontext für die mehrstufige Verwendung von Tools beizubehalten. |
functionResponse
Die resultierende Ausgabe von einem FunctionCall, das einen String enthält, der die FunctionDeclaration.name darstellt. 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 einer Modellvorhersage basiert.
| Parameter | |
|---|---|
|
Der Name der aufzurufenden Funktion. |
|
Die Funktionsantwort im JSON-Objektformat. |
|
Optional: Optionale multimodale Teile der Funktionsantwort. Kann verwendet werden, um Bilder, Audio oder Video zusammen mit einer strukturierten JSON-Antwort zurückzugeben. |
FunctionResponsePart
Das Feld FunctionResponsePart enthält multimodale Daten aus dem Funktionsaufruf.
| Parameter | |
|---|---|
|
Optional: Inline-Daten des Antwortteils der Funktion. |
|
Optional: URI-basierte Daten des Antwortteils der Funktion. |
FunctionResponseBlob
FunctionResponseBlob enthält Inline-Daten für ein FunctionResponsePart.
| Parameter | |
|---|---|
|
Der IANA-MIME-Typ der Inline-Daten. |
|
Die binären Rohdaten. |
|
Optional: Der Anzeigename der Inline-Daten. |
FunctionResponseFileData
FunctionResponseFileData enthält URI-basierte Daten für eine FunctionResponsePart.
| Parameter | |
|---|---|
|
Der IANA-MIME-Typ der Dateidaten. |
|
Der URI der Dateidaten. |
|
Optional: Der Anzeigename der Dateidaten. |
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, for example San Francisco, CA or a zip code such as 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
modeaufANYfest. Geben Sie die Funktionsnamen an, die Sie in
allowed_function_namesverwenden möchten. Wennallowed_function_namesleer 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, for example: 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: