Funktionsaufrufe, auch Tool-Nutzung genannt, stellen dem LLM Definitionen externer Tools zur Verfügung, z. B. eine get_current_weather
-Funktion. Bei der Verarbeitung eines Prompts ermittelt das Modell intelligent, ob ein Tool benötigt wird. Falls ja, gibt es strukturierte Daten aus, in denen das aufzurufende Tool und seine Parameter angegeben sind (z. B. get_current_weather(location='Boston')
). Ihre Anwendung führt dann dieses Tool aus und gibt das Ergebnis an das Modell zurück, damit es seine Antwort mit dynamischen, realen Informationen oder dem Ergebnis einer Aktion vervollständigen kann. So wird eine effektive Brücke zwischen dem LLM und Ihren Systemen geschlagen und seine Funktionen erweitert.
Funktionsaufrufe ermöglichen zwei primäre Anwendungsfälle:
Daten abrufen: Aktuelle Informationen für Modellantworten abrufen, z. B. aktuelles Wetter, Währungsumrechnung oder bestimmte Daten aus Wissensdatenbanken und APIs (RAG).
Aktionen ausführen: Führen Sie externe Vorgänge aus, z. B. das Senden von Formularen, das Aktualisieren des Anwendungsstatus oder die Koordination von Agentenworkflows (z. B. die Weiterleitung von Unterhaltungen).
Weitere Anwendungsfälle und Beispiele für Funktionsaufrufe finden Sie unter Anwendungsfälle.
Funktionen und Einschränkungen
Die folgenden Modelle unterstützen Funktionsaufrufe:
- Gemini 2.5 Flash-Lite
Vorabversion - Gemini 2.5 Flash mit nativem Audio der Live API
Vorabversion - Gemini 2.0 Flash mit Live API
Vorabversion - Vertex AI Model Optimizer
Experimentell - Gemini 2.5 Pro
- Gemini 2.5 Flash
- Gemini 2.0 Flash
- Gemini 2.0 Flash-Lite
- Gemini 2.5 Flash-Lite
Sie können bis zu 128
FunctionDeclarations
angeben.Definieren Sie Ihre Funktionen im OpenAPI-Schemaformat.
Best Practices für Funktionsdeklarationen, einschließlich Tipps für Namen und Beschreibungen, finden Sie unter Best Practices.
Anwendung zum Aufrufen von Funktionen erstellen
Führen Sie die folgenden Aufgaben aus, um Funktionsaufrufe zu verwenden:
Schritt 1: Prompt und Funktionsdeklarationen an das Modell senden
Deklarieren Sie eine Tool
in einem Schemaformat, das mit dem OpenAPI-Schema kompatibel ist. Weitere Informationen finden Sie unter Schemabeispiele.
In den folgenden Beispielen werden ein Prompt und eine Funktionsdeklaration an das Modell gesendet.
REST
PROJECT_ID=myproject
LOCATION=us-central1
MODEL_ID=gemini-2.0-flash-001
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 name of the location for which to get the weather.",
"default": {
"string_value": "Boston, MA"
}
}
},
"required": [
"location"
]
}
}
]
}]
}'
Python
Sie können das Schema entweder manuell mit einem Python-Wörterbuch oder automatisch mit der Hilfsfunktion from_func
angeben. Das folgende Beispiel zeigt, wie eine Funktion manuell deklariert wird.
import vertexai
from vertexai.generative_models import (
Content,
FunctionDeclaration,
GenerationConfig,
GenerativeModel,
Part,
Tool,
ToolConfig
)
# Initialize Vertex AI
# TODO(developer): Update the project
vertexai.init(project="PROJECT_ID", location="us-central1")
# Initialize Gemini model
model = GenerativeModel(model_name="gemini-2.0-flash")
# Manual function declaration
get_current_weather_func = FunctionDeclaration(
name="get_current_weather",
description="Get the current weather in a given location",
# Function parameters are specified in JSON schema format
parameters={
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city name of the location for which to get the weather.",
"default": {
"string_value": "Boston, MA"
}
}
},
},
)
response = model.generate_content(
contents = [
Content(
role="user",
parts=[
Part.from_text("What is the weather like in Boston?"),
],
)
],
generation_config = GenerationConfig(temperature=0),
tools = [
Tool(
function_declarations=[get_current_weather_func],
)
]
)
Alternativ können Sie die Funktion automatisch mit der Hilfsfunktion from_func
deklarieren, wie im folgenden Beispiel gezeigt:
def get_current_weather(location: str = "Boston, MA"):
"""
Get the current weather in a given location
Args:
location: The city name of the location for which to get the weather.
"""
# This example uses a mock implementation.
# You can define a local function or import the requests library to call an API
return {
"location": "Boston, MA",
"temperature": 38,
"description": "Partly Cloudy",
"icon": "partly-cloudy",
"humidity": 65,
"wind": {
"speed": 10,
"direction": "NW"
}
}
get_current_weather_func = FunctionDeclaration.from_func(get_current_weather)
Node.js
Dieses Beispiel zeigt ein Textszenario mit einer Funktion und einem Prompt.
Node.js
Bevor Sie dieses Beispiel anwenden, folgen Sie den Node.js-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Node.js API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Go
Dieses Beispiel zeigt ein Textszenario mit einer Funktion und einem Prompt.
Gen AI SDK for Go installieren oder aktualisieren
Weitere Informationen finden Sie in der SDK-Referenzdokumentation.
Legen Sie Umgebungsvariablen fest, um das Gen AI SDK mit Vertex AI zu verwenden:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
C#
Dieses Beispiel zeigt ein Textszenario mit einer Funktion und einem Prompt.
C#
Bevor Sie dieses Beispiel anwenden, folgen Sie den C#-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI C# API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Java
Bevor Sie dieses Beispiel anwenden, folgen Sie den Java Schritten zur Einrichtung in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Java API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Wenn das Modell feststellt, dass die Ausgabe einer bestimmten Funktion erforderlich ist, enthält die Antwort, die die Anwendung vom Modell empfängt, den Funktionsnamen und die Parameterwerte, mit denen die Funktion aufgerufen werden soll.
Das folgende Beispiel zeigt eine Modellantwort auf den Nutzer-Prompt „Wie ist das Wetter in Boston?“. Das Modell schlägt vor, die Funktion get_current_weather
mit dem Parameter Boston, MA
aufzurufen.
candidates { content { role: "model" parts { function_call { name: "get_current_weather" args { fields { key: "location" value { string_value: "Boston, MA" } } } } } } ... }
Schritt 2: API-Ausgabe für das Modell bereitstellen
Rufen Sie die externe API auf und geben Sie die API-Ausgabe an das Modell zurück.
Im folgenden Beispiel werden synthetische Daten verwendet, um eine Antwortnutzlast von einer externen API zu simulieren und die Ausgabe an das Modell zurückzugeben.
REST
PROJECT_ID=myproject
MODEL_ID=gemini-2.0-flash
LOCATION="us-central1"
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?"
}
},
{
"role": "model",
"parts": [
{
"functionCall": {
"name": "get_current_weather",
"args": {
"location": "Boston, MA"
}
}
}
]
},
{
"role": "user",
"parts": [
{
"functionResponse": {
"name": "get_current_weather",
"response": {
"temperature": 20,
"unit": "C"
}
}
}
]
}
],
"tools": [
{
"function_declarations": [
{
"name": "get_current_weather",
"description": "Get the current weather in a specific location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city name of the location for which to get the weather."
}
},
"required": [
"location"
]
}
}
]
}
]
}'
Python
function_response_contents = []
function_response_parts = []
# Iterates through the function calls in the response in case there are parallel function call requests
for function_call in response.candidates[0].function_calls:
print(f"Function call: {function_call.name}")
# In this example, we'll use synthetic data to simulate a response payload from an external API
if (function_call.args['location'] == "Boston, MA"):
api_response = { "location": "Boston, MA", "temperature": 38, "description": "Partly Cloudy" }
if (function_call.args['location'] == "San Francisco, CA"):
api_response = { "location": "San Francisco, CA", "temperature": 58, "description": "Sunny" }
function_response_parts.append(
Part.from_function_response(
name=function_call.name,
response={"contents": api_response}
)
)
# Add the function call response to the contents
function_response_contents = Content(role="user", parts=function_response_parts)
# Submit the User's prompt, model's response, and API output back to the model
response = model.generate_content(
[
Content( # User prompt
role="user",
parts=[
Part.from_text("What is the weather like in Boston?"),
],
),
response.candidates[0].content, # Function call response
function_response_contents # API output
],
tools=[
Tool(
function_declarations=[get_current_weather_func],
)
],
)
# Get the model summary response
print(response.text)
Best Practices für den API-Aufruf finden Sie unter Best Practices – API-Aufruf.
Wenn das Modell mehrere parallele Funktionsaufrufe vorgeschlagen hat, muss die Anwendung alle Antworten an das Modell zurückgeben. Weitere Informationen finden Sie unter Beispiel für parallele Funktionsaufrufe.
Das Modell kann feststellen, dass die Ausgabe einer anderen Funktion zur Beantwortung des Prompts erforderlich ist. In diesem Fall enthält die Antwort, die die Anwendung vom Modell empfängt, einen anderen Funktionsnamen und einen anderen Satz von Parameterwerten.
Wenn das Modell feststellt, dass die API-Antwort ausreicht, um auf den Prompt des Nutzers zu reagieren, erstellt es eine Antwort in natürlicher Sprache und gibt sie an die Anwendung zurück. In diesem Fall muss die Anwendung die Antwort an den Nutzer zurückgeben. Im folgenden Beispiel wird eine Antwort in natürlicher Sprache verwendet:
It is currently 38 degrees Fahrenheit in Boston, MA with partly cloudy skies.
Paralleler Funktionsaufruf
Für Prompts wie „Wetterdetails in Boston und San Francisco?“ kann das Modell mehrere parallele Funktionsaufrufe vorschlagen. Eine Liste der Modelle, die den parallelen Funktionsaufruf unterstützen, finden Sie unter Unterstützte Modelle.
REST
Dieses Beispiel zeigt ein Szenario mit einer get_current_weather
-Funktion.
Die Eingabeaufforderung lautet „Wetterdetails für Boston und San Francisco?“. Das Modell schlägt zwei parallele Aufrufe der Funktion get_current_weather
vor: einen mit dem Parameter Boston
und einen mit dem Parameter San Francisco
.
Weitere Informationen zu den Anfrageparametern finden Sie unter Gemini API.
{ "candidates": [ { "content": { "role": "model", "parts": [ { "functionCall": { "name": "get_current_weather", "args": { "location": "Boston" } } }, { "functionCall": { "name": "get_current_weather", "args": { "location": "San Francisco" } } } ] }, ... } ], ... }
Der folgende Befehl zeigt, wie Sie die Funktionseingaben für das Modell angeben. Ersetzen Sie my-project durch den Namen Ihres Google Cloud Projekts.
Modellanfrage
PROJECT_ID=my-project MODEL_ID=gemini-2.0-flash LOCATION="us-central1" 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 difference in temperature in Boston and San Francisco?" } }, { "role": "model", "parts": [ { "functionCall": { "name": "get_current_weather", "args": { "location": "Boston" } } }, { "functionCall": { "name": "get_current_weather", "args": { "location": "San Francisco" } } } ] }, { "role": "user", "parts": [ { "functionResponse": { "name": "get_current_weather", "response": { "temperature": 30.5, "unit": "C" } } }, { "functionResponse": { "name": "get_current_weather", "response": { "temperature": 20, "unit": "C" } } } ] } ], "tools": [ { "function_declarations": [ { "name": "get_current_weather", "description": "Get the current weather in a specific location", "parameters": { "type": "object", "properties": { "location": { "type": "string", "description": "The city name of the location for which to get the weather." } }, "required": [ "location" ] } } ] } ] }'
Die vom Modell erstellte Antwort in natürlicher Sprache sieht in etwa so aus:
Modellantwort
[ { "candidates": [ { "content": { "parts": [ { "text": "The temperature in Boston is 30.5C and the temperature in San Francisco is 20C. The difference is 10.5C. \n" } ] }, "finishReason": "STOP", ... } ] ... } ]
Python
Dieses Beispiel zeigt ein Szenario mit einer get_current_weather
-Funktion.
Die Eingabeaufforderung lautet „Wie ist das Wetter in Boston und San Francisco?“.
Ersetzen Sie my-project durch den Namen Ihres Google Cloud Projekts.
import vertexai
from vertexai.generative_models import (
Content,
FunctionDeclaration,
GenerationConfig,
GenerativeModel,
Part,
Tool,
ToolConfig
)
# Initialize Vertex AI
# TODO(developer): Update the project
vertexai.init(project="my-project", location="us-central1")
# Initialize Gemini model
model = GenerativeModel(model_name="gemini-2.0-flash")
# Manual function declaration
get_current_weather_func = FunctionDeclaration(
name="get_current_weather",
description="Get the current weather in a given location",
# Function parameters are specified in JSON schema format
parameters={
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city name of the location for which to get the weather.",
"default": {
"string_value": "Boston, MA"
}
}
},
},
)
response = model.generate_content(
contents = [
Content(
role="user",
parts=[
Part.from_text("What is the weather like in Boston and San Francisco?"),
],
)
],
generation_config = GenerationConfig(temperature=0),
tools = [
Tool(
function_declarations=[get_current_weather_func],
)
]
)
Der folgende Befehl zeigt, wie Sie die Funktionseingaben für das Modell angeben.
function_response_contents = []
function_response_parts = []
# You can have parallel function call requests for the same function type.
# For example, 'location_to_lat_long("London")' and 'location_to_lat_long("Paris")'
# In that case, collect API responses in parts and send them back to the model
for function_call in response.candidates[0].function_calls:
print(f"Function call: {function_call.name}")
# In this example, we'll use synthetic data to simulate a response payload from an external API
if (function_call.args['location'] == "Boston, MA"):
api_response = { "location": "Boston, MA", "temperature": 38, "description": "Partly Cloudy" }
if (function_call.args['location'] == "San Francisco, CA"):
api_response = { "location": "San Francisco, CA", "temperature": 58, "description": "Sunny" }
function_response_parts.append(
Part.from_function_response(
name=function_call.name,
response={"contents": api_response}
)
)
# Add the function call response to the contents
function_response_contents = Content(role="user", parts=function_response_parts)
function_response_contents
response = model.generate_content(
contents = [
Content(
role="user",
parts=[
Part.from_text("What is the weather like in Boston and San Francisco?"),
],
), # User prompt
response.candidates[0].content, # Function call response
function_response_contents, # Function response
],
tools = [
Tool(
function_declarations=[get_current_weather_func],
)
]
)
# Get the model summary response
print(response.text)
Go
Erzwungener Funktionsaufruf
Anstatt dem Modell zu erlauben, zwischen einer Antwort in natürlicher Sprache und einem Funktionsaufruf zu wählen, können Sie erzwingen, dass nur Funktionsaufrufe vorhergesagt werden. Dies wird als erzwungener Funktionsaufruf bezeichnet. Sie können dem Modell auch eine vollständige Funktionsdeklaration zur Verfügung stellen, die Antworten aber auf eine Teilmenge dieser Funktionen beschränken.
Modus | Beschreibung |
---|---|
AUTO |
Das Standardverhalten des Modells. Das Modell entscheidet, ob ein Funktionsaufruf oder eine Antwort in natürlicher Sprache vorhergesagt werden soll. |
ANY |
Das Modell ist darauf beschränkt, immer einen Funktionsaufruf vorherzusagen. Wenn allowed_function_names nicht angegeben ist, wählt das Modell eine der verfügbaren Funktionsdeklarationen aus. Wenn allowed_function_names angegeben wird, wählt das Modell eine der zulässigen Funktionen aus. |
NONE |
Das Modell darf keine Funktionsaufrufe vorhersagen. Dieses Verhalten entspricht einer Modellanfrage ohne zugehörige Funktionsdeklarationen. |
Im folgenden Beispiel werden nur get_weather
-Funktionsaufrufe vorhergesagt.
Python
response = model.generate_content(
contents = [
Content(
role="user",
parts=[
Part.from_text("What is the weather like in Boston?"),
],
)
],
generation_config = GenerationConfig(temperature=0),
tools = [
Tool(
function_declarations=[get_weather_func, some_other_function],
)
],
tool_config=ToolConfig(
function_calling_config=ToolConfig.FunctionCallingConfig(
# ANY mode forces the model to predict only function calls
mode=ToolConfig.FunctionCallingConfig.Mode.ANY,
# Allowed function calls to predict when the mode is ANY. If empty, any of
# the provided function calls will be predicted.
allowed_function_names=["get_weather"],
)
)
)
Beispiele für Funktionsschemata
Funktionsdeklarationen sind mit dem OpenAPI-Schema kompatibel. Folgende Attribute werden unterstützt: type
, nullable
, required
, format
, description
, properties
, items
, enum
, anyOf
, $ref
und $defs
. Die übrigen Attribute werden nicht unterstützt.
Funktion mit Objekt- und Arrayparametern
Im folgenden Beispiel wird mit einem Python-Dictionary eine Funktion deklariert, die sowohl Objekt- als auch Arrayparameter akzeptiert:
extract_sale_records_func = FunctionDeclaration( name="extract_sale_records", description="Extract sale records from a document.", parameters={ "type": "object", "properties": { "records": { "type": "array", "description": "A list of sale records", "items": { "description": "Data for a sale record", "type": "object", "properties": { "id": {"type": "integer", "description": "The unique id of the sale."}, "date": {"type": "string", "description": "Date of the sale, in the format of MMDDYY, e.g., 031023"}, "total_amount": {"type": "number", "description": "The total amount of the sale."}, "customer_name": {"type": "string", "description": "The name of the customer, including first name and last name."}, "customer_contact": {"type": "string", "description": "The phone number of the customer, e.g., 650-123-4567."}, }, "required": ["id", "date", "total_amount"], }, }, }, "required": ["records"], }, )
Funktion mit enum-Parameter
Im folgenden Beispiel wird mit einem Python-Wörterbuch eine Funktion deklariert, die einen Ganzzahlparameter enum
annimmt:
set_status_func = FunctionDeclaration( name="set_status", description="set a ticket's status field", # Function parameters are specified in JSON schema format parameters={ "type": "object", "properties": { "status": { "type": "integer", "enum": [ "10", "20", "30" ], # Provide integer (or any other type) values as strings. } }, }, )
Funktion mit ref und def
In der folgenden JSON-Funktionsdeklaration werden die Attribute ref
und defs
verwendet:
{ "contents": ..., "tools": [ { "function_declarations": [ { "name": "get_customer", "description": "Search for a customer by name", "parameters": { "type": "object", "properties": { "first_name": { "ref": "#/defs/name" }, "last_name": { "ref": "#/defs/name" } }, "defs": { "name": { "type": "string" } } } } ] } ] }
Verwendungshinweise:
- Geben Sie
ref
unddefs
im Gegensatz zum OpenAPI-Schema ohne das Symbol$
an. ref
muss auf ein direkt untergeordnetes Element vondefs
verweisen. Externe Verweise sind nicht zulässig.- Die maximale Tiefe eines verschachtelten Schemas beträgt 32.
- Die Rekursionstiefe in
defs
(Selbstreferenz) ist auf zwei begrenzt.
from_func
mit Arrayparameter
Im folgenden Codebeispiel wird eine Funktion deklariert, die ein Zahlenarray multipliziert, und from_func
wird verwendet, um das FunctionDeclaration
-Schema zu generieren.
from typing import List # Define a function. Could be a local function or you can import the requests library to call an API def multiply_numbers(numbers: List[int] = [1, 1]) -> int: """ Calculates the product of all numbers in an array. Args: numbers: An array of numbers to be multiplied. Returns: The product of all the numbers. If the array is empty, returns 1. """ if not numbers: # Handle empty array return 1 product = 1 for num in numbers: product *= num return product multiply_number_func = FunctionDeclaration.from_func(multiply_numbers) """ multiply_number_func contains the following schema: {'name': 'multiply_numbers', 'description': 'Calculates the product of all numbers in an array.', 'parameters': {'properties': {'numbers': {'items': {'type': 'INTEGER'}, 'description': 'list of numbers', 'default': [1.0, 1.0], 'title': 'Numbers', 'type': 'ARRAY'}}, 'description': 'Calculates the product of all numbers in an array.', 'title': 'multiply_numbers', 'property_ordering': ['numbers'], 'type': 'OBJECT'}} """
Best Practices für Funktionsaufrufe
Geben Sie klare und detaillierte Funktionsnamen, Parameterbeschreibungen und Anweisungen an.
Funktionsnamen müssen mit einem Buchstaben oder einem Unterstrich beginnen und dürfen nur die Zeichen a–z, A–Z, 0–9, Unterstriche, Punkte oder Bindestriche enthalten. Die maximale Länge beträgt 64 Zeichen.
Funktionsbeschreibungen sollten klar und ausführlich sein. Eine
book_flight_ticket
-Funktion könnte beispielsweise die Beschreibungbook flight tickets after confirming users' specific requirements, such as time, departure, destination, party size and preferred airline
haben.
Stark typisierte Parameter verwenden
Wenn die Parameterwerte aus einem endlichen Set stammen, fügen Sie das Feld enum
hinzu, anstatt den Wertesatz in die Beschreibung einzufügen. Wenn der Parameterwert immer eine Ganzzahl ist, legen Sie den Typ auf integer
statt auf number
fest.
Systemanweisung verwenden
Wenn Sie Funktionen mit Datums-, Uhrzeit- oder Standortparametern verwenden, geben Sie in der Systemanweisung das aktuelle Datum, die aktuelle Uhrzeit oder relevante Standortinformationen (z. B. Stadt und Land) an. So erhält das Modell den erforderlichen Kontext, um die Anfrage korrekt zu verarbeiten, auch wenn der Prompt des Nutzers keine Details enthält.
Aufforderung zum Aktualisieren des Nutzers
Für optimale Ergebnisse fügen Sie dem Nutzer-Prompt die folgenden Details hinzu:
- Zusätzlicher Kontext für das Modell, z. B.
You are a flight API assistant to help with searching flights based on user preferences.
- Details oder Anleitungen zur Verwendung der Funktionen, z. B.
Don't make assumptions on the departure or destination airports. Always use a future date for the departure or destination time.
- Eine Anleitung, um klärende Fragen zu stellen, wenn Nutzerabfragen mehrdeutig sind, z. B.
Ask clarifying questions if not enough information is available.
Generierungskonfiguration verwenden
Verwenden Sie für den Temperaturparameter 0
oder einen anderen niedrigen Wert. Dadurch wird das Modell angewiesen, zuverlässigere Ergebnisse zu generieren, und Halluzinationen werden reduziert.
API-Aufruf validieren
Wenn das Modell den Aufruf einer Funktion vorschlägt, die eine Bestellung senden, eine Datenbank aktualisieren oder anderweitig erhebliche Konsequenzen haben würde, validieren Sie den Funktionsaufruf vor der Ausführung mit dem Nutzer.
Preise
Die Preise für Funktionsaufrufe basieren auf der Anzahl der Zeichen in den Textein- und -ausgaben. Weitere Informationen finden Sie unter Vertex AI-Preise.
Hier bezieht sich die Texteingabe (Prompt) auf den Nutzerprompt für die aktuelle Unterhaltungsrunde, die Funktionsdeklarationen für die aktuelle Unterhaltungsrunde und den Verlauf der Unterhaltung. Der Verlauf der Unterhaltung umfasst die Abfragen, die Funktionsaufrufe und die Funktionsantworten vorheriger Unterhaltungsrunden. Vertex AI kürzt den Verlauf der Unterhaltung auf 32.000 Zeichen.
Die Textausgabe (Antwort) bezieht sich auf die Funktionsaufrufe und die Textantworten für die aktuelle Unterhaltungsrunde.
Anwendungsfälle von Funktionsaufrufen
Sie können Funktionsaufrufe für die folgenden Aufgaben verwenden:
Anwendungsfall | Beispielbeschreibung | Beispiellink |
---|---|---|
In externe APIs einbinden | Wetterinformationen mit einer meteorologischen API abrufen | Notebook-Anleitung |
Adressen in Längen- und Breitengradangaben umwandeln | Notebook-Anleitung | |
Währungen mit einer Währungsumrechnungs-API umrechnen | Codelab | |
Erweiterte Chatbots erstellen | Kundenfragen zu Produkten und Dienstleistungen beantworten | Notebook-Anleitung |
Einen Assistenten erstellen, der Finanz- und Nachrichtenfragen zu Unternehmen beantwortet | Notebook-Anleitung | |
Funktionsaufrufe strukturieren und steuern | Strukturierte Entitäten aus Rohprotokolldaten extrahieren | Notebook-Anleitung |
Einzelne oder mehrere Parameter aus der Nutzereingabe extrahieren | Notebook-Anleitung | |
Listen und verschachtelte Datenstrukturen in Funktionsaufrufen verarbeiten | Notebook-Anleitung | |
Verhalten von Funktionsaufrufen steuern | Parallele Funktionsaufrufe und ‑antworten verarbeiten | Notebook-Anleitung |
Festlegen, wann und welche Funktionen das Modell aufrufen kann | Notebook-Anleitung | |
Datenbanken mit natürlicher Sprache abfragen | Fragen in natürlicher Sprache in SQL-Abfragen für BigQuery umwandeln | Beispiel-App |
Multimodale Funktionsaufrufe | Bilder, Videos, Audioinhalte und PDFs als Eingabe verwenden, um Funktionsaufrufe auszulösen | Notebook-Anleitung |
Hier sind einige weitere Anwendungsfälle:
Sprachbefehle interpretieren: Erstellen Sie Funktionen, die bestimmten Aufgaben im Fahrzeug entsprechen. Sie können beispielsweise Funktionen erstellen, mit denen das Radio eingeschaltet oder die Klimaanlage aktiviert wird. Senden Sie Audiodateien mit den Sprachbefehlen des Nutzers an das Modell und bitten Sie es, die Audiodaten in Text umzuwandeln und die Funktion zu identifizieren, die der Nutzer aufrufen möchte.
Workflows anhand von Umgebungstriggern automatisieren: Funktionen zur Darstellung von Prozessen erstellen, die automatisiert werden können. Stellen Sie dem Modell Daten von Umgebungssensoren bereit und bitten Sie es, die Daten zu parsen und zu verarbeiten, um festzustellen, ob einer oder mehrere Workflows aktiviert werden sollen. Ein Modell könnte zum Beispiel Temperaturdaten in einem Lager verarbeiten und eine Sprinklerfunktion aktivieren.
Zuweisung von Support-Tickets automatisieren: Stellen Sie dem Modell Support-Tickets, Protokolle und kontextsensitive Regeln zur Verfügung. Das Modell soll alle diese Informationen verarbeiten, um zu bestimmen, wem das Ticket zugewiesen werden soll. Rufen Sie eine Funktion auf, um das Ticket der vom Modell vorgeschlagenen Person zuzuweisen.
Informationen aus einer Wissensdatenbank abrufen: Erstellen Sie Funktionen, die akademische Artikel zu einem bestimmten Thema abrufen und zusammenfassen. Befähigen Sie das Modell, Fragen zu akademischen Themen zu beantworten und die Antworten mit Zitaten zu versehen.
Nächste Schritte
Weitere Informationen finden Sie in der API-Referenz für Funktionsaufrufe.