Inhalte mit der Gemini Enterprise API generieren

Verwenden Sie generateContent oder streamGenerateContent, um Inhalte mit Gemini zu generieren.

Die Gemini-Modellfamilie umfasst Modelle, die mit multimodalen Prompt-Anfragen funktionieren. Der Begriff „multimodal“ bedeutet, dass Sie in einem Prompt mehr als eine Modalität oder Eingabeart 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 Vertex AI API für Gemini 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 Vertex AI API für Gemini nach, wie Sie eine Anfrage an die Vertex AI Gemini API mit einem SDK für Programmiersprachen oder der REST API senden.

Unterstützte Modelle

Modell Version
Gemini 1.5 Flash gemini-1.5-flash-001
gemini-1.5-flash-002
Gemini 1.5 Pro, gemini-1.5-pro-001
gemini-1.5-pro-002
Gemini 1.0 Pro Vision gemini-1.0-pro-001
gemini-1.0-pro-vision-001
Gemini 1.0 Pro gemini-1.0-pro
gemini-1.0-pro-001
gemini-1.0-pro-002

Beispielsyntax

Syntax zum Generieren einer Modellantwort.

Nicht-Streaming

curl

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \

https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:generateContent \
-d '{
  "contents": [{
    ...
  }],
  "generationConfig": {
    ...
  },
  "safetySettings": {
    ...
  }
  ...
}'

Python

gemini_model = GenerativeModel(MODEL_ID)
generation_config = GenerationConfig(...)

model_response = gemini_model.generate_content([...], generation_config, safety_settings={...})

Streaming

curl

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:streamGenerateContent \
  -d '{
    "contents": [{
      ...
    }],
    "generationConfig": {
      ...
    },
    "safetySettings": {
      ...
    }
    ...
  }'

Python

gemini_model = GenerativeModel(MODEL_ID)
model_response = gemini_model.generate_content([...], generation_config, safety_settings={...}, stream=True)

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
            }
          }
        }
      ]
    }
  ],
  "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 der im Cache gespeicherten Inhalte, die als Kontext für die Bereitstellung der Vorhersage verwendet werden. 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-1.5-flash, gemini-1.5-pro und gemini-1.0-pro-002.

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 finden Sie unter Funktionsaufruf.

toolConfig

Optional. Weitere Informationen finden Sie unter Funktionsaufruf.

safetySettings

Optional: SafetySetting

Einstellungen für das Blockieren unsicherer Inhalte pro Anfrage

Erzwungen am GenerateContentResponse.candidates

generationConfig

Optional: GenerationConfig

Konfigurationseinstellungen für die Generierung.

labels

Optional: string

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

contents

Der grundlegende strukturierte Datentyp, 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

Optional: 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.

Bei Unterhaltungen, die nicht mehrere Themen enthalten, kann dieses Feld leer bleiben oder nicht festgelegt werden.

parts

Part

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

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.

Wie du die Anzahl der Tokens in deiner Anfrage berechnest, erfährst du 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-1.0-pro-vision können Sie mit inlineData höchstens ein Bild angeben.Wenn Sie bis zu 16 Bilder angeben möchten, verwenden Sie fileData.

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 finden Sie unter Funktionsaufruf.

functionResponse

Optional: FunctionResponse.

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

Weitere Informationen finden Sie unter Funktionsaufruf.

videoMetadata

Optional: VideoMetadata

Bei der Videoeingabe: Start- und Endoffset des Videos im Format Dauer. Wenn Sie beispielsweise einen 10-Sekunden-Clip ab 1:00 Uhr angeben möchten, legen Sie "startOffset": { "seconds": 60 } und "endOffset": { "seconds": 70 } fest.

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

blob

Inhalts-Blob Senden Sie nach Möglichkeit Text und keine Rohbytes.

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

Für gemini-1.0-pro-vision beträgt die maximale Videolänge 2 Minuten.

Bei Gemini 1.5 Pro und Gemini 1.5 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 Medienanforderungen für Gemini 1.5 Pro.

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-1.5-pro und gemini-1.5-flash beträgt die Größenbeschränkung 2 GB. Für gemini-1.0-pro-vision beträgt die Größenbeschränkung 20 MB.
  • HTTP-URL: Die Datei-URL muss öffentlich lesbar sein. Sie können eine Videodatei, eine Audiodatei und bis zu 10 Bilddateien pro Anfrage angeben. Audiodateien, Videodateien und 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.

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.

Parameterdetails finden Sie unter Funktionsaufruf.

functionResponse

Die Ausgabe einer FunctionCall, die einen String enthält, der die FunctionDeclaration.name darstellt. Enthält außerdem 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 Eingabevideocontent beschreiben.

Parameter

startOffset

Optional: google.protobuf.Duration

Der Startversatz des Videos.

endOffset

Optional: google.protobuf.Duration

Endversatz des Videos.

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 werden soll. Wenn nicht angegeben, wird der Schwellenwert für den Wahrscheinlichkeitswert verwendet.

harmCategory

Schädliche Kategorien, 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

Wahrscheinlichkeitsgrenzwerte, mit denen eine Antwort blockiert wird.

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

Deaktiviert die Sicherheit, wenn alle Kategorien deaktiviert sind

harmBlockMethod

Ein Wahrscheinlichkeitsgrenzwert, 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 wurden.

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-1.5-flash: 0.0 - 2.0 (Standardeinstellung: 1.0)
  • Bereich für gemini-1.5-pro: 0.0 - 2.0 (Standardeinstellung: 1.0)
  • Bereich für gemini-1.0-pro-vision: 0.0 - 1.0 (Standardeinstellung: 0.4)
  • Bereich für gemini-1.0-pro-002: 0.0 - 2.0 (Standardeinstellung: 1.0)
  • Bereich für gemini-1.0-pro-001: 0.0 - 1.0 (Standardeinstellung: 0.9)

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

topP

Optional: float

Wenn angegeben, wird die Nukleusstichprobe 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-1.5-flash: 0.95
  • Standardeinstellung für gemini-1.5-pro: 0.95
  • Standardeinstellung für gemini-1.0-pro: 1.0
  • Standardeinstellung für gemini-1.0-pro-vision: 1.0

topK

Optional: Der Wert Top-K ändert, wie das Modell Tokens für die Ausgabe auswählt. Ein „Top-K“ von 1 bedeutet, dass das nächste ausgewählte Token unter den Tokens im Modell-Vokabular (auch als gierige Decodierung bezeichnet) am wahrscheinlichsten ist, während ein „Top-K“ von3 bedeutet, dass das nächste Token mithilfe der Temperatur aus den drei wahrscheinlichsten Tokens ausgewählt wird.

Für jeden Tokenauswahlschritt werden die „Top-K“-Tokens mit den höchsten Wahrscheinlichkeiten abgetastet. Anschließend werden Tokens weiter auf der Grundlage von „Top-P“ gefiltert, wobei das endgültige Token mithilfe von Temperaturproben ausgewählt wird.

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

Bereich: 1-40.

Nur von gemini-1.0-pro-vision unterstützt.

Standardeinstellung für gemini-1.0-pro-vision: 32

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 1.5 Flash: 18, Standardeinstellung: 1
  • Gemini 1.5 Pro: 18, Standardeinstellung: 1
  • Gemini 1.0 Pro: 18, Standardeinstellung: 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 beträgt -2.0.

Unterstützt von gemini-1.5-pro und gemini-1.5-flash.

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 beträgt -2.0.

Unterstützt von gemini-1.5-pro und gemini-1.5-flash.

responseMimeType

Optional: string (enum)

Verfügbar für die folgenden Modelle:

  • gemini-1.5-pro
  • gemini-1.5-flash

MIME-Typ der Ausgabeantwort des generierten Kandidatentextes.

Die folgenden MIME-Typen werden unterstützt:

  • application/json: JSON-Antwort in den Kandidaten.
  • text/plain (Standardeinstellung): Nur-Text-Ausgabe.
  • text/x.enum: Bei Klassifizierungsaufgaben einen im Antwortschema definierten Aufzählungswert ausgeben.

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.

responseSchema

Optional: schema

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

Sie müssen den Parameter responseMimeType angeben, um diesen Parameter zu verwenden.

Verfügbar für die folgenden Modelle:

  • gemini-1.5-pro
  • gemini-1.5-flash

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.

Verfügbar für die folgenden Modelle:

  • gemini-1.5-pro
  • gemini-1.5-flash
  • gemini-1.0-pro-002

Dies ist eine Funktion in der Vorabversion.

responseLogprobs

Optional: boolean

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

Verfügbar für die folgenden Modelle:

  • gemini-1.5-flash

Dies ist eine Funktion in der Vorabversion.

logprobs

Optional: int

Gibt die Log-Wahrscheinlichkeiten der Top-Kandidaten-Token bei jedem Generierungsschritt zurück. Das vom Modell ausgewählte Token ist möglicherweise nicht mit dem Top-Kandidaten-Token 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 5 angeben.

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

Dies ist eine Funktion in der Vorabversion.

audioTimestamp

Optional: boolean

Verfügbar für die folgenden Modelle:

  • gemini-1.5-pro-002
  • gemini-1.5-flash-002

Ermöglicht die Erkennung von Zeitstempeln für Dateien, die nur Audio enthalten.

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 Modell und die Version, die für die Generierung verwendet wurden. Beispiel: gemini-1.5-flash-002.
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. Hinweis: Candidate.content ist leer, wenn die Ausgabe durch Inhaltsfilter blockiert wird.
  • FINISH_REASON_RECITATION: Die Tokengenerierung wurde gestoppt, da die Antwort wegen nicht autorisierter Zitate gekennzeichnet wurde.
  • FINISH_REASON_BLOCKLIST: Die Tokengenerierung wurde gestoppt, weil die Antwort gesperrte Begriffe enthält.
  • FINISH_REASON_PROHIBITED_CONTENT: Die Tokengenerierung wurde gestoppt, weil die Antwort wegen verbotener Inhalte gemeldet wurde, z. B. Darstellungen des sexuellen Missbrauchs von Kindern.
  • 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 parsbaren 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ädliche Inhalte
  • 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.
endIndex Eine Ganzzahl, die angibt, wo eine Zitation in content endet.
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-Token (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 Logaritmus der Wahrscheinlichkeit, der die Konfidenz 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

Nicht-Streaming-Textantwort

Generieren Sie eine nicht-streamingfähige Modellantwort aus einer Texteingabe.

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID.
  • LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
  • MODEL_ID: Die Modell-ID des Modells, das Sie verwenden möchten (z. B. gemini-1.5-flash-002). Weitere Informationen finden Sie in der Liste der unterstützten Modelle.
  • TEXT: Die Textanleitung, die in den Prompt eingefügt werden soll.

HTTP-Methode und URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent

JSON-Text der Anfrage:

{
  "contents": [{
    "role": "user",
    "parts": [{
      "text": "TEXT"
    }]
  }]
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent" | Select-Object -Expand Content

Python

import vertexai
from vertexai.generative_models import GenerativeModel

# TODO(developer): Update and un-comment below line
# PROJECT_ID = "your-project-id"
vertexai.init(project=PROJECT_ID, location="us-central1")

model = GenerativeModel("gemini-1.5-flash-002")

response = model.generate_content(
    "What's a good name for a flower shop that specializes in selling bouquets of dried flowers?"
)

print(response.text)
# Example response:
# **Emphasizing the Dried Aspect:**
# * Everlasting Blooms
# * Dried & Delightful
# * The Petal Preserve
# ...

NodeJS

const {VertexAI} = require('@google-cloud/vertexai');

/**
 * TODO(developer): Update these variables before running the sample.
 */
async function generate_from_text_input(projectId = 'PROJECT_ID') {
  const vertexAI = new VertexAI({project: projectId, location: 'us-central1'});

  const generativeModel = vertexAI.getGenerativeModel({
    model: 'gemini-1.5-flash-001',
  });

  const prompt =
    "What's a good name for a flower shop that specializes in selling bouquets of dried flowers?";

  const resp = await generativeModel.generateContent(prompt);
  const contentResponse = await resp.response;
  console.log(JSON.stringify(contentResponse));
}

Java

import com.google.cloud.vertexai.VertexAI;
import com.google.cloud.vertexai.api.GenerateContentResponse;
import com.google.cloud.vertexai.generativeai.GenerativeModel;
import com.google.cloud.vertexai.generativeai.ResponseHandler;

public class QuestionAnswer {

  public static void main(String[] args) throws Exception {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-google-cloud-project-id";
    String location = "us-central1";
    String modelName = "gemini-1.5-flash-001";

    String output = simpleQuestion(projectId, location, modelName);
    System.out.println(output);
  }

  // Asks a question to the specified Vertex AI Gemini model and returns the generated answer.
  public static String simpleQuestion(String projectId, String location, String modelName)
      throws Exception {
    // Initialize client that will be used to send requests.
    // This client only needs to be created once, and can be reused for multiple requests.
    try (VertexAI vertexAI = new VertexAI(projectId, location)) {
      String output;
      GenerativeModel model = new GenerativeModel(modelName, vertexAI);
      // Send the question to the model for processing.
      GenerateContentResponse response = model.generateContent("Why is the sky blue?");
      // Extract the generated text from the model's response.
      output = ResponseHandler.getText(response);
      return output;
    }
  }
}

Go

import (
	"context"
	"encoding/json"
	"fmt"
	"io"

	"cloud.google.com/go/vertexai/genai"
)

func generateContentFromText(w io.Writer, projectID string) error {
	location := "us-central1"
	modelName := "gemini-1.5-flash-001"

	ctx := context.Background()
	client, err := genai.NewClient(ctx, projectID, location)
	if err != nil {
		return fmt.Errorf("error creating client: %w", err)
	}
	gemini := client.GenerativeModel(modelName)
	prompt := genai.Text(
		"What's a good name for a flower shop that specializes in selling bouquets of dried flowers?")

	resp, err := gemini.GenerateContent(ctx, prompt)
	if err != nil {
		return fmt.Errorf("error generating content: %w", err)
	}
	// See the JSON response in
	// https://pkg.go.dev/cloud.google.com/go/vertexai/genai#GenerateContentResponse.
	rb, err := json.MarshalIndent(resp, "", "  ")
	if err != nil {
		return fmt.Errorf("json.MarshalIndent: %w", err)
	}
	fmt.Fprintln(w, string(rb))
	return nil
}

C#


using Google.Cloud.AIPlatform.V1;
using System;
using System.Threading.Tasks;

public class TextInputSample
{
    public async Task<string> TextInput(
        string projectId = "your-project-id",
        string location = "us-central1",
        string publisher = "google",
        string model = "gemini-1.5-flash-001")
    {

        var predictionServiceClient = new PredictionServiceClientBuilder
        {
            Endpoint = $"{location}-aiplatform.googleapis.com"
        }.Build();
        string prompt = @"What's a good name for a flower shop that specializes in selling bouquets of dried flowers?";

        var generateContentRequest = new GenerateContentRequest
        {
            Model = $"projects/{projectId}/locations/{location}/publishers/{publisher}/models/{model}",
            Contents =
            {
                new Content
                {
                    Role = "USER",
                    Parts =
                    {
                        new Part { Text = prompt }
                    }
                }
            }
        };

        GenerateContentResponse response = await predictionServiceClient.GenerateContentAsync(generateContentRequest);

        string responseText = response.Candidates[0].Content.Parts[0].Text;
        Console.WriteLine(responseText);

        return responseText;
    }
}

REST (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.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID.
  • LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
  • MODEL_ID: Der Name des Modells, das verwendet werden soll.

HTTP-Methode und URL:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions

JSON-Text der Anfrage:

{
  "model": "google/MODEL_ID",
  "messages": [{
    "role": "user",
    "content": "Write a story about a magic backpack."
  }]
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions" | Select-Object -Expand Content

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.

import vertexai
import openai

from google.auth import default, transport

# TODO(developer): Update and un-comment below line
# PROJECT_ID = "your-project-id"
location = "us-central1"

vertexai.init(project=PROJECT_ID, location=location)

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

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

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

print(response.choices[0].message.content)
# Example response:
# The sky is blue due to a phenomenon called **Rayleigh scattering**.
# Sunlight is made up of all the colors of the rainbow.
# As sunlight enters the Earth's atmosphere ...

Multimodale Nicht-Streaming-Antwort

Generieren Sie eine nicht streamende Modellantwort aus einer multimodalen Eingabe wie Text und einem Bild.

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID.
  • LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
  • MODEL_ID: Die Modell-ID des Modells, das Sie verwenden möchten (z. B. gemini-1.5-flash-002). Weitere Informationen finden Sie in der Liste der unterstützten Modelle.
  • TEXT: Die Textanleitung, die in den Prompt eingefügt werden soll.
  • FILE_URI: Der Cloud Storage-URI der Datei, in der die Daten gespeichert werden
  • MIME_TYPE: IANA-MIME-Typ der Daten.

HTTP-Methode und URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent

JSON-Text der Anfrage:

{
  "contents": [{
    "role": "user",
    "parts": [
      {
        "text": "TEXT"
      },
      {
        "fileData": {
          "fileUri": "FILE_URI",
          "mimeType": "MIME_TYPE"
        }
      }
    ]
  }]
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent" | Select-Object -Expand Content

Python

import vertexai

from vertexai.generative_models import GenerativeModel, Part

# TODO(developer): Update and un-comment below line
# PROJECT_ID = "your-project-id"
vertexai.init(project=PROJECT_ID, location="us-central1")

model = GenerativeModel("gemini-1.5-flash-002")

response = model.generate_content(
    [
        Part.from_uri(
            "gs://cloud-samples-data/generative-ai/image/scones.jpg",
            mime_type="image/jpeg",
        ),
        "What is shown in this image?",
    ]
)

print(response.text)
# That's a lovely overhead shot of a rustic-style breakfast or brunch spread.
# Here's what's in the image:
# * **Blueberry scones:** Several freshly baked blueberry scones are arranged on parchment paper.
# They look crumbly and delicious.
# ...

NodeJS

const {VertexAI} = require('@google-cloud/vertexai');

/**
 * TODO(developer): Update these variables before running the sample.
 */
async function createNonStreamingMultipartContent(
  projectId = 'PROJECT_ID',
  location = 'us-central1',
  model = 'gemini-1.5-flash-001',
  image = 'gs://generativeai-downloads/images/scones.jpg',
  mimeType = 'image/jpeg'
) {
  // Initialize Vertex with your Cloud project and location
  const vertexAI = new VertexAI({project: projectId, location: location});

  // Instantiate the model
  const generativeVisionModel = vertexAI.getGenerativeModel({
    model: model,
  });

  // For images, the SDK supports both Google Cloud Storage URI and base64 strings
  const filePart = {
    fileData: {
      fileUri: image,
      mimeType: mimeType,
    },
  };

  const textPart = {
    text: 'what is shown in this image?',
  };

  const request = {
    contents: [{role: 'user', parts: [filePart, textPart]}],
  };

  console.log('Prompt Text:');
  console.log(request.contents[0].parts[1].text);

  console.log('Non-Streaming Response Text:');

  // Generate a response
  const response = await generativeVisionModel.generateContent(request);

  // Select the text from the response
  const fullTextResponse =
    response.response.candidates[0].content.parts[0].text;

  console.log(fullTextResponse);
}

Java

import com.google.cloud.vertexai.VertexAI;
import com.google.cloud.vertexai.api.GenerateContentResponse;
import com.google.cloud.vertexai.generativeai.ContentMaker;
import com.google.cloud.vertexai.generativeai.GenerativeModel;
import com.google.cloud.vertexai.generativeai.PartMaker;
import com.google.cloud.vertexai.generativeai.ResponseHandler;

public class Multimodal {
  public static void main(String[] args) throws Exception {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-google-cloud-project-id";
    String location = "us-central1";
    String modelName = "gemini-1.5-flash-001";

    String output = nonStreamingMultimodal(projectId, location, modelName);
    System.out.println(output);
  }

  // Ask a simple question and get the response.
  public static String nonStreamingMultimodal(String projectId, String location, String modelName)
      throws Exception {
    // Initialize client that will be used to send requests.
    // This client only needs to be created once, and can be reused for multiple requests.
    try (VertexAI vertexAI = new VertexAI(projectId, location)) {
      GenerativeModel model = new GenerativeModel(modelName, vertexAI);

      String videoUri = "gs://cloud-samples-data/video/animals.mp4";
      String imgUri = "gs://cloud-samples-data/generative-ai/image/character.jpg";

      // Get the response from the model.
      GenerateContentResponse response = model.generateContent(
          ContentMaker.fromMultiModalData(
              PartMaker.fromMimeTypeAndData("video/mp4", videoUri),
              PartMaker.fromMimeTypeAndData("image/jpeg", imgUri),
              "Are this video and image correlated?"
          ));

      // Extract the generated text from the model's response.
      String output = ResponseHandler.getText(response);
      return output;
    }
  }
}

Go

import (
	"context"
	"encoding/json"
	"fmt"
	"io"

	"cloud.google.com/go/vertexai/genai"
)

func tryGemini(w io.Writer, projectID string, location string, modelName string) error {
	// location := "us-central1"
	// modelName := "gemini-1.5-flash-001"

	ctx := context.Background()
	client, err := genai.NewClient(ctx, projectID, location)
	if err != nil {
		return fmt.Errorf("error creating client: %w", err)
	}
	gemini := client.GenerativeModel(modelName)

	img := genai.FileData{
		MIMEType: "image/jpeg",
		FileURI:  "gs://generativeai-downloads/images/scones.jpg",
	}
	prompt := genai.Text("What is in this image?")

	resp, err := gemini.GenerateContent(ctx, img, prompt)
	if err != nil {
		return fmt.Errorf("error generating content: %w", err)
	}
	rb, err := json.MarshalIndent(resp, "", "  ")
	if err != nil {
		return fmt.Errorf("json.MarshalIndent: %w", err)
	}
	fmt.Fprintln(w, string(rb))
	return nil
}

C#


using Google.Api.Gax.Grpc;
using Google.Cloud.AIPlatform.V1;
using System.Text;
using System.Threading.Tasks;

public class GeminiQuickstart
{
    public async Task<string> GenerateContent(
        string projectId = "your-project-id",
        string location = "us-central1",
        string publisher = "google",
        string model = "gemini-1.5-flash-001"
    )
    {
        // Create client
        var predictionServiceClient = new PredictionServiceClientBuilder
        {
            Endpoint = $"{location}-aiplatform.googleapis.com"
        }.Build();

        // Initialize content request
        var generateContentRequest = new GenerateContentRequest
        {
            Model = $"projects/{projectId}/locations/{location}/publishers/{publisher}/models/{model}",
            GenerationConfig = new GenerationConfig
            {
                Temperature = 0.4f,
                TopP = 1,
                TopK = 32,
                MaxOutputTokens = 2048
            },
            Contents =
            {
                new Content
                {
                    Role = "USER",
                    Parts =
                    {
                        new Part { Text = "What's in this photo?" },
                        new Part { FileData = new() { MimeType = "image/png", FileUri = "gs://generativeai-downloads/images/scones.jpg" } }
                    }
                }
            }
        };

        // Make the request, returning a streaming response
        using PredictionServiceClient.StreamGenerateContentStream response = predictionServiceClient.StreamGenerateContent(generateContentRequest);

        StringBuilder fullText = new();

        // Read streaming responses from server until complete
        AsyncResponseStream<GenerateContentResponse> responseStream = response.GetResponseStream();
        await foreach (GenerateContentResponse responseItem in responseStream)
        {
            fullText.Append(responseItem.Candidates[0].Content.Parts[0].Text);
        }

        return fullText.ToString();
    }
}

REST (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.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID.
  • LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
  • MODEL_ID: Der Name des Modells, das verwendet werden soll.

HTTP-Methode und URL:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions

JSON-Text der Anfrage:

{
  "model": "google/MODEL_ID",
  "messages": [{
    "role": "user",
    "content": [
       {
          "type": "text",
          "text": "Describe the following image:"
       },
       {
          "type": "image_url",
          "image_url": {
             "url": "gs://generativeai-downloads/images/character.jpg"
          }
       }
     ]
  }]
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions" | Select-Object -Expand Content

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.

import vertexai
import openai

from google.auth import default, transport

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

vertexai.init(project=PROJECT_ID, location=location)

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

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

response = client.chat.completions.create(
    model="google/gemini-1.5-flash-002",
    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.choices[0].message.content)
# Example response:
# Here's a description of the image:
# High-angle, close-up view of a rustic arrangement featuring several blueberry scones
# on a piece of parchment paper. The scones are golden-brown...

Streaming-Textantwort

Eine Streaming-Modellantwort aus einer Texteingabe generieren

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID.
  • LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
  • MODEL_ID: Die Modell-ID des Modells, das Sie verwenden möchten (z. B. gemini-1.5-flash-002). Weitere Informationen finden Sie in der Liste der unterstützten Modelle.
  • TEXT: Die Textanleitung, die in den Prompt eingefügt werden soll.

HTTP-Methode und URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:streamGenerateContent

JSON-Text der Anfrage:

{
  "contents": [{
    "role": "user",
    "parts": [{
      "text": "TEXT"
    }]
  }]
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:streamGenerateContent"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:streamGenerateContent" | Select-Object -Expand Content

Python

import vertexai

from vertexai.generative_models import GenerativeModel

# TODO(developer): Update and un-comment below line
# PROJECT_ID = "your-project-id"
vertexai.init(project=PROJECT_ID, location="us-central1")

model = GenerativeModel("gemini-1.5-flash-002")
responses = model.generate_content(
    "Write a story about a magic backpack.", stream=True
)

for response in responses:
    print(response.text)
# Example response:
# El
# ara wasn't looking for magic. She was looking for rent money.
# Her tiny apartment, perched precariously on the edge of Whispering Woods,
# ...

NodeJS

const {VertexAI} = require('@google-cloud/vertexai');

/**
 * TODO(developer): Update these variables before running the sample.
 */
const PROJECT_ID = process.env.CAIP_PROJECT_ID;
const LOCATION = process.env.LOCATION;
const MODEL = 'gemini-1.5-flash-001';

async function generateContent() {
  // Initialize Vertex with your Cloud project and location
  const vertexAI = new VertexAI({project: PROJECT_ID, location: LOCATION});

  // Instantiate the model
  const generativeModel = vertexAI.getGenerativeModel({
    model: MODEL,
  });

  const request = {
    contents: [
      {
        role: 'user',
        parts: [
          {
            text: 'Write a story about a magic backpack.',
          },
        ],
      },
    ],
  };

  console.log(JSON.stringify(request));

  const result = await generativeModel.generateContentStream(request);
  for await (const item of result.stream) {
    console.log(item.candidates[0].content.parts[0].text);
  }
}

Java

import com.google.cloud.vertexai.VertexAI;
import com.google.cloud.vertexai.generativeai.GenerativeModel;

public class StreamingQuestionAnswer {

  public static void main(String[] args) throws Exception {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-google-cloud-project-id";
    String location = "us-central1";
    String modelName = "gemini-1.5-flash-001";

    streamingQuestion(projectId, location, modelName);
  }

  // Ask a simple question and get the response via streaming.
  public static void streamingQuestion(String projectId, String location, String modelName)
      throws Exception {
    // Initialize client that will be used to send requests.
    // This client only needs to be created once, and can be reused for multiple requests.
    try (VertexAI vertexAI = new VertexAI(projectId, location)) {
      GenerativeModel model = new GenerativeModel(modelName, vertexAI);

      // Stream the result.
      model.generateContentStream("Write a story about a magic backpack.")
          .stream()
          .forEach(System.out::println);

      System.out.println("Streaming complete.");
    }
  }
}

Go

import (
	"context"
	"errors"
	"fmt"
	"io"

	"cloud.google.com/go/vertexai/genai"
	"google.golang.org/api/iterator"
)

// generateContent shows how to	send a basic streaming text prompt, writing
// the response to the provided io.Writer.
func generateContent(w io.Writer, projectID, modelName string) error {
	ctx := context.Background()

	client, err := genai.NewClient(ctx, projectID, "us-central1")
	if err != nil {
		return fmt.Errorf("unable to create client: %w", err)
	}
	defer client.Close()

	model := client.GenerativeModel(modelName)

	iter := model.GenerateContentStream(
		ctx,
		genai.Text("Write a story about a magic backpack."),
	)
	for {
		resp, err := iter.Next()
		if err == iterator.Done {
			return nil
		}
		if len(resp.Candidates) == 0 || len(resp.Candidates[0].Content.Parts) == 0 {
			return errors.New("empty response from model")
		}
		if err != nil {
			return err
		}
		fmt.Fprint(w, "generated response: ")
		for _, c := range resp.Candidates {
			for _, p := range c.Content.Parts {
				fmt.Fprintf(w, "%s ", p)
			}
		}
	}
}

REST (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.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID.
  • LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
  • MODEL_ID: Der Name des Modells, das verwendet werden soll.

HTTP-Methode und URL:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions

JSON-Text der Anfrage:

{
  "model": "google/MODEL_ID",
  "stream": true,
  "messages": [{
    "role": "user",
    "content": "Write a story about a magic backpack."
  }]
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions" | Select-Object -Expand Content

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.

import vertexai
import openai

from google.auth import default, transport

# TODO(developer): Update and un-comment below line
# PROJECT_ID = "your-project-id"
location = "us-central1"

vertexai.init(project=PROJECT_ID, location=location)

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

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

response = client.chat.completions.create(
    model="google/gemini-1.5-flash-002",
    messages=[{"role": "user", "content": "Why is the sky blue?"}],
    stream=True,
)
for chunk in response:
    print(chunk.choices[0].delta.content)
# Example response:
# The sky is blue due to a phenomenon called **Rayleigh scattering**. Sunlight is
# made up of all the colors of the rainbow. When sunlight enters the Earth 's atmosphere,
# it collides with tiny air molecules (mostly nitrogen and oxygen). ...

Multimodale Streamingantwort

Eine Streaming-Modellantwort aus einer multimodalen Eingabe wie Text und einem Bild generieren

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID.
  • LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
  • MODEL_ID: Die Modell-ID des Modells, das Sie verwenden möchten (z. B. gemini-1.5-flash-002). Weitere Informationen finden Sie in der Liste der unterstützten Modelle.
  • TEXT: Die Textanleitung, die in den Prompt eingefügt werden soll.
  • FILE_URI1: Der Cloud Storage-URI der Datei, in der die Daten gespeichert werden
  • MIME_TYPE1: IANA-MIME-Typ der Daten.
  • FILE_URI2: Der Cloud Storage-URI der Datei, in der die Daten gespeichert werden
  • MIME_TYPE2: IANA-MIME-Typ der Daten.

HTTP-Methode und URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:streamGenerateContent

JSON-Text der Anfrage:

{
  "contents": [{
    "role": "user",
    "parts": [
      {
        "text": "TEXT"
      },
      {
        "fileData": {
          "fileUri": "FILE_URI1",
          "mimeType": "MIME_TYPE1"
        }
      },
      {
        "fileData": {
          "fileUri": "FILE_URI2",
          "mimeType": "MIME_TYPE2"
        }
      }
    ]
  }]
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:streamGenerateContent"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:streamGenerateContent" | Select-Object -Expand Content

Python

import vertexai

from vertexai.generative_models import GenerativeModel, Part

# TODO(developer): Update and un-comment below line
# PROJECT_ID = "your-project-id"

vertexai.init(project=PROJECT_ID, location="us-central1")

model = GenerativeModel("gemini-1.5-flash-002")
responses = model.generate_content(
    [
        Part.from_uri(
            "gs://cloud-samples-data/generative-ai/video/animals.mp4", "video/mp4"
        ),
        Part.from_uri(
            "gs://cloud-samples-data/generative-ai/image/character.jpg",
            "image/jpeg",
        ),
        "Are these video and image correlated?",
    ],
    stream=True,
)

for response in responses:
    print(response.candidates[0].content.text)
# Example response:
# No, the video and image are not correlated. The video shows a Google Photos
# project where animals at the Los Angeles Zoo take selfies using modified cameras.
# The image is a simple drawing of a wizard.

NodeJS

const {VertexAI} = require('@google-cloud/vertexai');

/**
 * TODO(developer): Update these variables before running the sample.
 */
const PROJECT_ID = process.env.CAIP_PROJECT_ID;
const LOCATION = process.env.LOCATION;
const MODEL = 'gemini-1.5-flash-001';

async function generateContent() {
  // Initialize Vertex AI
  const vertexAI = new VertexAI({project: PROJECT_ID, location: LOCATION});
  const generativeModel = vertexAI.getGenerativeModel({model: MODEL});

  const request = {
    contents: [
      {
        role: 'user',
        parts: [
          {
            file_data: {
              file_uri: 'gs://cloud-samples-data/video/animals.mp4',
              mime_type: 'video/mp4',
            },
          },
          {
            file_data: {
              file_uri:
                'gs://cloud-samples-data/generative-ai/image/character.jpg',
              mime_type: 'image/jpeg',
            },
          },
          {text: 'Are this video and image correlated?'},
        ],
      },
    ],
  };

  const result = await generativeModel.generateContentStream(request);

  for await (const item of result.stream) {
    console.log(item.candidates[0].content.parts[0].text);
  }
}

Java

import com.google.cloud.vertexai.VertexAI;
import com.google.cloud.vertexai.generativeai.ContentMaker;
import com.google.cloud.vertexai.generativeai.GenerativeModel;
import com.google.cloud.vertexai.generativeai.PartMaker;

public class StreamingMultimodal {
  public static void main(String[] args) throws Exception {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-google-cloud-project-id";
    String location = "us-central1";
    String modelName = "gemini-1.5-flash-001";

    streamingMultimodal(projectId, location, modelName);
  }

  // Ask a simple question and get the response via streaming.
  public static void streamingMultimodal(String projectId, String location, String modelName)
      throws Exception {
    // Initialize client that will be used to send requests.
    // This client only needs to be created once, and can be reused for multiple requests.
    try (VertexAI vertexAI = new VertexAI(projectId, location)) {
      GenerativeModel model = new GenerativeModel(modelName, vertexAI);

      String videoUri = "gs://cloud-samples-data/video/animals.mp4";
      String imgUri = "gs://cloud-samples-data/generative-ai/image/character.jpg";

      // Stream the result.
      model.generateContentStream(
          ContentMaker.fromMultiModalData(
              PartMaker.fromMimeTypeAndData("video/mp4", videoUri),
              PartMaker.fromMimeTypeAndData("image/jpeg", imgUri),
              "Are this video and image correlated?"
          ))
          .stream()
          .forEach(System.out::println);
    }
  }
}

Go

import (
	"context"
	"errors"
	"fmt"
	"io"

	"cloud.google.com/go/vertexai/genai"
	"google.golang.org/api/iterator"
)

func generateContent(w io.Writer, projectID, modelName string) error {
	ctx := context.Background()

	client, err := genai.NewClient(ctx, projectID, "us-central1")
	if err != nil {
		return fmt.Errorf("unable to create client: %w", err)
	}
	defer client.Close()

	model := client.GenerativeModel(modelName)
	iter := model.GenerateContentStream(
		ctx,
		genai.FileData{
			MIMEType: "video/mp4",
			FileURI:  "gs://cloud-samples-data/generative-ai/video/animals.mp4",
		},
		genai.FileData{
			MIMEType: "video/jpeg",
			FileURI:  "gs://cloud-samples-data/generative-ai/image/character.jpg",
		},
		genai.Text("Are these video and image correlated?"),
	)
	for {
		resp, err := iter.Next()
		if err == iterator.Done {
			return nil
		}
		if len(resp.Candidates) == 0 || len(resp.Candidates[0].Content.Parts) == 0 {
			return errors.New("empty response from model")
		}
		if err != nil {
			return err
		}

		fmt.Fprint(w, "generated response: ")
		for _, c := range resp.Candidates {
			for _, p := range c.Content.Parts {
				fmt.Fprintf(w, "%s ", p)
			}
		}
		fmt.Fprint(w, "\n")
	}
}

REST (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.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID.
  • LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
  • MODEL_ID: Der Name des Modells, das verwendet werden soll.

HTTP-Methode und URL:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions

JSON-Text der Anfrage:

{
  "model": "google/MODEL_ID",
  "stream": true,
  "messages": [{
    "role": "user",
    "content": [
       {
          "type": "text",
          "text": "Describe the following image:"
       },
       {
          "type": "image_url",
          "image_url": {
             "url": "gs://generativeai-downloads/images/character.jpg"
          }
       }
     ]
  }]
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions" | Select-Object -Expand Content

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.

import vertexai
import openai

from google.auth import default, transport

# TODO(developer): Update and un-comment below line
# PROJECT_ID = "your-project-id"
location = "us-central1"

vertexai.init(project=PROJECT_ID, location=location)

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

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

response = client.chat.completions.create(
    model="google/gemini-1.5-flash-002",
    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",
                },
            ],
        }
    ],
    stream=True,
)
for chunk in response:
    print(chunk.choices[0].delta.content)
# Example response:
# Here's a description of the image:
# High-angle, close-up view of a rustic scene featuring several blueberry
# scones arranged on a piece of parchment paper...

Modellversionen

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

Weitere Informationen finden Sie unter Modellversionen und Lebenszyklus.

Nächste Schritte