API Responses

I modelli partner di OpenAI su Gemini Enterprise Agent Platform supportano l'API OpenAI Responses (publishers/openai/v1/responses) per la generazione di testo da input di testo e immagini, la chiamata degli strumenti, il controllo dello sforzo di ragionamento e la compressione delle conversazioni.

Prima di iniziare

Per utilizzare i modelli partner di OpenAI con Gemini Enterprise Agent Platform, devi completare i seguenti passaggi. L'API Gemini Enterprise Agent Platform (aiplatform.googleapis.com) deve essere abilitata nel tuo progetto 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. Completa i passaggi di onboarding in Modelli OpenAI GPT, tra cui l'acquisto del prodotto tramite Google Cloud Marketplace e l'abilitazione del modello in Model Garden.

  5. Se la policy della tua organizzazione limita l'accesso ai modelli, consenti il modello in questione.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per chiamare i modelli partner di OpenAI, chiedi all'amministratore di concederti il ruolo IAM Agent Platform User (roles/aiplatform.user) sul progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Endpoint

I modelli partner di OpenAI vengono forniti dai seguenti URL di base di Agent Platform:

  • Endpoint globale (global): https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/openai/v1
  • Endpoint multiregionale degli Stati Uniti (us): https://aiplatform.us.rep.googleapis.com/v1/projects/PROJECT_ID/locations/us/publishers/openai/v1

Sostituisci <var>PROJECT_ID</var> con l'ID progetto Cloud de Confiance .

Chiama l'API Responses utilizzando l'SDK Python di OpenAI

Puoi utilizzare la libreria Python ufficiale openai impostando base_url sul tuo endpoint della piattaforma dell'agente e passando un token di accesso OAuth 2.0 Cloud de Confiance by S3NS aggiornato come api_key. Imposta store=False per le richieste stateless e i workload 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)

Risposte dinamiche

Per trasmettere in streaming delta di testo incrementali su Server-Sent Events (SSE), imposta 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="")

Cronologia delle conversazioni compatta

Per le sessioni degli agenti a lungo termine, chiama l'endpoint di compattazione autonomo (POST .../responses/compact) per comprimere i messaggi precedenti in un elemento di compattazione criptato che può essere passato alle chiamate /responses stateless successive:

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)

Chiama l'API Responses utilizzando l'SDK Node.js di OpenAI

Puoi utilizzare la libreria Node.js ufficiale di openai con le credenziali OAuth di 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);

Chiama l'API Responses utilizzando l'SDK OpenAI Go

Puoi utilizzare la libreria openai-go ufficiale con le credenziali Cloud de Confiance by S3NS OAuth:

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())
}

Chiama l'API Responses utilizzando curl

Puoi inviare una richiesta REST direttamente all'API Responses utilizzando curl.

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_ID: l'ID progetto Cloud de Confiance .

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere un codice di stato riuscito (2xx) e una risposta vuota.

Gestione degli errori

Crea un backoff esponenziale con jitter sulle risposte 429 e 5xx nei workload di produzione.

Codice di stato Causa probabile Azione consigliata
401 Token di accesso scaduto o non valido. Aggiorna il token di accesso Cloud de Confiance by S3NS e riprova a inviare la richiesta.
403 L'identità del chiamante non dispone delle autorizzazioni richieste oppure l'API, il progetto o il modello non sono abilitati. Verifica i ruoli IAM, l'abilitazione delle API, l'inserimento del progetto nella lista consentita e l'abilitazione di Model Garden.
404 Il percorso dell'endpoint, la località o l'identificatore del modello non sono corretti. Verifica l'URL di base, il segmento della località e il nome del modello.
429 Limite di frequenza, quota o capacità disponibile raggiunto. Esegui il backoff esponenziale e riprova. Se il problema persiste, contatta il team dedicato al tuo account.
5xx Condizione temporanea del server. Riprova con un backoff esponenziale.

Connetti Codex a Cloud de Confiance by S3NS

Puoi configurare OpenAI Codex (app desktop o interfaccia a riga di comando) per instradare le richieste del modello tramite il tuo progetto Cloud de Confiance utilizzando l'autenticazione Cloud de Confiance by S3NS . Per istruzioni complete sulla configurazione, passaggi di accesso interattivi e opzioni di accesso manuale di config.toml, consulta Connetti OpenAI Codex aCloud de Confiance by S3NS.

Passaggi successivi