MaaS-APIs für offene Modelle aufrufen

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 Server-Sent Events (SSE), um die Antwort schrittweise zu streamen.

Auf dieser Seite erfahren Sie, 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.

Hinweise

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.

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. 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 (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  5. 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 (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  8. Rufen Sie die Model Garden-Modellkarte für das Modell auf, das Sie verwenden möchten, und klicken Sie auf Aktivieren, um das Modell für die Verwendung in Ihrem Projekt zu aktivieren.

    Zu Model Garden

  9. 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 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.

    Bevor Sie dieses Beispiel ausführen, müssen Sie die Umgebungsvariable OPENAI_BASE_URL festlegen. 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 user oder assistant angeben. Die erste Nachricht muss die Rolle user verwenden. Die Modelle arbeiten mit abwechselnden user- und assistant-Runden. Wenn die endgültige Nachricht die Rolle assistant verwendet, wird der Antwortinhalt direkt vom Inhalt dieser Nachricht aus fortgesetzt. Damit können Sie einen Teil der Antwort des Modells einschränken.
    • CONTENT: Der Inhalt, z. B. Text der user- oder assistant-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 user oder assistant angeben. Die erste Nachricht muss die Rolle user verwenden. Die Modelle arbeiten mit abwechselnden user- und assistant-Runden. Wenn die endgültige Nachricht die Rolle assistant verwendet, wird der Antwortinhalt direkt vom Inhalt dieser Nachricht aus fortgesetzt. Damit können Sie einen Teil der Antwort des Modells einschränken.
    • CONTENT: Der Inhalt, z. B. Text der user- oder assistant-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 true fest, um die Antwort zu streamen, und false, 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 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.

    Bevor Sie dieses Beispiel ausführen, müssen Sie die Umgebungsvariable OPENAI_BASE_URL festlegen. 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 user oder assistant angeben. Die erste Nachricht muss die Rolle user verwenden. Die Modelle arbeiten mit abwechselnden user- und assistant-Runden. Wenn die endgültige Nachricht die Rolle assistant verwendet, wird der Antwortinhalt direkt vom Inhalt dieser Nachricht aus fortgesetzt. Damit können Sie einen Teil der Antwort des Modells einschränken.
    • CONTENT: Der Inhalt, z. B. Text der user- oder assistant-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 user oder assistant angeben. Die erste Nachricht muss die Rolle user verwenden. Die Modelle arbeiten mit abwechselnden user- und assistant-Runden. Wenn die endgültige Nachricht die Rolle assistant verwendet, wird der Antwortinhalt direkt vom Inhalt dieser Nachricht aus fortgesetzt. Damit können Sie einen Teil der Antwort des Modells einschränken.
    • CONTENT: Der Inhalt, z. B. Text der user- oder assistant-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 true fest, um die Antwort zu streamen, und false, 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 von der von Ihnen angegebenen Region aus bearbeitet. 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 denen der regionalen Endpunkte unterscheiden. Weitere Informationen finden Sie auf der entsprechenden Seite des Drittanbietermodells.

    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-Endpunkte 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