API Responses

Les modèles partenaires OpenAI sur Gemini Enterprise Agent Platform sont compatibles avec l'API OpenAI Responses (publishers/openai/v1/responses) pour la génération de texte à partir d'entrées de texte et d'images, l'appel d'outils, le contrôle de l'effort de raisonnement et la compression des conversations.

Avant de commencer

Pour utiliser des modèles partenaires OpenAI avec Gemini Enterprise Agent Platform, vous devez suivre les étapes ci-dessous. L'API Gemini Enterprise Agent Platform (aiplatform.googleapis.com) doit être activée sur votre projet 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. Suivez les étapes d'intégration décrites dans Modèles OpenAI GPT, y compris l'achat du produit via Google Cloud Marketplace et l'activation du modèle dans Model Garden.

  5. Si la règle de votre organisation limite l'accès au modèle, autorisez le modèle dans cette règle.

Rôles requis

Pour obtenir les autorisations nécessaires pour appeler des modèles partenaires OpenAI, demandez à votre administrateur de vous accorder le rôle IAM Utilisateur Agent Platform (roles/aiplatform.user) sur le projet. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.

Points de terminaison

Les modèles partenaires OpenAI sont diffusés à partir des URL de base de la plate-forme d'agent suivantes :

  • Point de terminaison mondial (global) : https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/openai/v1
  • Point de terminaison multirégional aux États-Unis (us) : https://aiplatform.us.rep.googleapis.com/v1/projects/PROJECT_ID/locations/us/publishers/openai/v1

Remplacez <var>PROJECT_ID</var> par l'ID du projet Cloud de Confiance .

Appeler l'API Responses à l'aide du SDK Python OpenAI

Vous pouvez utiliser la bibliothèque Python openai officielle en définissant base_url sur le point de terminaison de votre plate-forme d'agent et en transmettant un jeton d'accès OAuth 2.0 Cloud de Confiance by S3NS actualisé en tant que api_key. Définissez store=False pour les requêtes sans état et les charges de travail 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)

Diffuser un flux de réponses

Pour diffuser des deltas de texte incrémentiels sur des événements envoyés par le serveur (SSE), définissez 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="")

Historique des conversations compact

Pour les sessions d'agent à long horizon, appelez le point de terminaison de compactage autonome (POST .../responses/compact) pour compresser les messages précédents dans un élément de compactage chiffré qui peut être transmis aux appels /responses sans état suivants :

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)

Appeler l'API Responses à l'aide du SDK OpenAI pour Node.js

Vous pouvez utiliser la bibliothèque Node.js openai officielle avec les identifiants OAuth 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);

Appeler l'API Responses à l'aide du SDK OpenAI pour Go

Vous pouvez utiliser la bibliothèque openai-go officielle avec les identifiants OAuth 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())
}

Appeler l'API Responses à l'aide de curl

Vous pouvez envoyer une requête REST directement à l'API Responses à l'aide de curl.

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet Cloud de Confiance .

Méthode HTTP et URL :

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

Corps JSON de la requête :

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

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir un code d'état indiquant le succès de l'opération (2xx), ainsi qu'une réponse vide.

Gestion des exceptions

Intégrez un intervalle exponentiel entre les tentatives avec gigue sur les réponses 429 et 5xx dans les charges de travail de production.

Code d'état Cause probable Action recommandée
401 Le jeton d'accès a expiré ou n'est pas valide. Actualisez votre jeton d'accès Cloud de Confiance by S3NS et relancez la requête.
403 L'identité de l'appelant ne dispose pas des autorisations requises, ou l'API, le projet ou le modèle n'est pas activé. Vérifiez les rôles IAM, l'activation de l'API, l'ajout du projet à la liste d'autorisation et l'activation de Model Garden.
404 Le chemin d'accès, l'emplacement ou l'identifiant du modèle du point de terminaison sont incorrects. Vérifiez l'URL de base, le segment d'emplacement et le nom du modèle.
429 Limite de débit, de quota ou de capacité disponible atteinte. Réessayez avec un intervalle exponentiel entre les tentatives. Contactez l'équipe chargée de votre compte si le problème persiste.
5xx Condition de serveur temporaire. Réessayer avec un intervalle exponentiel entre les tentatives

Connecter Codex à Cloud de Confiance by S3NS

Vous pouvez configurer OpenAI Codex (CLI ou application de bureau) pour acheminer les requêtes de modèle via votre projet Cloud de Confiance à l'aide de l'authentification Cloud de Confiance by S3NS . Pour obtenir des instructions de configuration complètes, des étapes de connexion interactives et des options config.toml manuelles, consultez Connecter OpenAI Codex àCloud de Confiance by S3NS.

Étapes suivantes