API Responses

Os modelos de parceiros da OpenAI na plataforma de agentes do Gemini Enterprise são compatíveis com a API OpenAI Responses (publishers/openai/v1/responses) para geração de texto com base em entradas de texto e imagem, chamada de ferramentas, controle de esforço de raciocínio e compactação de conversas.

Antes de começar

Para usar modelos de parceiros da OpenAI com a Gemini Enterprise Agent Platform, siga as etapas abaixo. A API Gemini Enterprise Agent Platform (aiplatform.googleapis.com) precisa estar ativada no seu projeto do Google Cloud .

  1. Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloudagora, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho sem custos financeiros.
  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 role (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 Gemini Enterprise Agent Platform API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). 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 role (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 Gemini Enterprise Agent Platform API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  8. Conclua as etapas de integração em Modelos GPT da OpenAI, incluindo a compra do produto pelo Google Cloud Marketplace e a ativação do modelo no Model Garden.

  9. Se a política da sua organização restringir o acesso ao modelo, permita o modelo nessa política.

Funções exigidas

Para receber as permissões necessárias para chamar modelos de parceiros da OpenAI, peça ao administrador para conceder a você o papel do IAM de Usuário da Agent Platform (roles/aiplatform.user) no projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.

Endpoints

Os modelos de parceiros da OpenAI são disponibilizados nos seguintes URLs de base da Agent Platform:

  • Endpoint global (global): https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/openai/v1
  • Endpoint multirregional dos EUA (us): https://aiplatform.us.rep.googleapis.com/v1/projects/PROJECT_ID/locations/us/publishers/openai/v1

Substitua <var>PROJECT_ID</var> pelo ID do projeto Google Cloud .

Chamar a API Responses usando o SDK do OpenAI para Python

É possível usar a biblioteca oficial do Python openai definindo base_url como o endpoint da plataforma de agente e transmitindo um token de acesso OAuth 2.0 Google Cloud atualizado como api_key. Defina store=False para solicitações sem estado e cargas de trabalho de ZDR.

import google.auth
from google.auth.transport.requests import Request
from openai import OpenAI

credentials, _ = google.auth.default(
    scopes=["https://www.googleapis.com/auth/cloud-platform"]
)
credentials.refresh(Request())

project_id = "PROJECT_ID"
base_url = (
    f"https://aiplatform.googleapis.com/v1/projects/{project_id}"
    "/locations/global/publishers/openai/v1"
)

client = OpenAI(
    base_url=base_url,
    api_key=credentials.token,
)

response = client.responses.create(
    model="gpt-6.1-sol",
    input="Explain how Zero Data Retention works on Agent Platform.",
    reasoning={"effort": "medium"},
    store=False,
)
print(response.output_text)

Respostas de stream

Para transmitir deltas de texto incrementais em eventos enviados pelo servidor (SSE), defina stream=True:

import google.auth
from google.auth.transport.requests import Request
from openai import OpenAI

credentials, _ = google.auth.default(
    scopes=["https://www.googleapis.com/auth/cloud-platform"]
)
credentials.refresh(Request())

project_id = "PROJECT_ID"
base_url = (
    f"https://aiplatform.googleapis.com/v1/projects/{project_id}"
    "/locations/global/publishers/openai/v1"
)

client = OpenAI(
    base_url=base_url,
    api_key=credentials.token,
)

stream = client.responses.create(
    model="gpt-6-luna",
    input="Write a short Python function to validate a JSON schema.",
    stream=True,
    store=False,
)

for event in stream:
    if event.type == "response.output_text.delta":
        print(event.delta, end="")

Histórico de conversas compacto

Para sessões de agentes de longo alcance, chame o endpoint de compactação independente (POST .../responses/compact) para compactar mensagens anteriores em um item de compactação criptografado que pode ser transmitido para chamadas /responses sem estado subsequentes:

import google.auth
from google.auth.transport.requests import Request
from openai import OpenAI

credentials, _ = google.auth.default(
    scopes=["https://www.googleapis.com/auth/cloud-platform"]
)
credentials.refresh(Request())

project_id = "PROJECT_ID"
base_url = (
    f"https://aiplatform.googleapis.com/v1/projects/{project_id}"
    "/locations/global/publishers/openai/v1"
)

client = OpenAI(
    base_url=base_url,
    api_key=credentials.token,
)

compacted = client.responses.compact(
    model="gpt-6-astra",
    input=[
        {"role": "user", "content": "Audit our multi-region VPC firewall rules."},
        {"role": "assistant", "content": "I checked the ingress rules for us-east1 and us-central1."},
    ],
)
print(compacted.output)

Chamar a API Responses usando o SDK da OpenAI para Node.js

É possível usar a biblioteca oficial do Node.js do openai com as credenciais do OAuth do Google Cloud :

import OpenAI from "openai";

const projectId = "PROJECT_ID";
const client = new OpenAI({
  apiKey: process.env.GOOGLE_CLOUD_ACCESS_TOKEN,
  baseURL: `https://aiplatform.googleapis.com/v1/projects/${projectId}/locations/global/publishers/openai/v1`,
});

const response = await client.responses.create({
  model: "gpt-6-luna",
  input: "Write a short summary of how authentication works on Agent Platform.",
  store: false,
});
console.log(response.output_text);

Chamar a API Responses usando o SDK da OpenAI para Go

É possível usar a biblioteca oficial openai-go com as credenciais do OAuth do Google Cloud :

package main

import (
    "context"
    "fmt"
    "os"

    "github.com/openai/openai-go/v3"
    "github.com/openai/openai-go/v3/option"
    "github.com/openai/openai-go/v3/responses"
)

func main() {
    ctx := context.Background()
    projectID := "PROJECT_ID"
    client := openai.NewClient(
        option.WithAPIKey(os.Getenv("GOOGLE_CLOUD_ACCESS_TOKEN")),
        option.WithBaseURL("https://aiplatform.googleapis.com/v1/projects/"+projectID+"/locations/global/publishers/openai/v1"),
    )

    response, err := client.Responses.New(ctx, responses.ResponseNewParams{
        Model: "gpt-6-luna",
        Input: responses.ResponseNewParamsInputUnion{
            OfString: openai.String("Write a one-sentence bedtime story about a unicorn."),
        },
        Store: openai.Bool(false),
    })
    if err != nil {
        panic(err)
    }
    fmt.Println(response.OutputText())
}

Chamar a API Responses usando curl

É possível enviar uma solicitação REST diretamente para a API Responses usando curl.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: o ID do projeto do Google Cloud .

Método HTTP e URL:

POST https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/openai/v1/responses

Corpo JSON da solicitação:

{
  "model": "gpt-6.1-sol",
  "input": "Summarize the key differences between Google Cloud and OpenAI terms.",
  "reasoning": {"effort": "medium"},
  "store": false
}

Para enviar a solicitação, expanda uma destas opções:

Você receberá um código de status bem-sucedido (2xx) e uma resposta vazia.

Tratamento de erros

Crie uma espera exponencial com jitter em respostas 429 e 5xx em cargas de trabalho de produção.

Código de status Causa provável Ação recomendada
401 O token de acesso expirou ou é inválido. Atualize o token de acesso do Google Cloud e tente novamente.
403 A identidade do autor da chamada não tem as permissões necessárias, ou a API, o projeto ou o modelo não está ativado. Verifique os papéis do IAM, a ativação da API, a lista de permissões do projeto e a ativação do Model Garden.
404 O caminho do endpoint, o local ou o identificador do modelo está incorreto. Verifique o URL de base, o segmento de local e o nome do modelo.
429 O limite de taxa, cota ou capacidade disponível foi atingido. Use a espera exponencial e tente de novo. Entre em contato com a equipe de conta se o problema persistir.
5xx Condição temporária do servidor. Tentar novamente com a espera exponencial.

Conectar o Codex ao Google Cloud

É possível configurar o OpenAI Codex (CLI ou app para computador) para rotear solicitações de modelo pelo projeto do Google Cloud usando a autenticação do Google Cloud . Para instruções completas de configuração, etapas de login interativas e opções manuais de config.toml, consulte Conectar o OpenAI Codex aoGoogle Cloud.

A seguir