Viele offene Modelle in Vertex AI bieten vollständig verwaltete und serverlose Modelle als APIs über die Vertex AI Chat Completions API. Für diese Modelle muss keine Infrastruktur bereitgestellt oder verwaltet werden.
Sie können Ihre Antworten streamen, um die vom Endnutzer wahrgenommene Latenz zu reduzieren. Eine gestreamte Antwort verwendet vom Server gesendete Ereignisse (SSE, Server-Sent Events), um die Antwort schrittweise zu streamen.
Auf dieser Seite wird beschrieben, wie Sie Streaming- und Nicht-Streaming-Aufrufe an offene Modelle senden, die die OpenAI Chat Completions API unterstützen. Llama-spezifische Überlegungen finden Sie unter Llama-Vorhersagen anfordern.
Hinweis
Führen Sie die folgenden Schritte aus, um offene Modelle mit Vertex AI zu verwenden. Die Vertex AI API (aiplatform.googleapis.com) muss aktiviert sein, um Vertex AI verwenden zu können. Wenn Sie bereits ein Projekt mit aktivierter Vertex AI API haben, können Sie dieses Projekt verwenden, anstatt ein neues Projekt zu erstellen.
- Melden Sie sich in Ihrem Google Cloud Konto an. Wenn Sie noch nicht mit Google Cloudvertraut sind, erstellen Sie ein Konto, um die Leistung unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Vertex AI API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Vertex AI API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.- Rufen Sie die Model Garden-Modellkarte für das Modell auf, das Sie verwenden möchten, und klicken Sie dann auf Aktivieren , um das Modell für die Verwendung in Ihrem Projekt zu aktivieren.
Streaming-Aufruf an ein offenes Modell senden
Im folgenden Beispiel wird ein Streaming-Aufruf an ein offenes Modell gesendet:
Python
Bevor Sie dieses Beispiel anwenden, folgen Sie der Python Einrichtungsanleitung 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.
Legen Sie vor dem Ausführen dieses Beispiels die Umgebungsvariable OPENAI_BASE_URL fest.
Weitere Informationen finden Sie unter Authentifizierung und Anmeldedaten.
from openai import OpenAI client = OpenAI() stream = client.chat.completions.create( model="MODEL", messages=[{"role": "ROLE", "content": "CONTENT"}], max_tokens=MAX_OUTPUT_TOKENS, stream=True, ) for chunk in stream: print(chunk.choices[0].delta.content or "", end="")
- MODEL: Der Modellname, den Sie verwenden möchten,
z. B.
deepseek-ai/deepseek-v3.1-maas. - ROLE: Die einer
Nachricht zugeordnete Rolle. Sie können
useroderassistantangeben. Die erste Nachricht muss die Rolleuserverwenden. Die Modelle arbeiten mit abwechselndenuserundassistantRunden. Wenn die endgültige Nachricht die Rolleassistantverwendet, wird der Antwortinhalt direkt vom Inhalt dieser Nachricht aus fortgesetzt. Damit können Sie diesen Teil der Antwort des Modells einschränken. - CONTENT: Der Inhalt, z. B.
Text der
useroderassistant-Nachricht. - MAX_OUTPUT_TOKENS: 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.
REST
Nachdem Sie Ihre Umgebung eingerichtet haben, können Sie mit REST einen Text-Prompt testen. Im folgenden Beispiel wird eine Anfrage an den Publisher gesendet Modellendpunkt zu erstellen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION: Eine Region, die offene Modelle unterstützt.
- MODEL: Der Modellname, den Sie verwenden möchten,
z. B.
deepseek-ai/deepseek-v2. - ROLE: Die einer
Nachricht zugeordnete Rolle. Sie können
useroderassistantangeben. Die erste Nachricht muss die Rolleuserverwenden. Die Modelle arbeiten mit abwechselndenuserundassistantRunden. Wenn die endgültige Nachricht die Rolleassistantverwendet, wird der Antwortinhalt direkt vom Inhalt dieser Nachricht aus fortgesetzt. Damit können Sie diesen Teil der Antwort des Modells einschränken. - CONTENT: Der Inhalt, z. B.
Text der
useroderassistant-Nachricht. - MAX_OUTPUT_TOKENS: 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.
- STREAM: Ein boolescher Wert, mit dem angegeben wird, ob die Antwort gestreamt wird oder nicht. Streamen Sie Ihre Antwort, um die
vom Endnutzer wahrgenommene Latenz zu reduzieren. Legen Sie
truefest, um die Antwort zu streamen undfalsefest, um die Antwort auf einmal zurückzugeben.
HTTP-Methode und URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions
JSON-Text der Anfrage:
{
"model": "MODEL",
"messages": [
{
"role": "ROLE",
"content": "CONTENT"
}
],
"max_tokens": MAX_OUTPUT_TOKENS,
"stream": true
}
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/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/v1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions" | Select-Object -Expand Content
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Nicht-Streaming-Aufruf an ein offenes Modell senden
Im folgenden Beispiel wird ein Nicht-Streaming-Aufruf an ein offenes Modell gesendet:
Python
Bevor Sie dieses Beispiel anwenden, folgen Sie der Python Einrichtungsanleitung 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.
Legen Sie vor dem Ausführen dieses Beispiels die Umgebungsvariable OPENAI_BASE_URL fest.
Weitere Informationen finden Sie unter Authentifizierung und Anmeldedaten.
from openai import OpenAI client = OpenAI() completion = client.chat.completions.create( model="MODEL", messages=[{"role": "ROLE", "content": "CONTENT"}], max_tokens=MAX_OUTPUT_TOKENS, stream=False, ) print(completion.choices[0].message)
- MODEL: Der Modellname, den Sie verwenden möchten,
z. B.
deepseek-ai/deepseek-v3.1-maas. - ROLE: Die einer
Nachricht zugeordnete Rolle. Sie können
useroderassistantangeben. Die erste Nachricht muss die Rolleuserverwenden. Die Modelle arbeiten mit abwechselndenuserundassistantRunden. Wenn die endgültige Nachricht die Rolleassistantverwendet, wird der Antwortinhalt direkt vom Inhalt dieser Nachricht aus fortgesetzt. Damit können Sie diesen Teil der Antwort des Modells einschränken. - CONTENT: Der Inhalt, z. B.
Text der
useroderassistant-Nachricht. - MAX_OUTPUT_TOKENS: 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.
REST
Nachdem Sie Ihre Umgebung eingerichtet haben, können Sie mit REST einen Text-Prompt testen. Im folgenden Beispiel wird eine Anfrage an den Publisher gesendet Modellendpunkt zu erstellen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION: Eine Region, die offene Modelle unterstützt.
- MODEL: Der Modellname, den Sie verwenden möchten,
z. B.
deepseek-ai/deepseek-v2. - ROLE: Die einer
Nachricht zugeordnete Rolle. Sie können
useroderassistantangeben. Die erste Nachricht muss die Rolleuserverwenden. Die Modelle arbeiten mit abwechselndenuserundassistantRunden. Wenn die endgültige Nachricht die Rolleassistantverwendet, wird der Antwortinhalt direkt vom Inhalt dieser Nachricht aus fortgesetzt. Damit können Sie diesen Teil der Antwort des Modells einschränken. - CONTENT: Der Inhalt, z. B.
Text der
useroderassistant-Nachricht. - MAX_OUTPUT_TOKENS: 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.
- STREAM: Ein boolescher Wert, mit dem angegeben wird, ob die Antwort gestreamt wird oder nicht. Streamen Sie Ihre Antwort, um die
vom Endnutzer wahrgenommene Latenz zu reduzieren. Legen Sie
truefest, um die Antwort zu streamen undfalsefest, um die Antwort auf einmal zurückzugeben.
HTTP-Methode und URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions
JSON-Text der Anfrage:
{
"model": "MODEL",
"messages": [
{
"role": "ROLE",
"content": "CONTENT"
}
],
"max_tokens": MAX_OUTPUT_TOKENS,
"stream": false
}
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/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/v1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions" | Select-Object -Expand Content
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
Regionale und globale Endpunkte
Bei regionalen Endpunkten werden Anfragen aus der von Ihnen angegebenen Region verarbeitet. Wenn Sie Anforderungen an den Datenstandort haben oder ein Modell den globalen Endpunkt nicht unterstützt, verwenden Sie die regionalen Endpunkte.
Wenn Sie den globalen Endpunkt verwenden, kann Google Ihre Anfragen in jeder Region verarbeiten und bereitstellen, die vom verwendeten Modell unterstützt wird. In einigen Fällen kann dies zu einer höheren Latenz führen. Der globale Endpunkt trägt dazu bei, die allgemeine Verfügbarkeit zu verbessern und Fehler zu reduzieren.
Bei Verwendung des globalen Endpunkts gibt es keinen Preisunterschied zu den regionalen Endpunkten. Die Kontingente für den globalen Endpunkt und die unterstützten Modellfunktionen können sich jedoch von den regionalen Endpunkten unterscheiden. Weitere Informationen finden Sie auf der entsprechenden Seite des Drittanbieters.
Globalen Endpunkt angeben
Wenn Sie den globalen Endpunkt verwenden möchten, legen Sie die Region auf global fest.
Die Anfrage-URL für einen curl-Befehl hat beispielsweise das folgende Format:
https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/endpoints/openapi
Für das Vertex AI SDK ist ein regionaler Endpunkt die Standardeinstellung. Legen Sie die Region auf GLOBAL fest, um den globalen Endpunkt zu verwenden.
Nutzung globaler API-Endpunkt einschränken
Um die Verwendung regionaler Endpunkte zu erzwingen, können Sie die Einschränkung der Organisationsrichtlinie constraints/gcp.restrictEndpointUsage verwenden, um Anfragen an den globalen API-Endpunkt zu blockieren. Weitere Informationen finden Sie unter
Endpunktnutzung einschränken.
Nächste Schritte
- Erfahren Sie, wie Sie Funktionsaufrufe verwenden.
- Erfahren Sie mehr über strukturierte Ausgabe.
- Erfahren Sie mehr über Batchvorhersagen.