Mit Funktionsaufrufen kann ein Modell erkennen, wann ein externes Tool oder eine externe API aufgerufen werden muss. Anschließend werden strukturierte Daten generiert, die die erforderliche Funktion und die Argumente für die Ausführung enthalten. Alle offenen Modelle, die in Vertex AI Model as a Service (MaaS) verfügbar sind, unterstützen Funktionsaufrufe.
Weitere konzeptionelle Informationen zur Funktion „Funktionsaufruf“ finden Sie unter Einführung in Funktionsaufrufe.
Funktionsaufrufe verwenden
Im folgenden Anwendungsfall wird eine externe meteorologische API eingebunden, um das aktuelle Wetter für einen bestimmten Ort abzurufen. Im Code wird ein REST-Aufruf verwendet, um das Wetter in zwei Städten zu vergleichen. Dazu wird eine get_current_weather
-Funktion verwendet, die im Schema in tools
deklariert ist.
{ "model": "MODEL_NAME", "messages": [ { "role": "user", "content": "Which city has a higher temperature, Boston or new Delhi, and by how much in F?" } ], "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" }
Nachdem das Modell die Anfrage erhalten hat, stellt es fest, dass die Ausgabe der Funktion get_current_weather
erforderlich ist, und stellt die erforderliche Funktion und die erforderlichen Argumente in tool_calls
bereit.
Funktionsaufruf zum Abrufen des Wetters in Boston:
{"function":{"arguments":"{\"location\":\"Boston, MA\",\"unit\":\"fahrenheit\"}","name":"get_current_weather"} "id":"get_current_weather","type":"function"}
Funktionsaufruf zum Abrufen des Wetters in Neu-Delhi:
{"function":{"arguments":"{\"location\":\"New Delhi, India\",\"unit\":\"fahrenheit\"}","name":"get_current_weather"},"id":"get_current_weather","type":"function"}
Detailliertes Beispiel
Das folgende Beispiel baut auf dem vorherigen Beispiel auf und zeigt die vollständige Ausgabe, die Sie nach der Verwendung der Funktion get_current_weather
zum Abrufen meteorologischer Informationen erwarten können.
{ "model": "MODEL_NAME", "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_weather" }, { "role": "tool", "content": "The temperature in New Delhi is 50 degrees Fahrenheit.", "tool_call_id": "get_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" }
Nachdem das Modell die Informationen erhalten hat, die durch den Aufruf der externen get_current_weather
-Funktion abgerufen wurden, kann es die Informationen aus den beiden tool
-Antworten zusammenführen und die Frage des Nutzers beantworten.
Das folgende Beispiel zeigt, wie die Modellausgabe aussehen könnte:
{ "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": "MODEL_NAME", "object": "chat.completion", "system_fingerprint": "", "usage": { "completion_tokens": 66, "prompt_tokens": 217, "total_tokens": 283 } }