Inhalte mit der Gemini API in Vertex AI generieren

Mit generateContent oder streamGenerateContent Inhalte mit Gemini generieren

Die Gemini-Modellreihe umfasst Modelle, die mit multimodalen Prompt-Anfragen arbeiten. Der Begriff „multimodal“ bedeutet, dass Sie in einem Prompt mehr als eine Modalität oder Art von Eingabe verwenden können. Modelle, die nicht multimodal sind, akzeptieren nur Prompts mit Text. Modalitäten können Text, Audio, Video und mehr umfassen.

Google Cloud -Konto erstellen

Wenn Sie die Gemini API in Vertex AI verwenden möchten, erstellen Sie ein Google Cloud Konto.

Nachdem Sie Ihr Konto erstellt haben, können Sie in diesem Dokument den Anfragetext, die Modellparameter, den Antworttext und einige Beispiele anfragen des Gemini-Modells überprüfen.

Wenn Sie bereit sind, lesen Sie in der Kurzanleitung zur Gemini API in Vertex AI nach, wie Sie eine Anfrage an die Gemini API in Vertex AI mit einem SDK für Programmiersprachen oder der REST API senden.

Unterstützte Modelle

Alle Gemini-Modelle unterstützen die Erstellung von Inhalten.

Parameterliste

Einzelheiten zur Implementierung finden Sie in den Beispielen.

Anfragetext

{
  "cachedContent": string,
  "contents": [
    {
      "role": string,
      "parts": [
        {
          // Union field data can be only one of the following:
          "text": string,
          "inlineData": {
            "mimeType": string,
            "data": string
          },
          "fileData": {
            "mimeType": string,
            "fileUri": string
          },
          // End of list of possible types for union field data.

          "videoMetadata": {
            "startOffset": {
              "seconds": integer,
              "nanos": integer
            },
            "endOffset": {
              "seconds": integer,
              "nanos": integer
            },
            "fps": double
          }
        }
      ]
    }
  ],
  "systemInstruction": {
    "role": string,
    "parts": [
      {
        "text": string
      }
    ]
  },
  "tools": [
    {
      "functionDeclarations": [
        {
          "name": string,
          "description": string,
          "parameters": {
            object (OpenAPI Object Schema)
          }
        }
      ]
    }
  ],
  "safetySettings": [
    {
      "category": enum (HarmCategory),
      "threshold": enum (HarmBlockThreshold)
    }
  ],
  "generationConfig": {
    "temperature": number,
    "topP": number,
    "topK": number,
    "candidateCount": integer,
    "maxOutputTokens": integer,
    "presencePenalty": float,
    "frequencyPenalty": float,
    "stopSequences": [
      string
    ],
    "responseMimeType": string,
    "responseSchema": schema,
    "seed": integer,
    "responseLogprobs": boolean,
    "logprobs": integer,
    "audioTimestamp": boolean
  },
  "labels": {
    string: string
  }
}

Der Anfragetext enthält Daten mit den folgenden Parametern:

Parameter

cachedContent

Optional: string

Der Name des im Cache gespeicherten Inhalts, der als Kontext für die Vorhersage verwendet wird. Format: projects/{project}/locations/{location}/cachedContents/{cachedContent}

contents

Erforderlich: Content

Der Inhalt der aktuellen Unterhaltung mit dem Modell.

Bei Einzelabfragen ist dies eine einzelne Instanz. Bei Mehrfachabfragen ist dies ein wiederkehrendes Feld, das den Unterhaltungsverlauf und die letzte Anfrage enthält.

systemInstruction

Optional: Content

Verfügbar für gemini-2.0-flash und gemini-2.0-flash-lite.

Anleitung für das Modell, um es zu einer besseren Leistung zu steuern. Beispiel: „Antworten Sie so kurz wie möglich“ oder „Verwenden Sie in Ihrer Antwort keine technischen Begriffe“.

Die text-Strings werden auf das Tokenlimit angerechnet.

Das Feld role von systemInstruction wird ignoriert und wirkt sich nicht auf die Leistung des Modells aus.

tools

Optional. Ein Code, der es dem System ermöglicht, mit externen Systemen zu interagieren, um eine Aktion oder eine Reihe von Aktionen außerhalb des Wissens und Umfangs des Modells auszuführen. Weitere Informationen

toolConfig

Optional. Weitere Informationen

safetySettings

Optional: SafetySetting

Einstellungen pro Anfrage zum Blockieren unsicherer Inhalte.

Erzwungen am GenerateContentResponse.candidates

generationConfig

Optional: GenerationConfig

Einstellungen für die Generierungskonfiguration.

labels

Optional: string

Metadaten, die Sie dem API-Aufruf im Format von Schlüssel/Wert-Paaren hinzufügen können.

contents

Der strukturierte Basisdatentyp, der mehrteilige Inhalte einer Nachricht enthält.

Diese Klasse besteht aus zwei Hauptattributen: role und parts. Das Attribut role bezeichnet die Person, die den Inhalt erzeugt, während das Attribut parts mehrere Elemente enthält, die jeweils ein Datensegment innerhalb einer Nachricht darstellen.

Parameter

role

string

Die Identität der Entität, die die Nachricht erstellt. Folgende Werte werden unterstützt:

  • user: Gibt an, dass die Nachricht von einer realen Person gesendet wurde, in der Regel eine von Nutzern erstellte Nachricht.
  • model: Gibt an, dass die Nachricht vom Modell generiert wird.

Der Wert model wird verwendet, um Nachrichten aus dem Modell in die Unterhaltung einzufügen, die Unterhaltungen über mehrere Themen führen.

parts

Part

Eine Liste geordneter Teile einer einzelnen Nachricht. Verschiedene Teile haben möglicherweise unterschiedliche IANA-MIME-Typen.

Informationen zu den Limits für die Eingaben, z. B. die maximale Anzahl von Tokens oder die Anzahl der Bilder, finden Sie in den Modellspezifikationen auf der Seite Google-Modelle.

Informationen zum Berechnen der Anzahl der Tokens in Ihrer Anfrage finden Sie unter Tokenanzahl abrufen.

parts

Ein Datentyp mit Medien, die Teil einer mehrteiligen Content-Nachricht sind.

Parameter

text

Optional: string

Ein Text-Prompt oder ein Code-Snippet.

inlineData

Optional: Blob

Inline-Daten in Rohbyte.

Für gemini-2.0-flash-lite und gemini-2.0-flash können Sie mit inlineData bis zu 3.000 Bilder angeben.

fileData

Optional: fileData

In einer Datei gespeicherte Daten.

functionCall

Optional: FunctionCall.

Es enthält einen String, der das Feld FunctionDeclaration.name darstellt, und ein strukturiertes JSON-Objekt mit allen Parametern für den vom Modell vorhergesagten Funktionsaufruf.

Weitere Informationen

functionResponse

Optional: FunctionResponse.

Die Ergebnisausgabe eines FunctionCall, das einen String enthält, der das Feld FunctionDeclaration.name darstellt, und ein strukturiertes JSON-Objekt, das die Ausgabe des Funktionsaufrufs enthält. Sie wird als Kontext für das Modell verwendet.

Weitere Informationen

videoMetadata

Optional: VideoMetadata

Bei Videoeingabe der Start- und Endversatz des Videos im Duration-Format und die Framerate des Videos . Wenn Sie beispielsweise einen 10-Sekunden-Clip ab 1:00 Uhr mit einer Bildrate von 10 Bildern pro Sekunde angeben möchten, legen Sie Folgendes fest:

  • "startOffset": { "seconds": 60 }
  • "endOffset": { "seconds": 70 }
  • "fps": 10.0

Die Metadaten sollten nur angegeben werden, wenn die Videodaten in inlineData oder fileData präsentiert werden.

blob

Inhalts-Blob Wenn möglich, senden Sie dies als Text und nicht als Rohbyte.

Parameter

mimeType

string

Der Medientyp der Datei, die in den Feldern dataoder fileUri angegeben wurde. Unter anderem sind folgende Werte zulässig:

Zum Maximieren von MIME-Typen klicken

  • application/pdf
  • audio/mpeg
  • audio/mp3
  • audio/wav
  • image/png
  • image/jpeg
  • image/webp
  • text/plain
  • video/mov
  • video/mpeg
  • video/mp4
  • video/mpg
  • video/avi
  • video/wmv
  • video/mpegps
  • video/flv

Bei gemini-2.0-flash-lite und gemini-2.0-flash beträgt die maximale Länge einer Audiodatei 8, 4 Stunden und die maximale Länge einer Videodatei (ohne Audio) 1 Stunde. Weitere Informationen finden Sie unter Audioanforderungen und Videoanforderungen für Gemini.

Textdateien müssen UTF-8-codiert sein. Der Inhalt der Textdatei wird auf das Tokenlimit angerechnet.

Bei der Bildauflösung gibt es keine Begrenzung.

data

bytes

Die base64-Codierung des Bildes oder Videos, das inline in den Prompt aufgenommen werden soll. Wenn Sie Medien inline einschließen, müssen Sie auch den Medientyp (mimeType) der Daten angeben.

Größenbeschränkung: 20 MB.

FileData

URI- oder Web-URL-Daten.

Parameter

mimeType

string

IANA-MIME-Typ der Daten.

fileUri

string

Der URI oder die URL der Datei, die in den Prompt aufgenommen werden soll. Zulässige Werte:

  • Cloud Storage-Bucket-URI:Das Objekt muss entweder öffentlich lesbar sein oder sich im selben Google Cloud Projekt befinden, von dem die Anfrage gesendet wird. Für gemini-2.0-flash und gemini-2.0-flash-lite beträgt die Größenbeschränkung 2 GB.
  • HTTP-URL: Die Datei-URL muss öffentlich lesbar sein. Sie können eine Videodatei, eine Audiodatei und bis zu 10 Bilddateien pro Anfrage angeben. Audio- und Videodateien sowie Dokumente dürfen nicht größer als 15 MB sein.
  • YouTube-Video-URL:Das YouTube-Video muss entweder dem Konto gehören, mit dem Sie sich in der Google Cloud Console angemeldet haben, oder öffentlich sein. Pro Anfrage wird nur eine YouTube-Video-URL unterstützt.

Wenn Sie einen fileURI angeben, müssen Sie auch den Medientyp (mimeType) der Datei angeben. Wenn VPC Service Controls aktiviert ist, wird die Angabe einer Media-Datei-URL für fileURI nicht unterstützt.

functionCall

Ein vorhergesagter functionCall, der vom Modell zurückgegeben wird und einen String enthält, der functionDeclaration.name und ein strukturiertes JSON-Objekt enthält, das die Parameter und ihre Werte enthält.

Parameter

name

string

Der Name der aufzurufenden Funktion.

args

Struct

Die Funktionsparameter und -werte im JSON-Objektformat.

Weitere Informationen zu Parametern finden Sie unter Funktionsaufrufe.

functionResponse

Die resultierende Ausgabe von einem FunctionCall, das einen String mit der FunctionDeclaration.name enthält. Enthält auch ein strukturiertes JSON-Objekt mit der Ausgabe der Funktion, das als Kontext für das Modell verwendet wird. Dieser sollte das Ergebnis einer FunctionCall enthalten, die auf der Grundlage der Modellvorhersage erstellt wurde.

Parameter

name

string

Der Name der aufzurufenden Funktion.

response

Struct

Die Funktionsantwort im JSON-Objektformat.

videoMetadata

Metadaten, die den eingegebenen Videocontent beschreiben.

Parameter

startOffset

Optional: google.protobuf.Duration

Startversatz des Videos.

endOffset

Optional: google.protobuf.Duration

Endversatz des Videos.

fps

Optional: double

Die Framerate des Videos, das an das Modell gesendet wurde. Wenn keine Angabe gemacht wird, ist der Standardwert 1.0. Der akzeptierte Mindestwert liegt bei 0.0, aber nicht einschließlich 0.0. Der Höchstwert beträgt 24.0.

safetySetting

Sicherheitseinstellungen.

Parameter

category

Optional: HarmCategory

Die Sicherheitskategorie, für die ein Schwellenwert konfiguriert wird. Unter anderem sind folgende Werte zulässig:

Zum Maximieren von Sicherheitskategorien klicken

  • HARM_CATEGORY_SEXUALLY_EXPLICIT
  • HARM_CATEGORY_HATE_SPEECH
  • HARM_CATEGORY_HARASSMENT
  • HARM_CATEGORY_DANGEROUS_CONTENT

threshold

Optional: HarmBlockThreshold

Der Schwellenwert für das Blockieren von Antworten, die basierend auf der Wahrscheinlichkeit zur angegebenen Sicherheitskategorie gehören könnten.

  • OFF
  • BLOCK_NONE
  • BLOCK_LOW_AND_ABOVE
  • BLOCK_MEDIUM_AND_ABOVE
  • BLOCK_ONLY_HIGH

method

Optional: HarmBlockMethod

Geben Sie an, ob der Schwellenwert für den Wahrscheinlichkeits- oder den Schweregradwert verwendet wird. Wenn nicht angegeben, wird der Schwellenwert für den Wahrscheinlichkeitswert verwendet.

harmCategory

Schadenskategorien, die Inhalte blockieren

Parameter

HARM_CATEGORY_UNSPECIFIED

Die Schadenskategorie ist nicht angegeben.

HARM_CATEGORY_HATE_SPEECH

Die Schadenskategorie ist Hassrede.

HARM_CATEGORY_DANGEROUS_CONTENT

Die Schadenskategorie ist gefährlicher Inhalt.

HARM_CATEGORY_HARASSMENT

Die Schadenskategorie ist Belästigung.

HARM_CATEGORY_SEXUALLY_EXPLICIT

Die Schadenskategorie umfasst sexuell explizite Inhalte.

harmBlockThreshold

Wahrscheinlichkeitsschwellenwerte, die zum Blockieren einer Antwort verwendet werden.

Parameter

HARM_BLOCK_THRESHOLD_UNSPECIFIED

Unbekannter Schwellenwert für Schadenssperre.

BLOCK_LOW_AND_ABOVE

Niedrigeren Schwellenwert und höher blockieren (d. h. mehr blockieren).

BLOCK_MEDIUM_AND_ABOVE

Mittleren Grenzwert und höher blockieren.

BLOCK_ONLY_HIGH

Nur einen hohen Schwellenwert blockieren (d. h. weniger blockieren).

BLOCK_NONE

Keine blockieren.

OFF

Sicherheit wird deaktiviert, wenn alle Kategorien deaktiviert sind

harmBlockMethod

Ein Wahrscheinlichkeitsschwellenwert, der eine Antwort basierend auf einer Kombination aus Wahrscheinlichkeit und Schweregrad blockiert.

Parameter

HARM_BLOCK_METHOD_UNSPECIFIED

Die Methode der Schadenssperre ist nicht angegeben.

SEVERITY

Die Methode der Schadenssperre verwendet Punktzahlen sowohl für die Wahrscheinlichkeit als auch den Schweregrad.

PROBABILITY

Die Methode der Schadenssperre verwendet den Wahrscheinlichkeitswert.

generationConfig

Konfigurationseinstellungen, die beim Generieren des Prompts verwendet werden.

Parameter

temperature

Optional: float

Die Temperatur wird für die Probenahme während der Antwortgenerierung verwendet. Dies passiert, wenn topP und topK angewendet werden. Die Temperatur bestimmt den Grad der Zufälligkeit bei der Tokenauswahl. Niedrigere Temperaturen eignen sich gut für Prompts, die eine weniger offene oder kreative Antwort erfordern, während höhere Temperaturen zu vielfältigeren oder kreativeren Ergebnissen führen können. Eine Temperatur von 0 bedeutet, dass immer die Tokens mit der höchsten Wahrscheinlichkeit ausgewählt werden. In diesem Fall sind die Antworten auf einen bestimmten Prompt größtenteils deterministisch, aber eine gewisse Variation ist dennoch möglich.

Wenn das Modell eine zu allgemeine oder zu kurze Antwort zurückgibt, oder wenn das Modell eine Fallback-Antwort ausgibt, versuchen Sie, die Temperatur zu erhöhen.

  • Bereich für gemini-2.0-flash-lite: 0.0 - 2.0 (Standardeinstellung: 1.0)
  • Bereich für gemini-2.0-flash: 0.0 - 2.0 (Standardeinstellung: 1.0)

Weitere Informationen finden Sie unter Parameter für die Inhaltsgenerierung.

topP

Optional: float

Falls angegeben, wird Nucleus-Sampling verwendet.

Der Wert Top-P ändert, wie das Modell Tokens für die Ausgabe auswählt. Die Tokens werden von den wahrscheinlichsten (siehe „Top-K“) bis zu den unwahrscheinlichsten Werten ausgewählt, bis die Summe ihrer Wahrscheinlichkeiten dem „Top-P“-Wert entspricht. Beispiel: Wenn die Tokens A, B und C eine Wahrscheinlichkeit von 0,3, 0,2 und 0,1 haben und der „Top-P“-Wert 0.5 ist, wählt das Modell anhand der Temperatur entweder A oder B als das nächste Token und schließt C als Kandidaten aus.

Geben Sie einen niedrigeren Wert für weniger zufällige Antworten und einen höheren Wert für zufälligere Antworten an.

  • Bereich: 0.0 - 1.0
  • Standardeinstellung für gemini-2.0-flash-lite: 0.95
  • Standardeinstellung für gemini-2.0-flash: 0.95

candidateCount

Optional: int

Die Anzahl der zurückzugebenden Antwortvarianten. Für jede Anfrage werden Ihnen die Ausgabetokens aller Kandidaten in Rechnung gestellt, aber nur einmal für die Eingabetokens.

Die Angabe mehrerer Kandidaten ist eine Funktion in der Vorabversion, die mit generateContent funktioniert (streamGenerateContent wird nicht unterstützt). Die folgenden Modelle werden unterstützt:

  • gemini-2.0-flash-lite: 18, Standard: 1
  • gemini-2.0-flash: 18, Standard: 1

maxOutputTokens

Optional: int

Maximale Anzahl an Tokens, die in der Antwort generiert werden können. Ein Token besteht aus etwa vier Zeichen. 100 Tokens entsprechen etwa 60–80 Wörtern.

Geben Sie kürzere Werte für kürzere Antworten und höhere Werte für längere Antworten an.

Weitere Informationen finden Sie unter Parameter für die Inhaltsgenerierung.

stopSequences

Optional: List[string]

Gibt eine Liste an Strings an, die das Modell anweist, Text nicht mehr zu generieren, wenn einer der Strings in der Antwort gefunden wird. Kommt ein String mehrmals in der Antwort vor, so wird die Antwort an der Stelle abgeschnitten, an der er erfasst wurde. Bei Strings wird zwischen Groß- und Kleinschreibung unterschieden.

Wenn zum Beispiel folgende Antwort zurückgegeben wird und stopSequences nicht angegeben ist:

public static string reverse(string myString)

Dann lautet zurückgegebene Antwort mit stopSequences auf ["Str", "reverse"] gesetzt:

public static string

Die Liste darf maximal fünf Elemente enthalten.

Weitere Informationen finden Sie unter Parameter für die Inhaltsgenerierung.

presencePenalty

Optional: float

Positive Strafen.

Positive Werte nehmen Abzüge bei Tokens vor, die wiederholt im generierten Text angezeigt werden, wodurch die Wahrscheinlichkeit wiederholter Inhalte verringert wird.

Der Maximalwert für presencePenalty geht bis, aber nicht einschließlich 2.0. Der Mindestwert ist -2.0.

frequencyPenalty

Optional: float

Positive Werte nehmen Abzüge bei Tokens vor, die wiederholt im generierten Text angezeigt werden, wodurch die Wahrscheinlichkeit wiederholter Inhalte verringert wird.

Dieser Maximalwert für frequencyPenalty geht bis, aber nicht einschließlich 2.0. Der Mindestwert ist -2.0.

responseMimeType

Optional: string (enum)

MIME-Typ der Ausgabeantwort des generierten Kandidatentextes.

Die folgenden MIME-Typen werden unterstützt:

  • application/json: JSON-Antwort in den Kandidaten.
  • text/plain (Standard): Nur-Text-Ausgabe.
  • text/x.enum: Geben Sie für Klassifizierungsaufgaben einen Enum-Wert aus, wie im Antwortschema definiert.

Geben Sie den entsprechenden Antworttyp an, um unerwünschtes Verhalten zu vermeiden. Wenn Sie beispielsweise eine Antwort im JSON-Format benötigen, geben Sie application/json und nicht text/plain an.

text/plain wird nicht für die Verwendung mit responseSchema unterstützt.

responseSchema

Optional: Schema

Das Schema, dem der generierte Kandidatentext entsprechen muss. Weitere Informationen finden Sie unter Ausgabe steuern.

Wenn Sie diesen Parameter verwenden möchten, müssen Sie für den Parameter responseMimeType einen unterstützten MIME-Typ angeben, der nicht text/plain ist.

seed

Optional: int

Wenn die Seed-Daten auf einen bestimmten Wert festgelegt sind, versucht das Modell, für wiederholte Anfragen dieselbe Antwort bereitzustellen. Die deterministische Ausgabe wird nicht zwangsläufig erfüllt. Wenn Sie die Modell- oder Parametereinstellungen ändern, z. B. die Temperatur, kann dies außerdem zu Abweichungen in der Antwort führen, selbst wenn Sie denselben Seed-Wert verwenden. Standardmäßig wird ein zufälliger Startwert verwendet.

responseLogprobs

Optional: boolean

Wenn „true“, werden die Logwahrscheinlichkeiten der Tokens zurückgegeben, die vom Modell in jedem Schritt ausgewählt wurden. Standardmäßig ist dieser Parameter auf false eingestellt.

logprobs

Optional: int

Gibt die Log-Wahrscheinlichkeiten der Top-Kandidaten-Tokens bei jedem Generierungsschritt zurück. Das vom Modell ausgewählte Token ist möglicherweise nicht mit dem Token des Top-Kandidaten in jedem Schritt identisch. Geben Sie die Anzahl der Kandidaten an, die zurückgegeben werden sollen, indem Sie eine Ganzzahl im Bereich von 1 bis 20 angeben.

Sie müssen responseLogprobs aktivieren, um diesen Parameter verwenden zu können.

audioTimestamp

Optional: boolean

Verfügbar für die folgenden Modelle:

  • Gemini 2.0 Flash-Lite
  • Gemini 2.0 Flash

Ermöglicht das Erkennen von Zeitstempeln für reine Audiodateien.

Dies ist eine Funktion in der Vorabversion.

Antworttext

{
  "candidates": [
    {
      "content": {
        "parts": [
          {
            "text": string
          }
        ]
      },
      "finishReason": enum (FinishReason),
      "safetyRatings": [
        {
          "category": enum (HarmCategory),
          "probability": enum (HarmProbability),
          "blocked": boolean
        }
      ],
      "citationMetadata": {
        "citations": [
          {
            "startIndex": integer,
            "endIndex": integer,
            "uri": string,
            "title": string,
            "license": string,
            "publicationDate": {
              "year": integer,
              "month": integer,
              "day": integer
            }
          }
        ]
      },
      "avgLogprobs": double,
      "logprobsResult": {
        "topCandidates": [
          {
            "candidates": [
              {
                "token": string,
                "logProbability": float
              }
            ]
          }
        ],
        "chosenCandidates": [
          {
            "token": string,
            "logProbability": float
          }
        ]
      }
    }
  ],
  "usageMetadata": {
    "promptTokenCount": integer,
    "candidatesTokenCount": integer,
    "totalTokenCount": integer
  },
  "modelVersion": string
}
Antwortelement Beschreibung
modelVersion Das für die Generierung verwendete Modell und die Version. Beispiel: gemini-2.0-flash-lite-001.
text Der generierte Text.
finishReason Der Grund, warum das Modell keine Tokens mehr generiert. Wenn leer, wird das Modell weiterhin die Tokens generieren. Da die Antwort die Eingabeaufforderung für Kontext verwendet, kann das Verhalten des Modells nicht mehr geändert werden, um Tokens zu generieren.
  • FINISH_REASON_STOP: Natürlicher Stopppunkt des Modells oder angegebene Stoppsequenz.
  • FINISH_REASON_MAX_TOKENS: Die in der Anfrage angegebene maximale Anzahl von Tokens wurde erreicht.
  • FINISH_REASON_SAFETY: Die Tokengenerierung wurde gestoppt, da die Antwort aus Sicherheitsgründen gemeldet wurde. Candidate.content ist leer, wenn Inhaltsfilter die Ausgabe blockieren.
  • FINISH_REASON_RECITATION: Die Tokengenerierung wurde gestoppt, da die Antwort wegen nicht autorisierter Zitate gekennzeichnet wurde.
  • FINISH_REASON_BLOCKLIST: Die Tokengenerierung wurde gestoppt, da die Antwort gesperrte Begriffe enthält.
  • FINISH_REASON_PROHIBITED_CONTENT: Die Tokengenerierung wurde gestoppt, da die Antwort wegen verbotener Inhalte wie Darstellungen des sexuellen Missbrauchs von Kindern gemeldet wurde.
  • FINISH_REASON_SPII: Die Tokengenerierung wurde gestoppt, da die Antwort wegen vertraulicher personenidentifizierbarer Informationen gekennzeichnet wurde.
  • FINISH_REASON_MALFORMED_FUNCTION_CALL: Kandidaten wurden aufgrund eines fehlerhaften und nicht parsierbaren Funktionsaufrufs blockiert.
  • FINISH_REASON_OTHER: Alle anderen Gründe, die das Token gestoppt haben
  • FINISH_REASON_UNSPECIFIED: Der Grund für Fertig ist nicht angegeben.
category Die Sicherheitskategorie, für die ein Schwellenwert konfiguriert wird. Unter anderem sind folgende Werte zulässig:

Zum Maximieren von Sicherheitskategorien klicken

  • HARM_CATEGORY_SEXUALLY_EXPLICIT
  • HARM_CATEGORY_HATE_SPEECH
  • HARM_CATEGORY_HARASSMENT
  • HARM_CATEGORY_DANGEROUS_CONTENT
probability Die Wahrscheinlichkeitsstufen für Schäden in den Inhalten.
  • HARM_PROBABILITY_UNSPECIFIED
  • NEGLIGIBLE
  • LOW
  • MEDIUM
  • HIGH
blocked Ein boolesches Flag, das mit einem Sicherheitsattribut verknüpft ist, das angibt, ob die Ein- oder Ausgabe des Modells blockiert wurde.
startIndex Eine Ganzzahl, die angibt, wo eine Zitation im content beginnt. Der Wert für startIndex wird in Byte angegeben und aus der in UTF-8 codierten Antwort berechnet.
endIndex Eine Ganzzahl, die angibt, wo eine Zitation in content endet. Der Wert für endIndex wird in Byte angegeben und aus der in UTF-8 codierten Antwort berechnet.
url Die URL einer Zitationsquelle. Beispiele für eine URL-Quelle sind beispielsweise eine Nachrichtenwebsite oder ein GitHub-Repository.
title Der Titel einer Zitationsquelle. Beispiele für Quelltitel sind der eines Nachrichtenartikels oder eines Buches.
license Die mit einer Zitation verknüpfte Lizenz.
publicationDate Das Datum, an dem ein Zitat veröffentlicht wurde. Die gültigen Formate sind YYYY, YYYY-MM und YYYY-MM-DD.
avgLogprobs Durchschnittliche Log-Wahrscheinlichkeit des Kandidaten.
logprobsResult Gibt die Top-Kandidaten-Tokens (topCandidates) und die tatsächlich ausgewählten Tokens (chosenCandidates) bei jedem Schritt zurück.
token Modelle für generative KI zerlegen Textdaten zur Verarbeitung in Tokens, die Zeichen, Wörter oder Wortgruppen sein können.
logProbability Ein Log-Wahrscheinlichkeitswert, der das Konfidenzniveau des Modells für ein bestimmtes Token angibt.
promptTokenCount Anzahl der Tokens in der Anfrage.
candidatesTokenCount Anzahl der Tokens in den Antworten.
totalTokenCount Anzahl der Tokens in der Anfrage und den Antworten.

Beispiele

Textgenerierung

Generieren Sie eine Textantwort aus einer Texteingabe.

Gen AI SDK für Python

from google import genai
from google.genai.types import HttpOptions

client = genai.Client(http_options=HttpOptions(api_version="v1"))
response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents="How does AI work?",
)
print(response.text)
# Example response:
# Okay, let's break down how AI works. It's a broad field, so I'll focus on the ...
#
# Here's a simplified overview:
# ...

Python (OpenAI)

Sie können die Inference API mithilfe der OpenAI-Bibliothek aufrufen. Weitere Informationen finden Sie unter Vertex AI-Modelle mithilfe der OpenAI-Bibliothek aufrufen.

from google.auth import default
import google.auth.transport.requests

import openai

# TODO(developer): Update and un-comment below lines
# project_id = "PROJECT_ID"
# location = "us-central1"

# Programmatically get an access token
credentials, _ = default(scopes=["https://www.googleapis.com/auth/cloud-platform"])
credentials.refresh(google.auth.transport.requests.Request())

# OpenAI Client
client = openai.OpenAI(
    base_url=f"https://{location}-aiplatform.googleapis.com/v1/projects/{project_id}/locations/{location}/endpoints/openapi",
    api_key=credentials.token,
)

response = client.chat.completions.create(
    model="google/gemini-2.0-flash-001",
    messages=[{"role": "user", "content": "Why is the sky blue?"}],
)

print(response)

Go

import (
	"context"
	"fmt"
	"io"

	"google.golang.org/genai"
)

// generateWithText shows how to generate text using a text prompt.
func generateWithText(w io.Writer) error {
	ctx := context.Background()

	client, err := genai.NewClient(ctx, &genai.ClientConfig{
		HTTPOptions: genai.HTTPOptions{APIVersion: "v1"},
	})
	if err != nil {
		return fmt.Errorf("failed to create genai client: %w", err)
	}

	resp, err := client.Models.GenerateContent(ctx,
		"gemini-2.5-flash",
		genai.Text("How does AI work?"),
		nil,
	)
	if err != nil {
		return fmt.Errorf("failed to generate content: %w", err)
	}

	respText := resp.Text()

	fmt.Fprintln(w, respText)
	// Example response:
	// That's a great question! Understanding how AI works can feel like ...
	// ...
	// **1. The Foundation: Data and Algorithms**
	// ...

	return nil
}

Multimodale Prompts verwenden

Generieren Sie eine Textantwort aus einer multimodalen Eingabe wie Text und einem Bild.

Gen AI SDK für Python

from google import genai
from google.genai.types import HttpOptions, Part

client = genai.Client(http_options=HttpOptions(api_version="v1"))
response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents=[
        "What is shown in this image?",
        Part.from_uri(
            file_uri="gs://cloud-samples-data/generative-ai/image/scones.jpg",
            mime_type="image/jpeg",
        ),
    ],
)
print(response.text)
# Example response:
# The image shows a flat lay of blueberry scones arranged on parchment paper. There are ...

Python (OpenAI)

Sie können die Inference API mithilfe der OpenAI-Bibliothek aufrufen. Weitere Informationen finden Sie unter Vertex AI-Modelle mithilfe der OpenAI-Bibliothek aufrufen.


from google.auth import default
import google.auth.transport.requests

import openai

# TODO(developer): Update and un-comment below lines
# project_id = "PROJECT_ID"
# location = "us-central1"

# Programmatically get an access token
credentials, _ = default(scopes=["https://www.googleapis.com/auth/cloud-platform"])
credentials.refresh(google.auth.transport.requests.Request())

# OpenAI Client
client = openai.OpenAI(
    base_url=f"https://{location}-aiplatform.googleapis.com/v1/projects/{project_id}/locations/{location}/endpoints/openapi",
    api_key=credentials.token,
)

response = client.chat.completions.create(
    model="google/gemini-2.0-flash-001",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "Describe the following image:"},
                {
                    "type": "image_url",
                    "image_url": "gs://cloud-samples-data/generative-ai/image/scones.jpg",
                },
            ],
        }
    ],
)

print(response)

Go

import (
	"context"
	"fmt"
	"io"

	genai "google.golang.org/genai"
)

// generateWithTextImage shows how to generate text using both text and image input
func generateWithTextImage(w io.Writer) error {
	ctx := context.Background()

	client, err := genai.NewClient(ctx, &genai.ClientConfig{
		HTTPOptions: genai.HTTPOptions{APIVersion: "v1"},
	})
	if err != nil {
		return fmt.Errorf("failed to create genai client: %w", err)
	}

	modelName := "gemini-2.5-flash"
	contents := []*genai.Content{
		{Parts: []*genai.Part{
			{Text: "What is shown in this image?"},
			{FileData: &genai.FileData{
				// Image source: https://storage.googleapis.com/cloud-samples-data/generative-ai/image/scones.jpg
				FileURI:  "gs://cloud-samples-data/generative-ai/image/scones.jpg",
				MIMEType: "image/jpeg",
			}},
		},
			Role: "user"},
	}

	resp, err := client.Models.GenerateContent(ctx, modelName, contents, nil)
	if err != nil {
		return fmt.Errorf("failed to generate content: %w", err)
	}

	respText := resp.Text()

	fmt.Fprintln(w, respText)

	// Example response:
	// The image shows an overhead shot of a rustic, artistic arrangement on a surface that ...

	return nil
}

Streaming-Textantwort

Streamingmodellantwort aus einer Texteingabe generieren

Gen AI SDK für Python

from google import genai
from google.genai.types import HttpOptions

client = genai.Client(http_options=HttpOptions(api_version="v1"))

for chunk in client.models.generate_content_stream(
    model="gemini-2.5-flash",
    contents="Why is the sky blue?",
):
    print(chunk.text, end="")
# Example response:
# The
#  sky appears blue due to a phenomenon called **Rayleigh scattering**. Here's
#  a breakdown of why:
# ...

Python (OpenAI)

Sie können die Inference API mithilfe der OpenAI-Bibliothek aufrufen. Weitere Informationen finden Sie unter Vertex AI-Modelle mithilfe der OpenAI-Bibliothek aufrufen.

from google.auth import default
import google.auth.transport.requests

import openai

# TODO(developer): Update and un-comment below lines
# project_id = "PROJECT_ID"
# location = "us-central1"

# Programmatically get an access token
credentials, _ = default(scopes=["https://www.googleapis.com/auth/cloud-platform"])
credentials.refresh(google.auth.transport.requests.Request())

# OpenAI Client
client = openai.OpenAI(
    base_url=f"https://{location}-aiplatform.googleapis.com/v1/projects/{project_id}/locations/{location}/endpoints/openapi",
    api_key=credentials.token,
)

response = client.chat.completions.create(
    model="google/gemini-2.0-flash-001",
    messages=[{"role": "user", "content": "Why is the sky blue?"}],
    stream=True,
)
for chunk in response:
    print(chunk)

Go

import (
	"context"
	"fmt"
	"io"

	genai "google.golang.org/genai"
)

// generateWithTextStream shows how to generate text stream using a text prompt.
func generateWithTextStream(w io.Writer) error {
	ctx := context.Background()

	client, err := genai.NewClient(ctx, &genai.ClientConfig{
		HTTPOptions: genai.HTTPOptions{APIVersion: "v1"},
	})
	if err != nil {
		return fmt.Errorf("failed to create genai client: %w", err)
	}

	modelName := "gemini-2.5-flash"
	contents := genai.Text("Why is the sky blue?")

	for resp, err := range client.Models.GenerateContentStream(ctx, modelName, contents, nil) {
		if err != nil {
			return fmt.Errorf("failed to generate content: %w", err)
		}

		chunk := resp.Text()

		fmt.Fprintln(w, chunk)
	}

	// Example response:
	// The
	//  sky is blue
	//  because of a phenomenon called **Rayleigh scattering**. Here's the breakdown:
	// ...

	return nil
}

Modellversionen

Wenn Sie die automatisch aktualisierte Version verwenden möchten, geben Sie den Modellnamen ohne die nachgestellte Versionsnummer an, z. B. gemini-2.0-flash anstelle von gemini-2.0-flash-001.

Weitere Informationen finden Sie unter Modellversionen und Lebenszyklus.

Nächste Schritte