Autentikasikan

Untuk menggunakan library Python OpenAI, instal OpenAI SDK:

pip install openai

Untuk mengautentikasi dengan Chat Completions API, Anda dapat mengubah penyiapan klien atau mengubah konfigurasi lingkungan untuk menggunakan autentikasi Google dan endpoint Vertex AI. Pilih metode yang lebih mudah, lalu ikuti langkah-langkah penyiapan, bergantung pada apakah Anda ingin memanggil model Gemini atau model Model Garden yang di-deploy sendiri.

Model tertentu di Model Garden dan model Hugging Face yang didukung harus di-deploy ke endpoint Vertex AI terlebih dahulu sebelum dapat melayani permintaan. Saat memanggil model yang di-deploy sendiri ini dari Chat Completions API, Anda perlu menentukan ID endpoint. Untuk mencantumkan endpoint Vertex AI yang ada, gunakan perintah gcloud ai endpoints list.

Penyiapan klien

Untuk mendapatkan kredensial Google secara terprogram di Python, Anda dapat menggunakan google-auth Python SDK:

pip install google-auth requests

Python

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Python Vertex AI.

Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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,
)

Secara default, masa berlaku token akses akun layanan adalah 1 jam. Anda dapat memperpanjang masa aktif token akses akun layanan atau memperbarui token secara berkala dan memperbarui variabel openai.api_key.

Variabel lingkungan

Menginstal Google Cloud CLI. Library OpenAI dapat membaca variabel lingkungan OPENAI_API_KEY dan OPENAI_BASE_URL untuk mengubah autentikasi dan endpoint di klien defaultnya. Tetapkan variabel berikut:

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

Untuk memanggil model Gemini, tetapkan variabel MODEL_ID dan gunakan endpoint openapi:

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

Untuk memanggil model yang di-deploy sendiri dari Model Garden, tetapkan variabel ENDPOINT dan gunakan variabel tersebut di URL Anda:

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

Selanjutnya, lakukan inisialisasi klien:

client = openai.OpenAI()

Gemini Chat Completions API menggunakan OAuth untuk melakukan autentikasi dengan token akses yang berlaku singkat. Secara default, masa berlaku token akses akun layanan adalah 1 jam. Anda dapat memperpanjang masa aktif token akses akun layanan atau memperbarui token secara berkala dan memperbarui variabel openai.api_key.

Memperbarui kredensial Anda

Contoh berikut menunjukkan cara memperbarui kredensial Anda secara otomatis sesuai kebutuhan:

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)

Langkah berikutnya