OpenAI-Bibliotheken mit Vertex AI verwenden

In diesem Dokument wird beschrieben, wie Sie mit der OpenAI-kompatiblen Chat Completions API mit Vertex AI-Modellen interagieren. In diesem Dokument werden folgende Themen behandelt:

  • Unterstützte Modelle:Hier erfahren Sie, welche Gemini- und selbst bereitgestellten Model Garden-Modelle mit der API kompatibel sind.
  • Unterstützte Parameter:Sehen Sie sich die Liste der standardmäßigen OpenAI-Parameter an, die Sie verwenden können.
  • Multimodale Eingabeparameter:Hier erfahren Sie, wie Sie multimodale Eingaben wie Audio und Bilder verwenden.
  • Gemini-spezifische Parameter:Hier erfahren Sie, wie Sie Gemini-spezifische Funktionen über die Felder extra_body und extra_part verwenden.

Die Chat Completions API ist ein OpenAI-kompatibler Endpunkt, mit dem Sie die Python- und REST-Bibliotheken von OpenAI verwenden können, um mit Gemini in Vertex AI zu interagieren. Wenn Sie bereits die OpenAI-Bibliotheken verwenden, können Sie mit dieser API zwischen OpenAI-Modellen und in Vertex AI gehosteten Modellen wechseln, um Ausgabe, Kosten und Skalierbarkeit zu vergleichen, ohne den vorhandenen Code ändern zu müssen. Wenn Sie die OpenAI-Bibliotheken nicht verwenden, empfehlen wir die Verwendung des Google Gen AI SDK.

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 Chat Completions API unterstützt die folgenden Gemini-Modelle:

Selbst bereitgestellte Modelle aus Model Garden

Die Hugging Face Text Generation Interface (HF TGI)- und vordefinierten vLLM-Container von Vertex AI Model Garden unterstützen die Chat Completions API. Allerdings wird die Chat Completions API nicht von allen Modellen unterstützt, die in diesen Containern bereitgestellt werden. 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

Wenn Sie Funktionen verwenden möchten, die von Gemini, aber nicht von OpenAI-Modellen unterstützt werden, übergeben Sie sie als Parameter in einem extra_content- oder extra_body-Feld. Wenn Sie diese Funktionen außerhalb dieser Felder übergeben, werden sie ignoriert.

extra_body Features

Wenn Sie Gemini-spezifische extra_body-Funktionen verwenden möchten, fügen Sie sie in ein google-Feld 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. Nur für Modelle mit der Funktion „Thinking“ verfügbar.
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 dem Feld extra_part können Sie zusätzliche Einstellungen für jede Part angeben. Wenn Sie Gemini-spezifische extra_part-Funktionen verwenden möchten, fügen Sie sie in ein google-Feld 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