Mit Funktionsaufrufen können Sie benutzerdefinierte Funktionen definieren und LLMs die Möglichkeit geben, diese aufzurufen, um Echtzeitinformationen abzurufen oder mit externen Systemen wie SQL-Datenbanken oder Kundenservicetools zu interagieren.
Weitere konzeptionelle Informationen zu Funktionsaufrufen finden Sie unter Einführung in Funktionsaufrufe.
Hinweis
Führen Sie die folgenden Schritte aus, um offene Modelle mit der Gemini Enterprise Agent Platform zu verwenden. Die Agent Platform API (aiplatform.googleapis.com) und die Cloud Commerce Consumer Procurement API (cloudcommerceconsumerprocurement.googleapis.com) müssen aktiviert sein, um offene Modelle auf der Gemini Enterprise Agent Platform zu verwenden. Wenn Sie bereits ein Projekt mit aktivierten APIs haben, können Sie dieses Projekt verwenden, anstatt ein neues Projekt zu erstellen.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Gemini Enterprise Agent Platform and Cloud Commerce Consumer Procurement APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.- Rufen Sie die Model Garden-Modellkarte für das Modell auf, das Sie verwenden möchten, und klicken Sie auf Aktivieren, um das Modell für die Verwendung in Ihrem Projekt zu aktivieren.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Aktivieren und Verwenden von offenen Modellen benötigen:
- Agent Platform User (
roles/aiplatform.user) - Manager von Nutzer-Beschaffungsberechtigungen (
roles/consumerprocurement.entitlementManager)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Weitere Informationen zum Gewähren von Berechtigungen und zum Konfigurieren von Organisationsrichtlinien für offene Modelle finden Sie unter Nutzern Zugriff auf offene Modelle gewähren.
Funktionsaufrufe verwenden
Die folgenden Beispiele zeigen, wie Funktionsaufrufe verwendet werden.
Python
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für Python in der Agent Platform-Kurzanleitung zur Verwendung von Clientbibliotheken.
Richten Sie zur Authentifizierung bei der Agent Platform Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Legen Sie vor dem Ausführen dieses Beispiels die Umgebungsvariable OPENAI_BASE_URL fest.
Weitere Informationen finden Sie unter Authentifizierung und Anmeldedaten.
from openai import OpenAI client = OpenAI() response = client.chat.completions.create( model="MODEL", messages=[ {"role": "user", "content": "CONTENT"} ], tools=[ { "type": "function", "function": { "name": "FUNCTION_NAME", "description": "FUNCTION_DESCRIPTION", "parameters": PARAMETERS_OBJECT, } } ], tool_choice="auto", )
- MODEL: Der Modellname, den Sie verwenden möchten, z. B.
zai-org/glm-5.2-maas. - CONTENT: Der Nutzer-Prompt, der an das Modell gesendet werden soll.
- FUNCTION_NAME: Der Name der aufzurufenden Funktion.
- FUNCTION_DESCRIPTION: Eine Beschreibung der Funktion.
- PARAMETERS_OBJECT: Ein Wörterbuch, das die Funktionsparameter definiert, z. B.:
{"type": "object", "properties": {"location": {"type": "string", "description": "The city and state"}}, "required": ["location"]}
REST
Nachdem Sie Ihre Umgebung eingerichtet haben, können Sie mit REST einen Text-Prompt testen. Im folgenden Beispiel wird eine Anfrage an den Publisher-Modellendpunkt gesendet.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Ihre Google Cloud-Projekt-ID.
- MODEL: Der Modellname, den Sie verwenden möchten, z. B.
zai-org/glm-5.2-maas. - CONTENT: Der Nutzer-Prompt, der an das Modell gesendet werden soll.
- FUNCTION_NAME: Der Name der aufzurufenden Funktion.
- FUNCTION_DESCRIPTION: Eine Beschreibung der Funktion.
- PARAMETERS_OBJECT: Ein JSON-Schemaobjekt, das die Funktionsparameter definiert, z. B.:
{"type": "object", "properties": {"location": {"type": "string", "description": "The city and state"}}, "required": ["location"]}
HTTP-Methode und URL:
POST https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/endpoints/openapi/chat/completions
JSON-Text der Anfrage:
{
"model": "MODEL",
"messages": [
{
"role": "user",
"content": "CONTENT"
}
],
"tools": [
{
"type": "function",
"function": {
"name": "FUNCTION_NAME",
"description": "FUNCTION_DESCRIPTION",
"parameters": PARAMETERS_OBJECT
}
}
],
"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/v1/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/v1/projects/PROJECT_ID/locations/global/endpoints/openapi/chat/completions" | Select-Object -Expand Content
Sie sollten einen erfolgreichen Statuscode (2xx) und eine leere Antwort als Ausgabe erhalten.
Beispiel
Im Folgenden finden Sie die vollständige Ausgabe, die Sie nach der Verwendung der Funktion get_current_weather zum Abrufen von meteorologischen Informationen erwarten können.
Python
from openai import OpenAI client = OpenAI() response = client.chat.completions.create( model="zai-org/glm-5.2-maas", messages=[ { "role": "user", "content": "Which city has a higher temperature, Boston or new Delhi and by how much in F?" }, { "role": "assistant", "content": "I'll check the current temperatures for Boston and New Delhi in Fahrenheit and compare them. I'll call the weather function for both cities.", "tool_calls": [{"function":{"arguments":"{\"location\":\"Boston, MA\",\"unit\":\"fahrenheit\"}","name":"get_current_weather"},"id":"get_current_weather","type":"function"},{"function":{"arguments":"{\"location\":\"New Delhi, India\",\"unit\":\"fahrenheit\"}","name":"get_current_weather"},"id":"get_current_weather","type":"function"}] }, { "role": "tool", "content": "The temperature in Boston is 75 degrees Fahrenheit.", "tool_call_id": "get_current_weather" }, { "role": "tool", "content": "The temperature in New Delhi is 50 degrees Fahrenheit.", "tool_call_id": "get_current_weather" } ], 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" }, "unit": { "type": "string", "enum": ["celsius", "fahrenheit"] } }, "required": ["location"] } } } ], tool_choice="auto" )
curl
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://aiplatform.googleapis.com/v1/projects/sample-project/locations/global/endpoints/openapi/chat/completions -d \ '{ "model": "zai-org/glm-5.2-maas", "messages": [ { "role": "user", "content": "Which city has a higher temperature, Boston or new Delhi and by how much in F?" }, { "role": "assistant", "content": "I'll check the current temperatures for Boston and New Delhi in Fahrenheit and compare them. I'll call the weather function for both cities.", "tool_calls": [{"function":{"arguments":"{\"location\":\"Boston, MA\",\"unit\":\"fahrenheit\"}","name":"get_current_weather"},"id":"get_current_weather","type":"function"},{"function":{"arguments":"{\"location\":\"New Delhi, India\",\"unit\":\"fahrenheit\"}","name":"get_current_weather"},"id":"get_current_weather","type":"function"}] }, { "role": "tool", "content": "The temperature in Boston is 75 degrees Fahrenheit.", "tool_call_id": "get_current_weather" }, { "role": "tool", "content": "The temperature in New Delhi is 50 degrees Fahrenheit.", "tool_call_id": "get_current_weather" } ], "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" }, "unit": { "type": "string", "enum": ["celsius", "fahrenheit"] } }, "required": ["location"] } } } ], "tool_choice": "auto" }'
{ "choices": [ { "finish_reason": "stop", "index": 0, "logprobs": null, "message": { "content": "Based on the current weather data:\n\n- **Boston, MA**: 75°F \n- **New Delhi, India**: 50°F \n\n**Comparison**: \nBoston is **25°F warmer** than New Delhi. \n\n**Answer**: \nBoston has a higher temperature than New Delhi by 25 degrees Fahrenheit.", "role": "assistant" } } ], "created": 1750450289, "id": "2025-06-20|13:11:29.240295-07|6.230.75.101|-987540014", "model": "zai-org/glm-5.2-maas", "object": "chat.completion", "system_fingerprint": "", "usage": { "completion_tokens": 66, "prompt_tokens": 217, "total_tokens": 283 } }
Modellspezifische Anleitung
Die folgenden Abschnitte enthalten modellspezifische Anleitungen für Funktionsaufrufe.
DeepSeek
DeepSeek-Modelle schneiden bei Funktionsaufrufen nicht so gut ab, wenn Sie einen System-Prompt verwenden. Für eine optimale Leistung sollten Sie den System-Prompt weglassen, wenn Sie Funktionsaufrufe mit DeepSeek-Modellen verwenden.
Llama 3
meta/llama3-405b-instruct-maas unterstützt tool_choice = 'required' nicht.
OpenAI
Wenn Sie openai/gpt-oss-120b-maas verwenden, sollten Sie Ihre Tooldefinitionen in der Systemaufforderung platzieren, um eine optimale Leistung zu erzielen. Beispiel:
{"messages": [ {"role": "system", "content": "You are a helpful assistant with access to the following functions. Use them if required:\n..."}, {"role": "user", "content": "What's the weather like in Boston?"}, ... ]}
Dieses Modell unterstützt weder tool_choice = 'required' noch benannte Toolaufrufe.