In diesem Leitfaden finden Sie Beispiele für die Verwendung der OpenAI-kompatiblen Chat Completions API mit Gemini-Modellen. Die folgenden Themen werden behandelt: Sie haben zwei Möglichkeiten, die Chat Completions API aufzurufen: Sie können Anfragen als Nicht-Streaming- oder Streaming-Anfragen senden. Im folgenden Beispiel wird gezeigt, wie eine Nicht-Streaming-Anfrage gesendet wird.
Bevor Sie dieses Beispiel anwenden, folgen Sie den Python-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken.
Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Python API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein.
Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Im folgenden Beispiel wird gezeigt, wie eine Streaminganfrage durch Festlegen von
Bevor Sie dieses Beispiel anwenden, folgen Sie den Python-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken.
Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Python API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein.
Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Im folgenden Beispiel wird gezeigt, wie eine multimodale Anfrage mit Text und einem Bild gesendet wird.
Bevor Sie dieses Beispiel anwenden, folgen Sie den Python-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken.
Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Python API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein.
Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Im folgenden Beispiel wird gezeigt, wie eine Nicht-Streaming-Anfrage an ein selbst bereitgestelltes Modell gesendet wird.
Bevor Sie dieses Beispiel anwenden, folgen Sie den Python-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken.
Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Python API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein.
Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Im folgenden Beispiel wird gezeigt, wie eine Streaminganfrage an ein selbst bereitgestelltes Modell gesendet wird.
Bevor Sie dieses Beispiel anwenden, folgen Sie den Python-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken.
Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Python API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein.
Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Mit dem Feld REST API: Wenn Sie Parameter über die REST API übergeben möchten, fügen Sie sie in ein Python SDK: Wenn Sie Parameter mit dem Python SDK übergeben möchten, geben Sie sie in einem Dictionary für das Argument Sie können das Feld Mit einem Pro Nachricht in einem Pro Tool-Aufruf Mit diesen Die Chat Completions API unterstützt eine Vielzahl von multimodalen Eingaben, darunter Audio und Video. Mit dem Parameter
extra_body
-Beispiele:Hier wird erläutert, wie Sie zusätzliche Google-spezifische Parameter in Ihren Anfragen übergeben.extra_content
-Beispiele:Hier wird gezeigt, wie Nachrichten oder Tool-Aufrufen zusätzliche Inhalte hinzugefügt werden.curl
:Hier finden Sie direkte curl
-Beispiele für erweiterte Anwendungsfälle wie multimodale Eingabe.
Methode
Beschreibung
Anwendungsfall
Verwaltetes Gemini-Modell aufrufen
Anfragen an einen von Google verwalteten Endpunkt für ein bestimmtes Gemini-Modell senden
Am besten geeignet für allgemeine Anwendungsfälle, schnelle Einrichtung und Zugriff auf die neuesten Google-Modelle ohne Infrastrukturverwaltung.
Selbst bereitgestelltes Modell aufrufen
Senden Sie Anfragen an einen Endpunkt, den Sie durch die Bereitstellung eines Modells in Vertex AI erstellen.
Ideal, wenn Sie einen dedizierten Endpunkt für ein feinabgestimmtes Modell benötigen oder bestimmte Konfigurationen erforderlich sind, die am Standardendpunkt nicht verfügbar sind.
Gemini mit der Chat Completions API aufrufen
Anfragetyp
Beschreibung
Vorteile
Nachteile
Nicht-Streaming
Die vollständige Antwort wird generiert und dann in einem einzigen Block zurückgesendet.
Einfachere Implementierung, da die vollständige Antwort sofort verfügbar ist.
Höhere wahrgenommene Latenz, da der Nutzer wartet, bis die gesamte Antwort generiert wurde.
Streaming
Die Antwort wird in kleinen Teilen zurückgesendet, während sie generiert wird. Wenn Sie Streaming aktivieren möchten, legen Sie
"stream": true
im Anfragetext fest.Geringere wahrgenommene Latenz; bietet eine interaktivere Erfahrung, da die Antwort inkrementell angezeigt wird.
Erfordert eine komplexere clientseitige Logik zur Verarbeitung des eingehenden Datenstroms.
Nicht-Streaming-Anfrage senden
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/endpoints/openapi/chat/completions \
-d '{
"model": "google/${MODEL_ID}",
"messages": [{
"role": "user",
"content": "Write a story about a magic backpack."
}]
}'
Python
Streaminganfrage senden
"stream": true
gesendet wird.REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/endpoints/openapi/chat/completions \
-d '{
"model": "google/${MODEL_ID}",
"stream": true,
"messages": [{
"role": "user",
"content": "Write a story about a magic backpack."
}]
}'
Python
Prompt und Bild an die Gemini API in Vertex AI senden
Python
Selbst bereitgestelltes Modell mit der Chat Completions API aufrufen
Nicht-Streaming-Anfrage senden
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/global/endpoints/${ENDPOINT}/chat/completions \
-d '{
"messages": [{
"role": "user",
"content": "Write a story about a magic backpack."
}]
}'
Python
Streaminganfrage senden
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/global/endpoints/${ENDPOINT}/chat/completions \
-d '{
"stream": true,
"messages": [{
"role": "user",
"content": "Write a story about a magic backpack."
}]
}'
Python
Beispiele für
extra_body
extra_body
können Sie Google-spezifische Parameter in Ihrer Anfrage übergeben.
google
-Objekt ein.{
...,
"extra_body": {
"google": {
...,
"thought_tag_marker": "..."
}
}
}
extra_body
an.client.chat.completions.create(
...,
extra_body = {
'extra_body': { 'google': { ... } }
},
)
Beispiele für
extra_content
extra_content
mit der REST API verwenden, um Nachrichten oder Tool-Aufrufen zusätzliche Informationen hinzuzufügen.
content
-Feld vom Typ „String“{
"messages": [
{ "role": "...", "content": "...", "extra_content": { "google": { ... } } }
]
}
content
-Feld mit mehreren Teilen{
"messages": [
{
"role": "...",
"content": [
{ "type": "...", ..., "extra_content": { "google": { ... } } }
]
}
}
{
"messages": [
{
"role": "...",
"tool_calls": [
{
...,
"extra_content": { "google": { ... } }
}
]
}
]
}
Beispielanfragen für
curl
curl
-Anfragen können Sie direkt mit der API interagieren, ohne ein SDK zu verwenden.thinking_config
mit extra_body
verwendencurl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/us-central1/endpoints/openapi/chat/completions \
-d '{ \
"model": "google/gemini-2.5-flash-preview-04-17", \
"messages": [ \
{ "role": "user", \
"content": [ \
{ "type": "text", \
"text": "Are there any primes number of the form n*ceil(log(n))" \
}] }], \
"extra_body": { \
"google": { \
"thinking_config": { \
"include_thoughts": true, "thinking_budget": 10000 \
}, \
"thought_tag_marker": "think" } }, \
"stream": true }'
Multimodale Anfragen
Bilddaten mit
image_url
übergebencurl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1/projects/${PROJECT}/locations/us-central1/endpoints/openapi/chat/completions \
-d '{ \
"model": "google/gemini-2.0-flash-001", \
"messages": [{ "role": "user", "content": [ \
{ "type": "text", "text": "Describe this image" }, \
{ "type": "image_url", "image_url": "gs://cloud-samples-data/generative-ai/image/scones.jpg" }] }] }'
Audiodaten mit
input_audio
übergebencurl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1/projects/${PROJECT}/locations/us-central1/endpoints/openapi/chat/completions \
-d '{ \
"model": "google/gemini-2.0-flash-001", \
"messages": [ \
{ "role": "user", \
"content": [ \
{ "type": "text", "text": "Describe this: " }, \
{ "type": "input_audio", "input_audio": { \
"format": "audio/mp3", \
"data": "gs://cloud-samples-data/generative-ai/audio/pixel.mp3" } }] }] }'
Strukturierte Ausgabe
response_format
können Sie eine strukturierte JSON-Ausgabe vom Modell anfordern.Beispiel mit dem Python SDK
from pydantic import BaseModel
from openai import OpenAI
client = OpenAI()
class CalendarEvent(BaseModel):
name: str
date: str
participants: list[str]
completion = client.beta.chat.completions.parse(
model="google/gemini-2.5-flash-preview-04-17",
messages=[
{"role": "system", "content": "Extract the event information."},
{"role": "user", "content": "Alice and Bob are going to a science fair on Friday."},
],
response_format=CalendarEvent,
)
print(completion.choices[0].message.parsed)
Nächste Schritte
Beispiele
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2025-08-19 (UTC).