OpenAI-Bibliotheken mit Vertex AI verwenden

Die Chat Completions API funktioniert als OpenAI-kompatibler Endpunkt, der die Interaktion mit Gemini in Vertex AI durch die Verwendung der OpenAI-Bibliotheken für Python und REST vereinfachen soll. Wenn Sie bereits die OpenAI-Bibliotheken verwenden, können Sie mit dieser API kostengünstig zwischen dem Aufrufen von OpenAI-Modellen und von Vertex AI gehosteten Modellen wechseln, um Ausgabe, Kosten und Skalierbarkeit zu vergleichen, ohne den vorhandenen Code ändern zu müssen. Wenn Sie noch keine OpenAI-Bibliotheken nutzen, empfehlen wir, das Google Gen AI SDK zu verwenden. Informationen zum Migrieren von vorhandenem OpenAI SDK-Code zur Verwendung des Google Gen AI SDK finden Sie unter Von OpenAI SDK zu Google Gen AI SDK migrieren.

Unterstützte Modelle

Die Chat Completions API unterstützt sowohl Gemini-Modelle als auch ausgewählte selbst bereitgestellte Modelle aus Model Garden.

Gemini-Modelle

Die folgenden Modelle unterstützen die Chat Completions API:

Selbst bereitgestellte Modelle aus Model Garden

Das Hugging Face Text Generation Interface (HF TGI) und die vordefinierten vLLM-Container von Vertex AI Model Garden unterstützen die Chat Completions API. Allerdings unterstützt nicht jedes Modell, das in diesen Containern bereitgestellt wird, die Chat Completions API. Die folgende Tabelle enthält die beliebtesten unterstützten Modelle nach Container:

HF TGI

vLLM

Unterstützte Parameter

Für Google-Modelle unterstützt die Chat Completions API die folgenden OpenAI-Parameter. Eine Beschreibung der einzelnen Parameter finden Sie in der OpenAI-Dokumentation unter Creating chat completions. Die Parameterunterstützung für Drittanbietermodelle variiert je nach Modell. Welche Parameter unterstützt werden, können Sie in der Dokumentation des Modells nachlesen.

messages
  • System message
  • User message: Die Typen text und image_url werden unterstützt. Der Typ image_url unterstützt Bilder, die in einem Cloud Storage-URI oder einer Base64-Codierung im Format "data:<MIME-TYPE>;base64,<BASE64-ENCODED-BYTES>" gespeichert sind. Informationen dazu, wie Sie einen Cloud Storage-Bucket erstellen und eine Datei darin hochladen, finden Sie unter Objektspeicher entdecken
  • Assistant message
  • Tool message
  • Function message: dieses Feld ist veraltet, wird aber für Abwärtskompatibilität unterstützt.
model
detail Bei Modellen, die älter als Gemini 3 sind, muss das Feld detail für alle Nachrichten und Inhalte einheitlich sein (es gilt auf Anfrageebene). Bei Gemini 3 und höher entspricht dies einer `media_resolution` auf Teilebene. Weitere Informationen finden Sie unter Media Resolution.
max_completion_tokens Alias für max_tokens.
modalities Unterstützt audio, image und text.
max_tokens
n
frequency_penalty
presence_penalty
reasoning_effort Konfiguriert, wie viel Zeit und wie viele Tokens für eine Antwort verwendet werden.
  • low: 1024
  • medium: 8192
  • high: 24576
Da die Antwort keine Gedanken enthält, kann nur reasoning_effort oder extra_body.google.thinking_config angegeben werden.
response_format
  • json_object: Wird als Übergabe von „application/json“ an die Gemini API interpretiert.
  • json_schema. Vollständig rekursive Schemas werden nicht unterstützt. additional_properties wird unterstützt.
  • text: Wird als Übergabe von „text/plain“ an die Gemini API interpretiert.
  • Jeder andere MIME-Typ wird unverändert an das Modell übergeben, z. B. die direkte Übergabe von „application/json“.
seed Entspricht GenerationConfig.seed.
stop
stream
temperature
top_p
tools
  • type
  • function
    • name
    • description
    • parameters: Parameter werden mithilfe der OpenAPI-Spezifikation angegeben. Dies unterscheidet sich vom OpenAI-Parameterfeld, das als JSON-Schemaobjekt beschrieben wird. Informationen zu den Unterschieden bei den Schlüsselwörtern zwischen OpenAPI und JSON Schema finden Sie im OpenAPI-Leitfaden.
tool_choice
  • none
  • auto
  • required: Entspricht dem Modus ANY in der FunctionCallingConfig.
  • validated: Entspricht dem Modus VALIDATED in der FunctionCallingConfig. Dies ist Google-spezifisch.
web_search_options Entspricht dem GoogleSearch-Tool. Es werden keine untergeordneten Optionen unterstützt.
function_call Dieses Feld ist veraltet, wird aber für Abwärtskompatibilität unterstützt.
functions Dieses Feld ist veraltet, wird aber für Abwärtskompatibilität unterstützt.

Wenn Sie einen nicht unterstützten Parameter übergeben, wird er ignoriert.

Multimodale Eingabeparameter

Die Chat Completions API unterstützt ausgewählte multimodale Eingaben.

input_audio
  • data:: Beliebiger URI oder gültiges Blob-Format. Wir unterstützen alle Blob-Typen, einschließlich Bilder, Audio und Video. Alles, was von GenerateContent unterstützt wird (HTTP, Cloud Storage usw.).
  • format: OpenAI unterstützt sowohl wav (audio/wav) als auch mp3 (audio/mp3). Mit Gemini werden alle gültigen MIME-Typen unterstützt.
image_url
  • data: Wie bei input_audio wird jeder URI oder jedes gültige Blob-Format unterstützt.
    Beachten Sie, dass image_url als URL standardmäßig den MIME-Typ image/* hat und image_url als BLOB-Daten als beliebige multimodale Eingabe verwendet werden kann.
  • detail: Ähnlich wie bei der Media-Auflösung wird hier die maximale Anzahl von Tokens pro Bild für die Anfrage festgelegt. Während das Feld von OpenAI pro Bild gilt, wird bei Gemini dasselbe Detail für die gesamte Anfrage erzwungen. Wenn Sie mehrere Detailtypen in einer Anfrage übergeben, wird ein Fehler ausgegeben.

Im Allgemeinen kann der Parameter data ein URI oder eine Kombination aus MIME-Typ und Base64-codierten Byte in der Form "data:<MIME-TYPE>;base64,<BASE64-ENCODED-BYTES>" sein. Eine vollständige Liste der MIME-Typen finden Sie unter GenerateContent. Weitere Informationen zur base64-Codierung von OpenAI finden Sie in der Dokumentation von OpenAI.

Informationen zur Verwendung finden Sie in unseren Beispielen für multimodale Eingaben.

Gemini-spezifische Parameter

Gemini unterstützt mehrere Funktionen, die in OpenAI-Modellen nicht verfügbar sind. Diese Funktionen können weiterhin als Parameter übergeben werden, müssen aber in einem extra_content oder extra_body enthalten sein, da sie sonst ignoriert werden.

extra_body Features

Fügen Sie ein google-Feld für alle Gemini-spezifischen extra_body-Funktionen ein.

{
  ...,
  "extra_body": {
     "google": {
       ...,
       // Add extra_body features here.
     }
   }
}
safety_settings Das entspricht dem Gemini-SafetySetting.
cached_content Dies entspricht dem Feld „Gemini“ generateContent.cached_content.
thinking_config Das entspricht dem Gemini-GenerationConfig.ThinkingConfig.
thought_tag_marker Wird verwendet, um die Überlegungen eines Modells von seinen Antworten zu trennen, wenn der Thinking-Modus verfügbar ist.
Wenn nicht angegeben, werden keine Tags für die Gedanken des Modells zurückgegeben. Falls vorhanden, werden in nachfolgenden Anfragen die Gedanken-Tags entfernt und die Gedanken entsprechend für den Kontext markiert. So bleibt der richtige Kontext für nachfolgende Anfragen erhalten.
stream_function_call_arguments Gibt Funktionsaufrufargumente als JSON-Segmente zurück. Weitere Informationen finden Sie unter Argumente für Streaming-Funktionsaufrufe.
tools Geben Sie Tools ähnlich wie „GenerateContent“ an. Weitere Informationen finden Sie unter Tool.
media_resolution Geben Sie eine Media-Auflösung auf Anfrageebene an, die der von `GenerateContent` ähnelt. Weitere Informationen finden Sie unter MediaResolution.

extra_content Features

Mit extra_content können Sie Gemini-spezifische Inhalte angeben, die nicht ignoriert werden sollen.

Fügen Sie ein google-Feld für alle Gemini-spezifischen extra_content-Funktionen ein.

{
  ...,
  "extra_content": {
     "google": {
       ...,
       // Add extra_content features here.
     }
   }
}
thought Dieses Feld gibt explizit an, ob es sich bei einem Feld um einen Gedanken handelt, und hat Vorrang vor thought_tag_marker. Es hilft, zwischen verschiedenen Schritten in einem Denkprozess zu unterscheiden, insbesondere in Szenarien, in denen Tools verwendet werden und Zwischenschritte fälschlicherweise für endgültige Antworten gehalten werden könnten. Wenn Sie bestimmte Teile der Eingabe als Gedanken kennzeichnen, können Sie das Modell anweisen, sie als interne Überlegungen und nicht als Antworten für Nutzer zu behandeln.
thought_signature Ein Bytefeld, das eine Gedanken-Signatur zur Validierung der vom Modell zurückgegebenen Gedanken enthält. Dieses Feld unterscheidet sich von thought, das ein boolesches Feld ist. Weitere Informationen finden Sie unter Gedankensignaturen.
parts Spezifisch für eine Tool-Nachricht, um multimodale Funktionsantwortteile an das Modell zurückzugeben. Weitere Informationen finden Sie unter FunctionResponsePart und Multimodale Funktionsantwort.

Nächste Schritte