Strukturierte Ausgabe (z. B. JSON) mit der Gemini API generieren


Gemini API gibt Antworten standardmäßig als unstrukturierten Text zurück. Für einige Anwendungsfälle ist jedoch strukturierter Text wie JSON erforderlich. Beispielsweise können Sie die Antwort für andere nachgelagerte Aufgaben verwenden, die ein etabliertes Datenschema erfordern.

Damit die generierte Ausgabe des Modells immer einem bestimmten Schema entspricht, können Sie ein Antwortschema definieren, das wie ein Blueprint für Modellantworten funktioniert. Sie können dann Daten mit weniger Nachbearbeitung direkt aus der Modellausgabe extrahieren.

Hier sind einige Beispiele:

  • Achten Sie darauf, dass die Antwort eines Modells gültiges JSON generiert und dem angegebenen Schema entspricht.
    Das Modell kann beispielsweise strukturierte Einträge für Rezepte generieren, die immer den Namen des Rezepts, die Zutatenliste und die Schritte enthalten. Anschließend können Sie diese Informationen leichter analysieren und in der Benutzeroberfläche Ihrer App anzeigen.

  • Legen Sie fest, wie ein Modell während Klassifizierungsaufgaben reagieren kann.
    Beispielsweise kann das Modell Text mit einem bestimmten Satz von Labels (z. B. einem bestimmten Satz von Enums wie positive und negative) annotieren, anstatt mit Labels, die das Modell erzeugt (die ein gewisses Maß an Variabilität wie good, positive, negative oder bad haben können).

In diesem Leitfaden erfahren Sie, wie Sie eine JSON-Ausgabe generieren, indem Sie in einem Aufruf von generateContent einen responseSchema angeben. Der Schwerpunkt liegt auf der Eingabe von reinen Texten. Gemini kann aber auch strukturierte Antworten auf multimodale Anfragen generieren, die Bilder, Videos und Audio als Eingabe enthalten.

Unten auf dieser Seite finden Sie weitere Beispiele, z. B. wie Sie Enum-Werte als Ausgabe generieren. Weitere Beispiele zum Generieren einer strukturierten Ausgabe finden Sie in der Google Cloud-Dokumentation unter Beispielschemas und Modellantworten.

Hinweis

Lesen Sie den Einstiegsleitfaden für die Vertex AI in Firebase SDKs, falls Sie dies noch nicht getan haben. Achten Sie darauf, dass Sie Folgendes getan haben:

  1. Ein neues oder vorhandenes Firebase-Projekt einrichten, einschließlich des Blaze-Preismodells und der Aktivierung der erforderlichen APIs.

  2. Verbinden Sie Ihre App mit Firebase. Dazu gehört auch das Registrieren der App und das Hinzufügen der Firebase-Konfiguration zur App.

  3. Fügen Sie das SDK hinzu und initialisieren Sie den Vertex AI-Dienst und das generative Modell in Ihrer App.

Nachdem Sie Ihre App mit Firebase verbunden, das SDK hinzugefügt und den Vertex AI-Dienst und das generative Modell initialisiert haben, können Sie Gemini API aufrufen.

Schritt 1: Antwortschema definieren

Definieren Sie ein Antwortschema, um die Struktur der Modellausgabe, die Feldnamen und den erwarteten Datentyp für jedes Feld anzugeben.

Wenn ein Modell seine Antwort generiert, verwendet es den Feldnamen und den Kontext aus Ihrem Prompt. Damit Ihre Absicht klar ist, empfehlen wir eine klare Struktur, eindeutige Feldnamen und bei Bedarf auch Beschreibungen.

Überlegungen zu Antwortschemas

Beachten Sie beim Erstellen Ihres Antwortschemas Folgendes:

  • Die Größe des Antwortschemas wird auf das Eingabetokenlimit angerechnet.

  • Die Antwortschema-Funktion unterstützt die folgenden MIME-Typen für Antworten:

    • application/json: Ausgabe von JSON gemäß der Definition im Antwortschema (nützlich für die Anforderungen an die strukturierte Ausgabe)

    • text/x.enum: Gibt einen im Antwortschema definierten Enum-Wert aus (nützlich für Klassifizierungsaufgaben)

  • Die Funktion für das Antwortschema unterstützt die folgenden Schemafelder:

    enum
    items
    maxItems
    nullable
    properties
    required

    Wenn Sie ein nicht unterstütztes Feld verwenden, kann das Modell Ihre Anfrage zwar verarbeiten, das Feld wird jedoch ignoriert. Die Liste oben ist eine Teilmenge des OpenAPI 3.0-Schemaobjekts (siehe Schemareferenz für Vertex AI).

  • Bei Vertex AI in Firebase-SDKs gelten standardmäßig alle Felder als erforderlich, es sei denn, Sie geben sie in einem optionalProperties-Array als optional an. Für diese optionalen Felder kann das Modell die Felder ausfüllen oder überspringen.

    Dies ist das Gegenteil des Standardverhaltens für die Vertex AI Gemini API.

Schritt 2: Prompt mit einem Antwortschema senden, um JSON zu generieren

Das folgende Beispiel zeigt, wie eine strukturierte JSON-Ausgabe generiert wird.

Zum Generieren einer strukturierten Ausgabe müssen Sie während der Modellinitialisierung die entsprechende responseMimeType (in diesem Beispiel application/json) sowie die responseSchema angeben, die das Modell verwenden soll.

Die Verwendung von responseSchema wird von Gemini 1.5 Pro und Gemini 1.5 Flash unterstützt.

Informationen zum Auswählen eines Gemini-Modells und optional eines für Ihren Anwendungsfall und Ihre App geeigneten Standorts

Weitere Beispiele

Weitere Beispiele zum Verwenden und Generieren einer strukturierten Ausgabe finden Sie in der Google Cloud-Dokumentation unter Beispielschemas und Modellantworten.

Enum-Werte als Ausgabe generieren

Das folgende Beispiel zeigt, wie Sie ein Antwortschema für eine Klassifizierungsaufgabe verwenden. Das Modell soll anhand der Beschreibung das Genre eines Films ermitteln. Die Ausgabe ist ein Aufzählungswert im Nur-Text-Format, den das Modell aus einer Liste von Werten auswählt, die im bereitgestellten Antwortschema definiert sind.

Zum Ausführen dieser strukturierten Klassifizierungsaufgabe müssen Sie während der Modellinitialisierung die entsprechende responseMimeType (in diesem Beispiel text/x.enum) sowie die responseSchema angeben, die das Modell verwenden soll.

Informationen zum Auswählen eines Gemini-Modells und optional eines für Ihren Anwendungsfall und Ihre App geeigneten Standorts

Weitere Optionen zur Steuerung der Inhaltsgenerierung

  • Weitere Informationen zum Design von Prompts, damit Sie das Modell beeinflussen können, um eine Ausgabe zu generieren, die Ihren Anforderungen entspricht.
  • Konfigurieren Sie Modellparameter, um zu steuern, wie das Modell eine Antwort generiert. Diese Parameter umfassen maximale Ausgabetokens, Temperatur, topK und topP.
  • Mit den Sicherheitseinstellungen können Sie die Wahrscheinlichkeit anpassen, dass Sie Antworten erhalten, die als schädlich eingestuft werden könnten, einschließlich Hassrede und sexuell expliziter Inhalte.
  • Legen Sie Systemanweisungen fest, um das Verhalten des Modells zu steuern. Diese Funktion ist wie eine „Präambel“, die Sie hinzufügen, bevor das Modell weiteren Anweisungen des Endnutzers ausgesetzt wird.


Feedback zu Vertex AI in Firebase geben