Authentifizieren

Installieren Sie das OpenAI SDK, um die OpenAI Python-Bibliotheken zu verwenden:

pip install openai

Für die Authentifizierung bei der Chat Completions API haben Sie folgende Möglichkeiten: Sie können entweder die Client-Einrichtung ändern oder die Umgebungskonfiguration ändern, um die Google-Authentifizierung und einen Agent Platform-Endpunkt zu verwenden. Wählen Sie die einfachere Methode aus und folgen Sie der Anleitung zur Einrichtung, je nachdem, ob Sie Gemini-Modelle oder selbst bereitgestellte Model Garden-Modelle aufrufen möchten.

Bestimmte Modelle in Model Garden und unterstützte Hugging Face-Modelle müssen zuerst auf einem Gemini Enterprise Agent Platform-Endpunkt bereitgestellt werden , bevor sie Anfragen verarbeiten können. Wenn Sie diese selbst bereitgestellten Modelle über die Chat Completions API aufrufen, müssen Sie die Endpunkt-ID angeben. Verwenden Sie den gcloud ai endpoints list Befehl, um Ihre vorhandenen Agent Platform-Endpunkte aufzulisten.

Client-Setup

Um Google-Anmeldedaten programmatisch in Python abzurufen, können Sie das google-auth Python SDK verwenden:

pip install google-auth requests

Python

Bevor Sie dieses Beispiel anwenden, folgen Sie der Python Anleitung für die Einrichtung in der Agent Platform-Kurzanleitung zur Verwendung von Clientbibliotheken.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei der Agent Platform zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

import openai

from google.auth import default
import google.auth.transport.requests

# TODO(developer): Update and un-comment below lines
# project_id = "PROJECT_ID"
# location = "us-central1"

# Programmatically get an access token
credentials, _ = default(scopes=["https://www.googleapis.com/auth/cloud-platform"])
credentials.refresh(google.auth.transport.requests.Request())
# Note: the credential lives for 1 hour by default (https://cloud.google.com/docs/authentication/token-types#at-lifetime); after expiration, it must be refreshed.

##############################
# Choose one of the following:
##############################

# If you are calling a Gemini model, set the ENDPOINT_ID variable to use openapi.
ENDPOINT_ID = "openapi"

# If you are calling a self-deployed model from Model Garden, set the
# ENDPOINT_ID variable and set the client's base URL to use your endpoint.
# ENDPOINT_ID = "YOUR_ENDPOINT_ID"

# OpenAI Client
client = openai.OpenAI(
    base_url=f"https://{location}-aiplatform.googleapis.com/v1/projects/{project_id}/locations/{location}/endpoints/{ENDPOINT_ID}",
    api_key=credentials.token,
)

Standardmäßig sind Zugriffstokens für Dienstkonten 1 Stunde lang gültig. Sie können die Lebensdauer von Zugriffstokens für Dienstkonten verlängern oder das Token regelmäßig aktualisieren und die openai.api_key Variable updaten.

Umgebungsvariablen

Installieren Sie die Google Cloud CLI. Die OpenAI-Bibliothek kann die Umgebungsvariablen OPENAI_API_KEY und OPENAI_BASE_URL lesen, um die Authentifizierung und den Endpunkt im Standardclient zu ändern. Legen Sie die folgenden Variablen fest:

$ export PROJECT_ID=PROJECT_ID
$ export LOCATION=LOCATION
$ export OPENAI_API_KEY="$(gcloud auth application-default print-access-token)"

Wenn Sie ein Gemini-Modell aufrufen möchten, legen Sie die Variable MODEL_ID fest und verwenden Sie den Endpunkt openapi:

$ export MODEL_ID=MODEL_ID
$ export OPENAI_BASE_URL="https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/endpoints/openapi"

Wenn Sie ein selbst bereitgestelltes Modell aus Model Garden aufrufen möchten, legen Sie die Variable ENDPOINT fest und verwenden Sie diese stattdessen in Ihrer URL:

$ export ENDPOINT=ENDPOINT_ID
$ export OPENAI_BASE_URL="https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/endpoints/${ENDPOINT}"

Initialisieren Sie als Nächstes den Client:

client = openai.OpenAI()

Die Gemini Chat Completions API verwendet OAuth zur Authentifizierung mit einem kurzlebigen Zugriffstoken. Standardmäßig sind Zugriffstokens für Dienstkonten 1 Stunde lang gültig. Sie können die Lebensdauer von Zugriffstokens für Dienstkonten verlängern oder das Token regelmäßig aktualisieren und die openai.api_key Variable updaten.

Anmeldedaten aktualisieren

Das folgende Beispiel zeigt, wie Sie Ihre Anmeldedaten bei Bedarf automatisch aktualisieren:

Python

from typing import Any

import google.auth
import google.auth.transport.requests
import openai


class OpenAICredentialsRefresher:
    def __init__(self, **kwargs: Any) -> None:
        # Set a placeholder key here
        self.client = openai.OpenAI(**kwargs, api_key="PLACEHOLDER")
        self.creds, self.project = google.auth.default(
            scopes=["https://www.googleapis.com/auth/cloud-platform"]
        )

    def __getattr__(self, name: str) -> Any:
        if not self.creds.valid:
            self.creds.refresh(google.auth.transport.requests.Request())

            if not self.creds.valid:
                raise RuntimeError("Unable to refresh auth")

            self.client.api_key = self.creds.token
        return getattr(self.client, name)



    # TODO(developer): Update and un-comment below lines
    # project_id = "PROJECT_ID"
    # location = "us-central1"

    client = OpenAICredentialsRefresher(
        base_url=f"https://{location}-aiplatform.googleapis.com/v1/projects/{project_id}/locations/{location}/endpoints/openapi",
    )

    response = client.chat.completions.create(
        model="google/gemini-2.0-flash-001",
        messages=[{"role": "user", "content": "Why is the sky blue?"}],
    )

    print(response)

Nächste Schritte