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. Möglicherweise verwenden Sie die Antwort beispielsweise für andere nachgelagerte Aufgaben, für die ein festgelegtes Datenschema erforderlich ist.

Damit die vom Modell generierte Ausgabe immer einem bestimmten Schema entspricht, können Sie ein Antwortschema definieren, das als Blaupause für Modellantworten dient. Sie können dann mit weniger Nachbearbeitung direkt Daten aus der Ausgabe des Modells 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.

  • Begrenzen, wie ein Modell bei 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 müssen Sie Ihre App registrieren und die Firebase-Konfiguration hinzufügen.

  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 Ausgabe eines Modells, die Feldnamen und den erwarteten Datentyp für jedes Feld anzugeben.

Wenn ein Modell eine 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 Eingabetokenlimit angerechnet.

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

    • 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 obige Liste ist eine Teilmenge des OpenAPI 3.0-Schemaobjekts (siehe Vertex AI-Schemareferenz).

  • 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

Im folgenden Beispiel wird gezeigt, wie eine strukturierte JSON-Ausgabe generiert wird.

Wenn Sie eine strukturierte Ausgabe generieren möchten, müssen Sie bei der Modellinitialisierung die entsprechende responseMimeType (in diesem Beispiel application/json) sowie die responseSchema angeben, die vom Modell verwendet werden 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 für die Verwendung und Generierung strukturierter Ausgabe finden Sie in der Google Cloud-Dokumentation in der Liste der Beispielschemata 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 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