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


Die Gemini API gibt standardmäßig Antworten 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.
    Sie können beispielsweise festlegen, dass das Modell Text mit einer bestimmten Gruppe von Labels (z. B. einer bestimmten Gruppe von Enumerationen wie positive und negative) annotiert, anstatt mit Labels, die vom Modell generiert werden (die eine gewisse Variabilität haben können, z. B. good, positive, negative oder bad).

In dieser Anleitung wird beschrieben, wie Sie eine JSON-Ausgabe generieren, indem Sie einen responseSchema in einen Aufruf von generateContent einfügen. 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 für die Generierung strukturierter Ausgabe finden Sie in der Google Cloud-Dokumentation in der Liste der Beispielschemata 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. Richten Sie ein neues oder vorhandenes Firebase-Projekt ein. Verwenden Sie dabei den Blaze-Preisplan und aktivieren Sie die 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 sowie 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 Ausgabe eines Modells, 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.

Hinweise zu Antwortschemata

Beachten Sie beim Erstellen Ihres Antwortschemas Folgendes:

  • Die Größe des Antwortschemas wird auf das Limit für Eingabetokens angerechnet.

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

    • application/json: JSON-Ausgabe gemäß dem im Antwortschema definierten Format (nützlich für Anforderungen an die strukturierte Ausgabe)

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

  • Die Funktion „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 werden alle Felder standardmäßig als erforderlich betrachtet, sofern Sie sie nicht in einem optionalProperties-Array als optional angeben. 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

Im folgenden Beispiel wird gezeigt, 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.

Hier erfahren Sie, wie Sie ein Gemini-Modell und optional einen Standort für Ihren Anwendungsfall und Ihre App auswählen.

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 Nur-Text-Enum-Wert, der vom Modell aus einer Liste von Werten ausgewählt wird, die im angegebenen Antwortschema definiert sind.

Um diese strukturierte Klassifizierungsaufgabe auszuführen, müssen Sie bei der Modellinitialisierung die entsprechende responseMimeType (in diesem Beispiel text/x.enum) sowie die responseSchema angeben, die vom Modell verwendet werden soll.

Hier erfahren Sie, wie Sie ein Gemini-Modell und optional einen Standort für Ihren Anwendungsfall und Ihre App auswählen.

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. Dazu gehören die Parameter „max. 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 die 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