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 Cloud de Confiance .

  1. In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance 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

  2. Verify that billing is enabled for your Cloud de Confiance project.

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

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

  5. 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 Cloud de Confiance .

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 Cloud de Confiance by S3NS 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 Cloud de Confiance by S3NS :

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 Cloud de Confiance by S3NS :

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 Cloud de Confiance .

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 Cloud de Confiance by S3NS 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 Cloud de Confiance by S3NS 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 Cloud de Confiance by S3NS

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

A seguir