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.

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 wird die Chat Completions API nicht von jedem Modell unterstützt, das in diesen Containern bereitgestellt wird. 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 als Cloud Storage-URI oder als 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 Die Option detail wird nicht unterstützt.
  • Assistant message
  • Tool message
  • Function message: dieses Feld ist veraltet, wird aber für Abwärtskompatibilität unterstützt.
model
max_completion_tokens Alias für max_tokens.
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 Überlegungen 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 zwischen OpenAPI- und JSON-Schema-Schlüsselwörtern 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. Das ist Google-spezifisch.
web_search_options Entspricht dem GoogleSearch-Tool. Unteroptionen werden nicht 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/* verwendet 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 Dies entspricht SafetySetting von Gemini.
cached_content Dies entspricht GenerateContentRequest.cached_content von Gemini.
thinking_config Dies entspricht GenerationConfig.ThinkingConfig von Gemini.
thought_tag_marker Wird verwendet, um die Überlegungen eines Modells von seinen Antworten zu trennen, wenn die Funktion „Thinking“ verfügbar ist.
Wenn nicht angegeben, werden keine Tags für die Überlegungen des Modells zurückgegeben. Falls vorhanden, werden bei 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.

extra_part Features

Mit extra_part können Sie zusätzliche Einstellungen auf Part-Ebene angeben.

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

{
  ...,
  "extra_part": {
     "google": {
       ...,
       // Add extra_part features here.
     }
   }
}
extra_content Ein Feld zum Hinzufügen von Gemini-spezifischen Inhalten, die nicht ignoriert werden sollten.
thought Damit wird explizit angegeben, ob ein Feld ein Gedanke ist. Diese Angabe hat Vorrang vor thought_tag_marker. Sie sollte verwendet werden, um anzugeben, ob ein Tool-Aufruf Teil eines Gedankens ist oder nicht.

Nächste Schritte