Benutzerdefinierte Funktionen können mithilfe der Funktion „Functional“ definiert und Gemini-Modellen zur Verfügung gestellt werden. Anruffunktion. Die Modelle rufen diese Funktionen nicht direkt auf, sondern eine strukturierte Datenausgabe zu generieren, die den Funktionsnamen angibt und Argumente. Mit dieser Ausgabe können Sie Anwendungen schreiben, externe APIs ausgeben und aufrufen. Die resultierende API-Ausgabe kann dann in einen weiteren Modell-Prompt integriert, sodass eine umfassendere Abfrage Antworten. Funktionsaufrufe ermöglichen Nutzern, in Echtzeit zu interagieren Informationen und verschiedene Dienstleistungen wie Datenbanken, Kundenbeziehungen und Dokumentenspeicher, um deren Fähigkeit, relevante und kontextabhängige Antworten liefern.
Funktionsweise von Funktionsaufrufen
Sie verwenden die Funktion „Funktionsaufruf“, indem Sie strukturierte Abfragedaten hinzufügen, Funktionsdeklarationen zu einem Modell-Prompt hinzu. Die Funktionsdeklarationen liefern den Namen der API-Funktion, erklären ihren Zweck, alle unterstützten Parameter und Beschreibungen dieser Parameter. Nach bestandener Prüfung einer Liste von Funktionsdeklarationen in einer Abfrage an das Modell, und der restlichen Abfrage, um zu bestimmen, wie die deklarierten die API als Antwort auf die Anfrage verwendet.
Das Modell gibt dann ein Objekt OpenAPI-kompatibles Schema Gibt an, wie eine oder mehrere der deklarierten Funktionen aufgerufen werden, um eine Antwort zu erhalten auf die Frage der Nutzenden. Sie können dann den empfohlenen Funktionsaufruf Parameter verwenden, die eigentliche API aufrufen, eine Antwort erhalten und diese Antwort an oder weitere Maßnahmen ergreifen. Beachten Sie, dass das Modell die Methode deklarierten Funktionen. Stattdessen verwenden Sie die zurückgegebenen Schemaobjektparameter, die Funktion aufrufen. Die Gemini API unterstützt auch parallele Funktionsaufrufe, bei denen empfiehlt das Modell mehrere API-Funktionsaufrufe.
Unterstützte Modelle
Die folgenden Modelle unterstützen die Funktion „Funktionsaufrufe“:
gemini-1.0-pro
gemini-1.0-pro-001
gemini-1.5-flash-latest
gemini-1.5-pro-latest
Funktionsdeklarationen
Wenn Sie Funktionsaufrufe in einer Eingabeaufforderung implementieren, erstellen Sie ein tools
-Objekt.
die ein oder mehrere function declarations
enthält. Sie definieren Funktionen
mit JSON, insbesondere mit einer
Teilmenge auswählen
der
OpenAPI-Schema
Format. Eine einzelne Funktionsdeklaration kann die folgenden Parameter enthalten:
name
(String): Die eindeutige Kennung für die Funktion innerhalb der API aufrufen.description
(String): Eine umfassende Erläuterung der Zweck und Fähigkeiten.parameters
(Objekt): Definiert die Eingabedaten, die für die Funktion erforderlich sind.type
(String): Gibt den gesamten Datentyp an, z. B.object
.properties
(Objekt): Listet einzelne Parameter auf, jeweils mit:type
(String): Der Datentyp des Parameters, z. B.string
,integer
,boolean
.description
(String): Eine verständliche Erklärung der und dem erwarteten Format.
required
(Array): Ein Array von Strings, die die Parameternamen auflisten. die obligatorisch sind, damit die Funktion funktioniert.
Codebeispiele für eine Funktionsdeklaration mit cURL-Befehlen finden Sie in der Beispiele für Funktionsaufrufe Beispiele Informationen zum Erstellen von Funktionsdeklarationen für andere Plattformen finden Sie in der Leitfaden zu Funktionsaufruf-Plattformen.
Best Practices für Funktionsdeklarationen
Funktionen genau zu definieren, wenn Sie sie in Ihre
-Anfragen. Jede Funktion stützt sich auf bestimmte Parameter, die ihr Verhalten steuern.
und Interaktion mit dem Modell. Der folgende Eintrag enthält Informationen zur
Definition der Parameter einer einzelnen Funktion in einem functions_declarations
Array.
name
: Verwenden Sie eindeutige, aussagekräftige Namen ohne Leerzeichen, Punkte (.
) oder Bindestriche (-
). Verwenden Sie stattdessen Unterstriche (_
) oder Camel-Case-Schreibweise.description
: Stellen Sie eine detaillierte, klare und spezifische Funktion bereit Beschreibungen und gegebenenfalls Beispiele. Anstatt beispielsweisefind theaters
, verwenden Siefind theaters based on location and optionally movie title that is currently playing in theaters.
. Vermeiden Sie zu allgemein gehaltene oder mehrdeutige Aussagen. Beschreibungen.properties
>type
: Verwenden Sie stark typisierte Parameter, um KI-Halluzinationen verwenden. Stammen die Parameterwerte z. B. aus einem endlichen festgelegt ist, verwenden Sie einenum
-Feld, anstatt die Werte in der Beschreibung aufzulisten (z.B."type": "enum", "values": ["now_playing", "upcoming"]
. Wenn die ist immer eine Ganzzahl, legen Sie als Typinteger
fest,number
properties
>description
: Geben Sie konkrete Beispiele und Einschränkungen an. Verwenden Sie beispielsweiseThe city and state, e.g. San Francisco, CA or a zip code e.g. 95616
anstelle vonthe location to search
.
Weitere Best Practices für die Verwendung von Funktionsaufrufen finden Sie in der Best Practices.
Modus für Funktionsaufrufe
Mit dem Parameter mode
für Funktionsaufrufe können Sie die Ausführung ändern
der Funktion ein. Es gibt drei Modi:
AUTO
: Das Standardverhalten des Modells. Das Modell beschließt, entweder oder einer Antwort in natürlicher Sprache.ANY
: Das Modell ist darauf beschränkt, immer einen Funktionsaufruf vorherzusagen. Wennallowed_function_names
nicht angegeben ist, wählt das Modell aus allen verfügbaren Funktionsdeklarationen. Wennallowed_function_names
vorhanden ist, gilt Folgendes: das Modell aus der Gruppe zulässiger Funktionen auswählt.NONE
: Das Modell sagt keinen Funktionsaufruf vorher. In diesem Fall hat das Modell wie wenn keine Funktionsdeklarationen übergeben werden.
Die Nutzung des ANY
-Modus („erzwungener Funktionsaufruf“) ist
wird nur für Gemini 1.5 Pro
-Modelle unterstützt.
Sie können auch eine Reihe von allowed_function_names
übergeben, die, sofern angegeben, begrenzt
Funktionen, die das Modell aufruft. Sie sollten nur
allowed_function_names
, wenn der Modus ANY
ist. Funktionsnamen müssen übereinstimmen
Funktionsdeklarationen. Wenn der Modus auf ANY
eingestellt ist und die
allowed_function_names
festgelegt ist, sagt das Modell einen Funktionsaufruf aus der
Funktionsnamen bereitgestellt werden.
Das folgende Code-Snippet aus einer
Beispielanfrage zeigt, wie Sie
Legen Sie mode
auf ANY
fest und geben Sie eine Liste der zulässigen Funktionen an:
"tool_config": {
"function_calling_config": {
"mode": "ANY",
"allowed_function_names": ["find_theaters", "get_showtimes"]
},
}
Beispiele für Funktionsaufrufe
Dieser Abschnitt enthält Beispiel-Prompts für Funktionsaufrufe mit cURL-Befehlen. Die Beispiele umfassen Szenarien mit einem und mehreren Runden sowie die Möglichkeit, Modi für Funktionsaufrufe.
Bei Verwendung von cURL-Befehlen mit dieser Funktion werden die Funktion und der Parameter
Informationen sind im tools
-Element enthalten. Jede Funktionsdeklaration in der
Das tools
-Element enthält den Funktionsnamen und Sie geben die Parameter mit
ein OpenAPI-kompatibles Schema,
und eine Funktionsbeschreibung.
Beispiel für eine einzelne Antwort
Im Single-Turn rufst du das Sprachmodell einmal auf. Beim Funktionsaufruf kann ein Einzelrunden-Anwendungsfall sein, wenn Sie dem Modell eine Natural Language-Abfrage und eine Liste von Funktionen zur Verfügung stellen. In diesem Fall verwendet das Modell die Funktion -Deklaration, die den Funktionsnamen, die Parameter und die Beschreibung enthält, sagen, welche Funktion aufgerufen und welche Argumente dafür verwendet werden sollen.
Im folgenden curl-Beispiel wird ein Beispiel für die Übergabe einer Beschreibung einer Funktion, das Informationen darüber zurückgibt, wo ein Film abgespielt wird. Mehrere
In der Anfrage sind Funktionsdeklarationen enthalten, z. B. find_movies
und
find_theaters
.
Single-Turn-Funktion zum Aufrufen einer Beispielanfrage
curl https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=$API_KEY \ -H 'Content-Type: application/json' \ -d '{ "contents": { "role": "user", "parts": { "text": "Which theaters in Mountain View show Barbie movie?" } }, "tools": [ { "function_declarations": [ { "name": "find_movies", "description": "find movie titles currently playing in theaters based on any description, genre, title words, etc.", "parameters": { "type": "object", "properties": { "location": { "type": "string", "description": "The city and state, e.g. San Francisco, CA or a zip code e.g. 95616" }, "description": { "type": "string", "description": "Any kind of description including category or genre, title words, attributes, etc." } }, "required": [ "description" ] } }, { "name": "find_theaters", "description": "find theaters based on location and optionally movie title which is currently playing in theaters", "parameters": { "type": "object", "properties": { "location": { "type": "string", "description": "The city and state, e.g. San Francisco, CA or a zip code e.g. 95616" }, "movie": { "type": "string", "description": "Any movie title" } }, "required": [ "location" ] } }, { "name": "get_showtimes", "description": "Find the start times for movies playing in a specific theater", "parameters": { "type": "object", "properties": { "location": { "type": "string", "description": "The city and state, e.g. San Francisco, CA or a zip code e.g. 95616" }, "movie": { "type": "string", "description": "Any movie title" }, "theater": { "type": "string", "description": "Name of the theater" }, "date": { "type": "string", "description": "Date for requested showtime" } }, "required": [ "location", "movie", "theater", "date" ] } } ] } ] }'
Die Antwort auf dieses curl-Beispiel könnte in etwa so aussehen.
curl-Beispielantwort für Einzelrunden-Funktionsaufruf
[{ "candidates": [ { "content": { "parts": [ { "functionCall": { "name": "find_theaters", "args": { "movie": "Barbie", "location": "Mountain View, CA" } } } ] }, "finishReason": "STOP", "safetyRatings": [ { "category": "HARM_CATEGORY_HARASSMENT", "probability": "NEGLIGIBLE" }, { "category": "HARM_CATEGORY_HATE_SPEECH", "probability": "NEGLIGIBLE" }, { "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "probability": "NEGLIGIBLE" }, { "category": "HARM_CATEGORY_DANGEROUS_CONTENT", "probability": "NEGLIGIBLE" } ] } ], "usageMetadata": { "promptTokenCount": 9, "totalTokenCount": 9 } }]
Beispiel für eine Abzweigung mit ANY-Modus
Das folgende curl-Beispiel ähnelt dem
Beispiel mit einer einzigen Antwort, legt jedoch Folgendes fest:
den mode auf ANY
:
"tool_config": {
"function_calling_config": {
"mode": "ANY"
},
}
Funktionsaufruf mit ANY-Modus (Anfrage)
curl https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=$API_KEY \ -H 'Content-Type: application/json' \ -d '{ "contents": { "role": "user", "parts": { "text": "What movies are showing in North Seattle tonight?" } }, "tools": [ { "function_declarations": [ { "name": "find_movies", "description": "find movie titles currently playing in theaters based on any description, genre, title words, etc.", "parameters": { "type": "object", "properties": { "location": { "type": "string", "description": "The city and state, e.g. San Francisco, CA or a zip code e.g. 95616" }, "description": { "type": "string", "description": "Any kind of description including category or genre, title words, attributes, etc." } }, "required": [ "description" ] } }, { "name": "find_theaters", "description": "find theaters based on location and optionally movie title which is currently playing in theaters", "parameters": { "type": "object", "properties": { "location": { "type": "string", "description": "The city and state, e.g. San Francisco, CA or a zip code e.g. 95616" }, "movie": { "type": "string", "description": "Any movie title" } }, "required": [ "location" ] } }, { "name": "get_showtimes", "description": "Find the start times for movies playing in a specific theater", "parameters": { "type": "object", "properties": { "location": { "type": "string", "description": "The city and state, e.g. San Francisco, CA or a zip code e.g. 95616" }, "movie": { "type": "string", "description": "Any movie title" }, "theater": { "type": "string", "description": "Name of the theater" }, "date": { "type": "string", "description": "Date for requested showtime" } }, "required": [ "location", "movie", "theater", "date" ] } } ] } ], "tool_config": { "function_calling_config": { "mode": "ANY" }, } }'
Die Antwort sieht etwa so aus:
Funktionsaufruf im ANY-Modus (Antwort)
{ "candidates": [ { "content": { "parts": [ { "functionCall": { "name": "find_movies", "args": { "description": "", "location": "North Seattle, WA" } } } ], "role": "model" }, "finishReason": "STOP", "index": 0, "safetyRatings": [ { "category": "HARM_CATEGORY_DANGEROUS_CONTENT", "probability": "NEGLIGIBLE" }, { "category": "HARM_CATEGORY_HARASSMENT", "probability": "NEGLIGIBLE" }, { "category": "HARM_CATEGORY_HATE_SPEECH", "probability": "NEGLIGIBLE" }, { "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "probability": "NEGLIGIBLE" } ] } ], "promptFeedback": { "safetyRatings": [ { "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "probability": "NEGLIGIBLE" }, { "category": "HARM_CATEGORY_HATE_SPEECH", "probability": "NEGLIGIBLE" }, { "category": "HARM_CATEGORY_HARASSMENT", "probability": "NEGLIGIBLE" }, { "category": "HARM_CATEGORY_DANGEROUS_CONTENT", "probability": "NEGLIGIBLE" } ] } }
Beispiel für einen Schritt in ANY-Modus und zulässige Funktionen
Das folgende curl-Beispiel ähnelt dem
Beispiel mit einer einzigen Antwort, legt jedoch Folgendes fest:
den Modus auf ANY
und enthält eine Liste der zulässigen
Funktionen:
"tool_config": {
"function_calling_config": {
"mode": "ANY",
"allowed_function_names": ["find_theaters", "get_showtimes"]
},
}
Funktionsaufruf mit ANY-Modus und zulässigen Funktionen (Anfrage)
curl https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=$API_KEY \ -H 'Content-Type: application/json' \ -d '{ "contents": { "role": "user", "parts": { "text": "What movies are showing in North Seattle tonight?" } }, "tools": [ { "function_declarations": [ { "name": "find_movies", "description": "find movie titles currently playing in theaters based on any description, genre, title words, etc.", "parameters": { "type": "object", "properties": { "location": { "type": "string", "description": "The city and state, e.g. San Francisco, CA or a zip code e.g. 95616" }, "description": { "type": "string", "description": "Any kind of description including category or genre, title words, attributes, etc." } }, "required": [ "description" ] } }, { "name": "find_theaters", "description": "find theaters based on location and optionally movie title which is currently playing in theaters", "parameters": { "type": "object", "properties": { "location": { "type": "string", "description": "The city and state, e.g. San Francisco, CA or a zip code e.g. 95616" }, "movie": { "type": "string", "description": "Any movie title" } }, "required": [ "location" ] } }, { "name": "get_showtimes", "description": "Find the start times for movies playing in a specific theater", "parameters": { "type": "object", "properties": { "location": { "type": "string", "description": "The city and state, e.g. San Francisco, CA or a zip code e.g. 95616" }, "movie": { "type": "string", "description": "Any movie title" }, "theater": { "type": "string", "description": "Name of the theater" }, "date": { "type": "string", "description": "Date for requested showtime" } }, "required": [ "location", "movie", "theater", "date" ] } } ] } ], "tool_config": { "function_calling_config": { "mode": "ANY", "allowed_function_names": ["find_theaters", "get_showtimes"] }, } }'
Das Modell kann die find_movies
-Funktion nicht vorhersagen, da sie nicht in der Liste steht
und sagt stattdessen eine andere Funktion voraus. Die Antwort
könnte etwa so aussehen:
Funktionsaufruf mit ANY-Modus und zulässigen Funktionen (Antwort)
{ "candidates": [ { "content": { "parts": [ { "functionCall": { "name": "find_theaters", "args": { "location": "North Seattle, WA", "movie": null } } } ], "role": "model" }, "finishReason": "STOP", "index": 0, "safetyRatings": [ { "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "probability": "NEGLIGIBLE" }, { "category": "HARM_CATEGORY_HARASSMENT", "probability": "NEGLIGIBLE" }, { "category": "HARM_CATEGORY_HATE_SPEECH", "probability": "NEGLIGIBLE" }, { "category": "HARM_CATEGORY_DANGEROUS_CONTENT", "probability": "NEGLIGIBLE" } ] } ], "promptFeedback": { "safetyRatings": [ { "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "probability": "NEGLIGIBLE" }, { "category": "HARM_CATEGORY_HATE_SPEECH", "probability": "NEGLIGIBLE" }, { "category": "HARM_CATEGORY_HARASSMENT", "probability": "NEGLIGIBLE" }, { "category": "HARM_CATEGORY_DANGEROUS_CONTENT", "probability": "NEGLIGIBLE" } ] } }
Beispiele mit mehreren Schritten
So implementieren Sie ein Szenario für den Funktionsaufruf in mehreren Schritten:
- Rufen Sie eine Antwort auf einen Funktionsaufruf ab, indem Sie das Sprachmodell aufrufen. Dies ist die erste Drehen.
- Rufen Sie das Sprachmodell mit der Antwort des Funktionsaufrufs aus der ersten Runde auf. und die Funktionsantwort, die Sie durch den Aufruf dieser Funktion erhalten. Dies ist die bei der zweiten Runde.
Die Antwort in der zweiten Runde fasst entweder die Ergebnisse zusammen, um Ihre Abfrage in der ersten Runde zu beantworten, oder enthält einen zweiten Funktionsaufruf, mit dem Sie weitere Informationen zu Ihrer Abfrage abrufen können.
Dieses Thema enthält zwei curl-Beispiele mit mehreren Schritten:
- Curl-Beispiel, das eine Funktionsantwort aus einer vorherigen Runde verwendet
- Curl-Beispiel, mit dem ein Sprachmodell mehrmals aufgerufen wird
Eine Antwort aus einer früheren Runde verwenden
Im folgenden curl-Beispiel werden die Funktion und die Argumente aufgerufen, die vom vorherigen Beispiels in einem Schritt, um eine Antwort zu erhalten. Die Methode und die Parameter die im Beispiel mit einer Antwort zurückgegeben werden, sind in dieser JSON-Datei enthalten.
"functionCall": {
"name": "find_theaters",
"args": {
"movie": "Barbie",
"location": "Mountain View, CA"
}
}
curl-Beispielanfrage für Funktionsaufruf in mehreren Runden
curl https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=$API_KEY \ -H 'Content-Type: application/json' \ -d '{ "contents": [{ "role": "user", "parts": [{ "text": "Which theaters in Mountain View show Barbie movie?" }] }, { "role": "model", "parts": [{ "functionCall": { "name": "find_theaters", "args": { "location": "Mountain View, CA", "movie": "Barbie" } } }] }, { "role": "function", "parts": [{ "functionResponse": { "name": "find_theaters", "response": { "name": "find_theaters", "content": { "movie": "Barbie", "theaters": [{ "name": "AMC Mountain View 16", "address": "2000 W El Camino Real, Mountain View, CA 94040" }, { "name": "Regal Edwards 14", "address": "245 Castro St, Mountain View, CA 94040" }] } } } }] }], "tools": [{ "functionDeclarations": [{ "name": "find_movies", "description": "find movie titles currently playing in theaters based on any description, genre, title words, etc.", "parameters": { "type": "OBJECT", "properties": { "location": { "type": "STRING", "description": "The city and state, e.g. San Francisco, CA or a zip code e.g. 95616" }, "description": { "type": "STRING", "description": "Any kind of description including category or genre, title words, attributes, etc." } }, "required": ["description"] } }, { "name": "find_theaters", "description": "find theaters based on location and optionally movie title which is currently playing in theaters", "parameters": { "type": "OBJECT", "properties": { "location": { "type": "STRING", "description": "The city and state, e.g. San Francisco, CA or a zip code e.g. 95616" }, "movie": { "type": "STRING", "description": "Any movie title" } }, "required": ["location"] } }, { "name": "get_showtimes", "description": "Find the start times for movies playing in a specific theater", "parameters": { "type": "OBJECT", "properties": { "location": { "type": "STRING", "description": "The city and state, e.g. San Francisco, CA or a zip code e.g. 95616" }, "movie": { "type": "STRING", "description": "Any movie title" }, "theater": { "type": "STRING", "description": "Name of the theater" }, "date": { "type": "STRING", "description": "Date for requested showtime" } }, "required": ["location", "movie", "theater", "date"] } }] }] }'
Die Antwort auf dieses curl-Beispiel enthält das Ergebnis des Aufrufs der
find_theaters
-Methode. Die Antwort sieht etwa so aus:
curl-Beispielantwort für Funktionsaufruf in mehreren Runden
{ "candidates": [ { "content": { "parts": [ { "text": " OK. Barbie is showing in two theaters in Mountain View, CA: AMC Mountain View 16 and Regal Edwards 14." } ] } } ], "usageMetadata": { "promptTokenCount": 9, "candidatesTokenCount": 27, "totalTokenCount": 36 } }
Modell mehrmals aufrufen
Im folgenden cURL-Beispiel wird das Generative-AI-Modell mehrmals aufgerufen, eine Funktion. Jedes Mal, wenn das Modell die Funktion aufruft, kann es ein anderes verwenden, um eine andere Nutzeranfrage in der Anfrage zu beantworten.
curl-Beispielanfrage für Funktionsaufruf in mehreren Runden
curl https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=$API_KEY \ -H 'Content-Type: application/json' \ -d '{ "contents": [{ "role": "user", "parts": [{ "text": "Which theaters in Mountain View show Barbie movie?" }] }, { "role": "model", "parts": [{ "functionCall": { "name": "find_theaters", "args": { "location": "Mountain View, CA", "movie": "Barbie" } } }] }, { "role": "function", "parts": [{ "functionResponse": { "name": "find_theaters", "response": { "name": "find_theaters", "content": { "movie": "Barbie", "theaters": [{ "name": "AMC Mountain View 16", "address": "2000 W El Camino Real, Mountain View, CA 94040" }, { "name": "Regal Edwards 14", "address": "245 Castro St, Mountain View, CA 94040" }] } } } }] }, { "role": "model", "parts": [{ "text": " OK. Barbie is showing in two theaters in Mountain View, CA: AMC Mountain View 16 and Regal Edwards 14." }] },{ "role": "user", "parts": [{ "text": "Can we recommend some comedy movies on show in Mountain View?" }] }], "tools": [{ "functionDeclarations": [{ "name": "find_movies", "description": "find movie titles currently playing in theaters based on any description, genre, title words, etc.", "parameters": { "type": "OBJECT", "properties": { "location": { "type": "STRING", "description": "The city and state, e.g. San Francisco, CA or a zip code e.g. 95616" }, "description": { "type": "STRING", "description": "Any kind of description including category or genre, title words, attributes, etc." } }, "required": ["description"] } }, { "name": "find_theaters", "description": "find theaters based on location and optionally movie title which is currently playing in theaters", "parameters": { "type": "OBJECT", "properties": { "location": { "type": "STRING", "description": "The city and state, e.g. San Francisco, CA or a zip code e.g. 95616" }, "movie": { "type": "STRING", "description": "Any movie title" } }, "required": ["location"] } }, { "name": "get_showtimes", "description": "Find the start times for movies playing in a specific theater", "parameters": { "type": "OBJECT", "properties": { "location": { "type": "STRING", "description": "The city and state, e.g. San Francisco, CA or a zip code e.g. 95616" }, "movie": { "type": "STRING", "description": "Any movie title" }, "theater": { "type": "STRING", "description": "Name of the theater" }, "date": { "type": "STRING", "description": "Date for requested showtime" } }, "required": ["location", "movie", "theater", "date"] } }] }] }'
curl-Beispielantwort für Funktionsaufruf in mehreren Runden
[{ "candidates": [ { "content": { "parts": [ { "functionCall": { "name": "find_movies", "args": { "description": "comedy", "location": "Mountain View, CA" } } } ] }, "finishReason": "STOP", "safetyRatings": [ { "category": "HARM_CATEGORY_HARASSMENT", "probability": "NEGLIGIBLE" }, { "category": "HARM_CATEGORY_HATE_SPEECH", "probability": "NEGLIGIBLE" }, { "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "probability": "NEGLIGIBLE" }, { "category": "HARM_CATEGORY_DANGEROUS_CONTENT", "probability": "NEGLIGIBLE" } ] } ], "usageMetadata": { "promptTokenCount": 48, "totalTokenCount": 48 } } ]
Best Practices
Befolgen Sie diese Best Practices, um die Genauigkeit und Zuverlässigkeit Ihrer Funktionsaufrufe.
Nutzer-Prompt
Die besten Ergebnisse erzielen Sie, wenn Sie der Nutzeranfrage die folgenden Details voranstellen:
- Zusätzlicher Kontext für das Modell. Beispiel:
You are a movie API assistant to help users find movies and showtimes based on their preferences.
- Details oder Anleitungen zur Verwendung der Funktionen Beispiel:
Don't make assumptions on showtimes. Always use a future date for showtimes.
. - Anweisungen, um klärende Fragen zu stellen, wenn die Anfragen von Nutzenden mehrdeutig sind. Für
Beispiel:
Ask clarifying questions if not enough information is available to complete the request.
Stichprobenparameter
Verwenden Sie für den Temperaturparameter 0
oder einen anderen niedrigen Wert. Damit weisen Sie
um zuverlässigere Ergebnisse zu liefern und KI-Halluzinationen zu vermeiden.
API-Aufruf
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.