Autenticar

Para usar as bibliotecas Python da OpenAI, instale o SDK da OpenAI:

pip install openai

Para se autenticar com a API Chat Completions, pode modificar a configuração do cliente ou alterar a configuração do ambiente para usar a autenticação Google e um ponto final da Vertex AI. Escolha o método mais fácil e siga os passos de configuração, consoante queira chamar os modelos do Gemini ou os modelos do Model Garden implementados automaticamente.

Determinados modelos no Model Garden e modelos suportados do Hugging Face têm de ser implementados num ponto final da Vertex AI antes de poderem publicar pedidos. Quando chama estes modelos implementados automaticamente a partir da API Chat Completions, tem de especificar o ID do ponto final. Para listar os pontos finais da Vertex AI existentes, use o comando gcloud ai endpoints list.

Configuração do cliente

Para obter credenciais Google de forma programática em Python, pode usar o google-auth SDK Python:

pip install google-auth requests

Python

Antes de experimentar este exemplo, siga as Pythoninstruções de configuração no início rápido do Vertex AI com bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Python Vertex AI.

Para se autenticar no Vertex AI, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.

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

Por predefinição, os tokens de acesso da conta de serviço duram 1 hora. Pode prolongar a duração dos tokens de acesso da conta de serviço ou atualizar periodicamente o token e atualizar a variável openai.api_key.

Variáveis de ambiente

Instale a CLI Google Cloud. A biblioteca OpenAI pode ler as variáveis de ambiente OPENAI_API_KEY e OPENAI_BASE_URL para alterar a autenticação e o ponto final no respetivo cliente predefinido. Defina as seguintes variáveis:

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

Para chamar um modelo do Gemini, defina a variável MODEL_ID e use o ponto final openapi:

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

Para chamar um modelo implementado automaticamente a partir do Model Garden, defina a variável ENDPOINT e use-a no seu URL:

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

Em seguida, inicialize o cliente:

client = openai.OpenAI()

A API Gemini Chat Completions usa o OAuth para autenticar com um token de acesso de curta duração. Por predefinição, os tokens de acesso da conta de serviço duram 1 hora. Pode prolongar a duração dos tokens de acesso da conta de serviço ou atualizar periodicamente o token e atualizar a variável openai.api_key.

Atualize as suas credenciais

O exemplo seguinte mostra como atualizar automaticamente as suas credenciais conforme necessário:

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)

O que se segue?