Sie können dafür sorgen, dass die generierte Ausgabe eines Modells immer einem bestimmten Schema entspricht, damit Sie konsistent formatierte Antworten erhalten. Möglicherweise haben Sie ein etabliertes Datenschema, das Sie für andere Aufgaben verwenden. Wenn Sie das Modell dasselbe Schema verwenden lassen, können Sie Daten direkt aus der Ausgabe des Modells extrahieren, ohne dass eine Nachbearbeitung erforderlich ist.
Wenn Sie die Struktur der Modellausgabe festlegen möchten, definieren Sie ein Antwortschema, das als Vorlage für Modellantworten dient. Wenn Sie einen Prompt senden und das Antwortschema angeben, folgt die Antwort des Modells immer dem von Ihnen definierten Schema.
Sie können die generierte Ausgabe steuern, wenn Sie die folgenden Modelle verwenden:
- Gemini-Modelle:
Klicken, um unterstützte Modelle einzublenden
- Gemini Robotics ER 2
- Gemini 4 Carbon für Cybersicherheit
- Gemini 4 Carbon
- Gemini 4 Argon Cyber Permissive
- Gemini 4 Argon
- Gemini 3.8 Flash Cyber
- Gemini 3.8 Flash
- Gemini 3.7 Flash
- Gemini 3.6 Flash
- Gemini 3.5 Flash-Lite
- Gemini 3.5 Flash
- Gemini 3.1 Pro
- Gemini 3.1 Flash-Lite
- Gemini 3 Flash
- Gemini 2.5 Pro
- Gemini 2.5 Flash-Lite
- Gemini 2.5 Flash
Offene Modelle:
Informationen zu Open Models finden Sie in diesem Nutzerhandbuch.
Beispielanwendungsfälle
Ein Anwendungsfall für die Verwendung eines Antwortschemas ist, dass die Antwort eines Modells gültiges JSON-Format erzeugt und Ihrem Schema entspricht. Die Ausgaben generativer Modelle können eine gewisse Variabilität aufweisen. Durch die Einbeziehung eines Antwortschemas wird sichergestellt, dass Sie immer gültiges JSON erhalten. Daher können Ihre nachgelagerten Aufgaben zuverlässig gültige JSON-Eingaben aus generierten Antworten erwarten.
Ein weiteres Beispiel ist die Einschränkung der Antwortmöglichkeiten eines Modells. Sie können beispielsweise ein Modell Text mit benutzerdefinierten Labels annotieren lassen, nicht mit Labels, die das Modell erzeugt. Diese Einschränkung ist nützlich, wenn Sie einen bestimmten Satz von Labels wie positive oder negative erwarten und keine Mischung aus anderen Labels erhalten möchten, die das Modell generieren könnte, z. B. good, positive, negative oder bad.
Hinweise
In den folgenden Überlegungen werden mögliche Einschränkungen erläutert, wenn Sie ein Antwortschema verwenden möchten:
- Sie müssen die API verwenden, um ein Antwortschema zu definieren und zu verwenden. Es gibt keinen Konsolensupport.
- Die Größe Ihres Antwortschemas wird auf das Eingabetokenlimit angerechnet.
Es werden nur bestimmte Ausgabeformate unterstützt, z. B.
application/jsonodertext/x.enum. Zur JSON-Ausgabe:- Wenn Sie
response_mime_typeaufapplication/jsonsetzen, ohne einresponse_schemaanzugeben, ist das nur ein starker Hinweis und es besteht ein geringes Risiko, dass fehlerhaftes JSON generiert wird. - Damit JSON-Objekte zu 100 % gültig sind, müssen Anfragen sowohl
response_schemaals auchresponse_mime_typeenthalten, die aufapplication/jsonfestgelegt sind. - Wenn Sie aufgrund Ihres Anwendungsfalls kein Schema vordefinieren können, sollten Sie einen clientseitigen JSON-Validator mit einem Wiederholungsmechanismus implementieren.
- Wenn Sie
Strukturierte Ausgaben unterstützen einen Teil der Schemareferenz für die Gemini Enterprise Agent Platform. Weitere Informationen finden Sie unter Unterstützte Schemafelder.
Ein komplexes Schema kann zu einem
InvalidArgument: 400-Fehler führen. Die Komplexität kann sich aus langen Attributnamen, langen Array-Längenlimits, Enums mit vielen Werten, Objekten mit vielen optionalen Attributen oder einer Kombination dieser Faktoren ergeben.Wenn Sie diesen Fehler bei einem gültigen Schema erhalten, nehmen Sie eine oder mehrere der folgenden Änderungen vor, um den Fehler zu beheben:
- Kürzen Sie die Attribut- oder Enum-Namen.
- Verschachtelte Arrays vereinfachen
- Reduzieren Sie die Anzahl der Attribute mit Einschränkungen, z. B. Zahlen mit Mindest- und Höchstwerten.
- Reduzieren Sie die Anzahl der Attribute mit komplexen Einschränkungen, z. B. Attribute mit komplexen Formaten wie
date-time. - Reduzieren Sie die Anzahl der optionalen Attribute.
- Reduzieren Sie die Anzahl der gültigen Werte für Enums.
Unterstützte Schemafelder
Sie können ein response_schema angeben, das das Ausgabeformat beschreibt.
Das Modell generiert eine Antwort, die dem bereitgestellten Schema entspricht. Wenn Sie strukturierte Ausgaben verwenden, erzeugt das Modell Ausgaben in derselben Reihenfolge wie die Schlüssel im Schema.
Die folgenden Felder aus dem Agent Platform-Schema werden unterstützt. Wenn Sie ein nicht unterstütztes Feld verwenden, kann die Agent Platform Ihre Anfrage trotzdem verarbeiten, ignoriert aber das Feld:
anyOfenum: Es werden nur nicht leerestring-Elemente unterstützt. Wenn Sie einen leeren String ("") angeben, wird ein400 INVALID_ARGUMENT-Fehler (cannot be empty) zurückgegeben.formatitemsmaximummaxItemsminimumminItemsnullableproperties: Attributschlüssel dürfen keine leeren Strings sein. Wenn Sie einen leeren Stringschlüssel ("") angeben, wird ein400 INVALID_ARGUMENT-Fehler (key cannot be empty) zurückgegeben.descriptionpropertyOrdering*required
* propertyOrdering ist speziell für strukturierte Ausgaben vorgesehen und nicht Teil des Agent Platform-Schemas. In diesem Feld wird die Reihenfolge festgelegt, in der Properties generiert werden. Die aufgeführten Attribute müssen eindeutig und gültige Schlüssel im Wörterbuch properties sein.
Wenn Sie ein Schema definieren, folgt das Modell nicht strikt der Reihenfolge der Attribute, die Sie im Feld properties definieren. Wenn Sie eine bestimmte Reihenfolge für die Generierung von Attributen erzwingen möchten, verwenden Sie das Feld propertyOrdering. In propertyOrdering aufgeführte Properties werden zuerst in der angegebenen Reihenfolge generiert, gefolgt von allen anderen Properties.
Wenn Sie das Python SDK verwenden, entspricht die Standardreihenfolge der Attribute der in Ihrem Schema definierten Reihenfolge. In allen anderen Fällen werden Properties alphabetisch generiert, wobei die erforderlichen Properties zuerst gruppiert werden, gefolgt von optionalen Properties.
Für das Feld format unterstützt die Agent Platform die folgenden Werte: date, date-time, duration und time. Die Beschreibung und das Format der einzelnen Werte werden in der OpenAPI Initiative Registry beschrieben.
Hinweis
Sie können ein Antwortschema definieren, um die Struktur der Modellausgabe, die Feldnamen und den erwarteten Datentyp für jedes Feld festzulegen. Verwenden Sie nur die unterstützten Felder, die im Abschnitt Hinweise aufgeführt sind. Alle anderen Felder werden ignoriert.
Fügen Sie Ihr Antwortschema nur im Feld responseSchema ein. Duplizieren Sie das Schema nicht in Ihrem Eingabe-Prompt. Andernfalls kann die Qualität der generierten Ausgabe geringer sein.
Beispielschemas finden Sie im Abschnitt Beispielschemas und Modellantworten.
Modellverhalten und Antwortschema
Wenn ein Modell eine Antwort generiert, verwendet es den Feldnamen und die Beschreibung aus dem bereitgestellten Schema. Verwenden Sie eine klare Struktur und eindeutige Feldnamen, damit Ihre Absicht klar ist. Als Best Practice sollten Sie das Feld description in den Schemaattributen verwenden, um den Zweck jedes Felds zu definieren.
Standardmäßig sind Felder optional. Das bedeutet, dass das Modell die Felder befüllen oder überspringen kann. Sie können Felder als erforderlich festlegen, um das Modell zu zwingen, einen Wert anzugeben. Wenn der zugehörige Eingabe-Prompt nicht genügend Kontext enthält, generiert das Modell Antworten hauptsächlich auf Grundlage der Daten, mit denen es trainiert wurde.
Wenn Sie nicht die erwarteten Ergebnisse erhalten, sollten Sie zuerst die Beschreibungen im Schema iterieren. Wenn Sie die Nuancen des Schemas nicht allein in der Schemabeschreibung erfassen können, können Sie das Schema im Prompt anhand der folgenden Richtlinien erläutern:
Geben Sie das Schema nur im Schemaobjekt an. Geben Sie das Schema nicht auch im Prompt an. Wenn Sie beides tun, kann dies die Leistung beeinträchtigen.
Vermeiden Sie es, das Schema im Prompt zu diskutieren (außer „Folgen Sie dem bereitgestellten Schema“ oder Ähnliches), es sei denn, es ist notwendig. Das erleichtert die Wartung. Wenn sich Ihr Schema jemals ändern muss, können Sie nur das Schema aktualisieren, anstatt sowohl den Prompt als auch das Schema zu aktualisieren.
Wenn Sie das Schema im Prompt besprechen müssen (um Beispiele oder besonders detaillierte Anweisungen anzugeben, die sonst zu langen
description-Werten im Schema führen würden), folgen Sie der exact Reihenfolge der Felder wie im bereitgestellten Schema. Wenn Sie die Reihenfolge der Felder im bereitgestellten Schema und im Prompt verwechseln, kann dies zu Ausgabefehlern führen.
Einen Prompt mit einem Antwortschema senden
Standardmäßig sind alle Felder optional. Das bedeutet, dass ein Modell eine Antwort für ein Feld generieren kann. Wenn Sie erzwingen möchten, dass das Modell immer eine Antwort für ein Feld generiert, legen Sie das Feld entsprechend fest.
Python
Installieren
pip install --upgrade google-genai
Weitere Informationen finden Sie in der SDK-Referenzdokumentation.
Legen Sie Umgebungsvariablen fest, um das Google 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_ENTERPRISE=True
Go
Go installieren oder aktualisieren
Weitere Informationen finden Sie in der SDK-Referenzdokumentation.
Legen Sie Umgebungsvariablen fest, um das Google 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_ENTERPRISE=True
Node.js
Installieren
npm install @google/genai
Weitere Informationen finden Sie in der SDK-Referenzdokumentation.
Legen Sie Umgebungsvariablen fest, um das Google 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_ENTERPRISE=True
Java
Java installieren oder aktualisieren
Weitere Informationen finden Sie in der SDK-Referenzdokumentation.
Legen Sie Umgebungsvariablen fest, um das Google 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_ENTERPRISE=True
REST
GenerateContent API
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- GENERATE_RESPONSE_METHOD: Der Typ der Antwort, die das Modell generieren soll.
Wählen Sie eine Methode aus, mit der generiert wird, wie die Antwort des Modells zurückgegeben werden soll:
streamGenerateContent: Die Antwort wird während der Generierung gestreamt, um die Wahrnehmung der Latenz für menschliche Zielgruppen zu reduzieren.generateContent: Die Antwort wird zurückgegeben, nachdem sie vollständig generiert wurde.
- LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
- PROJECT_ID: Ihre Projekt-ID.
- MODEL_ID: die Modell-ID des multimodalen Modells, das Sie verwenden möchten.
- ROLE:
Die Rolle in einer Unterhaltung, die mit dem Inhalt verknüpft ist. Die Angabe einer Rolle ist auch bei Anwendungsfällen mit nur einem Schritt erforderlich.
Unter anderem sind folgende Werte zulässig:
USER: Gibt Inhalte an, die von Ihnen gesendet werden
- TEXT: Die Textanleitung, die in den Prompt eingefügt werden soll.
- RESPONSE_MIME_TYPE: Der Formattyp des generierten Kandidatentexts. Eine Liste der unterstützten Werte finden Sie beim Parameter
responseMimeTypein der Gemini API. - RESPONSE_SCHEMA: Schema, dem das Modell beim Generieren von Antworten folgen soll. Es empfiehlt sich, das Feld
descriptionzu verwenden, um den Zweck des Schemas und seine Attribute zu beschreiben. Weitere Informationen finden Sie in der Schemareferenz.
HTTP-Methode und URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD
JSON-Text der Anfrage:
{
"contents": {
"role": "user",
"parts": {
"text": "List a few popular cookie recipes."
}
},
"generation_config": {
"maxOutputTokens": 2048,
"responseMimeType": "application/json",
"responseSchema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"recipe_name": {
"type": "string",
"description": "The name of the cookie recipe."
}
},
"required": ["recipe_name"]
}
}
}
}
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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD"
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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD" | Select-Object -Expand Content
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Interactions API
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Ihre Projekt-ID.
- MODEL_ID: die Modell-ID des multimodalen Modells, das Sie verwenden möchten.
HTTP-Methode und URL:
POST https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/interactions
JSON-Text der Anfrage:
{
"model": "MODEL_ID",
"input": [
{
"type": "user_input",
"content": [
{
"type": "text",
"text": "List a few popular cookie recipes."
}
]
}
],
"generation_config": {
"max_output_tokens": 2048
},
"response_format": {
"type": "text",
"mime_type": "application/json",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"recipe_name": {
"type": "string",
"description": "The name of the cookie recipe."
}
},
"required": ["recipe_name"]
}
}
}
}
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/interactions"
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/interactions" | Select-Object -Expand Content
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Beispielschemas für die JSON-Ausgabe
In den folgenden Abschnitten finden Sie eine Vielzahl von Beispiel-Prompts und Antwortschemas. Nach jedem Codebeispiel ist auch eine Beispielantwort des Modells enthalten.
- Wetter für jeden Tag der Woche in einem Array vorhersagen
- Produkt mit einem klar definierten Enum klassifizieren
Wetter für jeden Tag der Woche vorhersagen
Im folgenden Beispiel wird für jeden Tag der Woche ein forecast-Objekt ausgegeben, das eine Reihe von Attributen wie die erwartete Temperatur und Luftfeuchtigkeit für den Tag enthält. Einige Attribute sind auf „nullable“ gesetzt, damit das Modell einen Nullwert zurückgeben kann, wenn nicht genügend Kontext vorhanden ist, um eine sinnvolle Antwort zu generieren. Diese Strategie hilft, Halluzinationen zu reduzieren.
Python
Installieren
pip install --upgrade google-genai
Weitere Informationen finden Sie in der SDK-Referenzdokumentation.
Legen Sie Umgebungsvariablen fest, um das Google 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_ENTERPRISE=True
Go
Go installieren oder aktualisieren
Weitere Informationen finden Sie in der SDK-Referenzdokumentation.
Legen Sie Umgebungsvariablen fest, um das Google 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_ENTERPRISE=True
Node.js
Installieren
npm install @google/genai
Weitere Informationen finden Sie in der SDK-Referenzdokumentation.
Legen Sie Umgebungsvariablen fest, um das Google 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_ENTERPRISE=True
Java
Java installieren oder aktualisieren
Weitere Informationen finden Sie in der SDK-Referenzdokumentation.
Legen Sie Umgebungsvariablen fest, um das Google 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_ENTERPRISE=True
Produkt klassifizieren
Das folgende Beispiel enthält Enums, bei denen das Modell den Typ und den Zustand eines Objekts aus einer Liste von angegebenen Werten klassifizieren muss.
Python
Installieren
pip install --upgrade google-genai
Weitere Informationen finden Sie in der SDK-Referenzdokumentation.
Legen Sie Umgebungsvariablen fest, um das Google 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_ENTERPRISE=True
Go
Go installieren oder aktualisieren
Weitere Informationen finden Sie in der SDK-Referenzdokumentation.
Legen Sie Umgebungsvariablen fest, um das Google 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_ENTERPRISE=True
Node.js
Installieren
npm install @google/genai
Weitere Informationen finden Sie in der SDK-Referenzdokumentation.
Legen Sie Umgebungsvariablen fest, um das Google 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_ENTERPRISE=True
Java
Java installieren oder aktualisieren
Weitere Informationen finden Sie in der SDK-Referenzdokumentation.
Legen Sie Umgebungsvariablen fest, um das Google 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_ENTERPRISE=True