Gemini generiert standardmäßig unstrukturierten Text, für einige Anwendungen ist jedoch strukturierter Text erforderlich. Für diese Anwendungsfälle können Sie Gemini dazu veranlassen, mit JSON zu antworten, einem strukturierten Datenformat, das für die automatisierte Verarbeitung geeignet ist. Sie können das Modell auch so einschränken, dass es mit einer der in einem Enum angegebenen Optionen antwortet.
Hier sind einige Anwendungsfälle, für die eine strukturierte Ausgabe des Modells erforderlich sein kann:
- Erstellen Sie eine Datenbank mit Unternehmen, indem Sie Unternehmensinformationen aus Zeitungsartikeln extrahieren.
- Standardisierte Informationen aus Lebensläufen extrahieren
- Zutaten aus Rezepten extrahieren und für jede Zutat einen Link zu einer Lebensmittelwebsite anzeigen.
Sie können Gemini in Ihrem Prompt auffordern, eine JSON-formatierte Ausgabe zu erstellen. Es kann jedoch nicht garantiert werden, dass das Modell ausschließlich JSON-Daten zurückgibt.
Für eine deterministischere Antwort können Sie ein bestimmtes JSON-Schema in einem responseSchema
-Feld übergeben, damit Gemini immer mit einer erwarteten Struktur antwortet. Weitere Informationen zum Arbeiten mit Schemas finden Sie unter Weitere Informationen zu JSON-Schemas.
In diesem Leitfaden erfahren Sie, wie Sie JSON mit der Methode generateContent
über das SDK Ihrer Wahl oder direkt über die REST API generieren. In den Beispielen ist nur Text zu sehen. Gemini kann jedoch auch JSON-Antworten auf multimodale Anfragen generieren, die Bilder, Videos und Audio enthalten.
Weitere Informationen zu JSON-Schemas
Wenn Sie das Modell so konfigurieren, dass es eine JSON-Antwort zurückgibt, können Sie mit einem Schema
-Objekt die Form der JSON-Daten definieren. Schema
ist eine ausgewählte Teilmenge des OpenAPI 3.0-Schemaobjekts.
Hier ist eine Pseudo-JSON-Darstellung aller Schema
-Felder:
{
"type": enum (Type),
"format": string,
"description": string,
"nullable": boolean,
"enum": [
string
],
"maxItems": string,
"minItems": string,
"properties": {
string: {
object (Schema)
},
...
},
"required": [
string
],
"propertyOrdering": [
string
],
"items": {
object (Schema)
}
}
Der Type
des Schemas muss einer der OpenAPI-Datentypen sein. Für jede Type
ist nur eine Teilmenge der Felder gültig. In der folgenden Liste wird jeder Type
einem gültigen Feld für diesen Typ zugeordnet:
string
–> enum, formatinteger
-> Formatnumber
-> Formatboolean
array
–> minItems, maxItems, itemsobject
-> properties, required, propertyOrdering, nullable
Hier sind einige Beispielschemata mit gültigen Kombinationen von Typ und Feld:
{ "type": "string", "enum": ["a", "b", "c"] }
{ "type": "string", "format": "date-time" }
{ "type": "integer", "format": "int64" }
{ "type": "number", "format": "double" }
{ "type": "boolean" }
{ "type": "array", "minItems": 3, "maxItems": 3, "items": { "type": ... } }
{ "type": "object",
"properties": {
"a": { "type": ... },
"b": { "type": ... },
"c": { "type": ... }
},
"nullable": true,
"required": ["c"],
"propertyOrdering": ["c", "b", "a"]
}
Eine vollständige Dokumentation der Schemafelder, wie sie in der Gemini API verwendet werden, finden Sie in der Schemareferenz.
Property-Anordnung
Bei der Arbeit mit JSON-Schemas in der Gemini API ist die Reihenfolge der Properties wichtig. Standardmäßig werden die Properties in der API alphabetisch sortiert und die Reihenfolge, in der sie definiert sind, wird nicht beibehalten. Die Google Gen AI SDKs können diese Reihenfolge jedoch beibehalten. Wenn Sie dem Modell Beispiele mit einem konfigurierten Schema zur Verfügung stellen und die Property-Sortierung der Beispiele nicht mit der Property-Sortierung des Schemas übereinstimmt, kann die Ausgabe unzusammenhängend oder unerwartet sein.
Für eine einheitliche, vorhersehbare Sortierung von Unterkünften können Sie das optionale Feld propertyOrdering[]
verwenden.
"propertyOrdering": ["recipe_name", "ingredients"]
propertyOrdering[]
ist kein Standardfeld in der OpenAPI-Spezifikation. Es ist ein Array von Strings, mit dem die Reihenfolge der Eigenschaften in der Antwort bestimmt wird. Wenn Sie die Reihenfolge der Properties angeben und dann Beispiele mit Properties in derselben Reihenfolge angeben, können Sie die Qualität der Ergebnisse möglicherweise verbessern.