Utilizzo delle librerie OpenAI con Gemini Enterprise Agent Platform

L'API Chat Completions funziona come un endpoint compatibile con OpenAI, progettato per semplificare l'interfaccia con Gemini su Gemini Enterprise Agent Platform utilizzando le librerie OpenAI per Python e REST. Se utilizzi già le librerie OpenAI, puoi utilizzare questa API come modo economico per passare dalla chiamata dei modelli OpenAI a quella dei modelli ospitati sulla Agent Platform per confrontare output, costi e scalabilità senza modificare il codice esistente. Se non utilizzi già le librerie OpenAI, ti consigliamo di utilizzare l'SDK Google Gen AI. Per eseguire la migrazione del codice SDK OpenAI esistente in modo da utilizzare l'SDK Google Gen AI, consulta la sezione Eseguire la migrazione dall'SDK OpenAI all'SDK Google Gen AI.

Modelli supportati

L'API Chat Completions supporta sia i modelli Gemini sia alcuni modelli autodistribuiti di Model Garden.

Modelli Gemini

I seguenti modelli forniscono supporto per l'API Chat Completions:

Fai clic per espandere i modelli supportati

Modelli con deployment autonomo da Model Garden

I container Hugging Face Text Generation Interface (HF TGI) e Agent Platform Model Garden prebuilt vLLM supportano l'API Chat Completions. Tuttavia, non tutti i modelli di cui è stato eseguito il deployment in questi container supportano l'API Chat Completions. La tabella seguente include i modelli supportati più popolari per contenitore:

HF TGI

vLLM

Parametri supportati

Per i modelli Google, l'API Chat Completions supporta i seguenti parametri OpenAI. Per una descrizione di ciascun parametro, consulta la documentazione di OpenAI sulla creazione di completamenti di chat. Il supporto dei parametri per i modelli di terze parti varia in base al modello. Per vedere quali parametri sono supportati, consulta la documentazione del modello.

messages
  • System message
  • User message: sono supportati i tipi text e image_url. Il tipo image_url supporta le immagini archiviate in un URI Cloud Storage o una codifica Base64 nel formato "data:<MIME-TYPE>;base64,<BASE64-ENCODED-BYTES>". Per scoprire come creare un bucket Cloud Storage e caricare un file, consulta Scopri l'archiviazione di oggetti.
  • Assistant message
  • Tool message
  • Function message: questo campo è obsoleto, ma supportato per la compatibilità con le versioni precedenti.
model
detail Per i modelli precedenti a Gemini 3, il campo detail deve essere coerente in tutti i messaggi e contenuti (è a livello di richiesta). Per Gemini 3 e versioni successive, questo corrisponde a una `media_resolution` a livello di parte. Per saperne di più, consulta Risoluzione dei contenuti multimediali.
max_completion_tokens Alias per max_tokens.
modalities Supporta audio, image e text.
max_tokens
n
frequency_penalty
presence_penalty
reasoning_effort Configura la quantità di tempo e il numero di token utilizzati per una risposta.
  • low: 1024
  • medium: 8192
  • high: 24576
Poiché nella risposta non sono inclusi pensieri, è possibile specificare solo uno dei due valori: reasoning_effort o extra_body.google.thinking_config.
response_format
  • json_object: interpretato come passaggio di "application/json" all'API Gemini.
  • json_schema. Gli schemi completamente ricorsivi non sono supportati. additional_properties è supportato.
  • text: interpretato come passaggio di "text/plain" all'API Gemini.
  • Qualsiasi altro tipo MIME viene passato così com'è al modello, ad esempio passando "application/json" direttamente.
seed Corrisponde a GenerationConfig.seed.
stop
stream
temperature
top_p
tools
  • type
  • function
    • name
    • description
    • parameters: specifica i parametri utilizzando la specifica OpenAPI. Questo campo è diverso dal campo dei parametri OpenAI, che è descritto come oggetto schema JSON. Per scoprire le differenze tra le parole chiave di OpenAPI e JSON Schema, consulta la guida OpenAPI.
tool_choice
  • none
  • auto
  • required: corrisponde alla modalità ANY in FunctionCallingConfig.
  • validated: corrisponde alla modalità VALIDATED in FunctionCallingConfig. Questo è specifico di Google.
web_search_options Corrisponde allo strumento GoogleSearch. Non sono supportate opzioni secondarie.
function_call Questo campo è obsoleto, ma supportato per la compatibilità con le versioni precedenti.
functions Questo campo è obsoleto, ma supportato per la compatibilità con le versioni precedenti.

Se passi un parametro non supportato, questo viene ignorato.

Parametri di input multimodali

L'API Chat Completions supporta input multimodali selezionati.

input_audio
  • data: Qualsiasi URI o formato blob valido. Supportiamo tutti i tipi di blob, inclusi immagini, audio e video. È supportato tutto ciò che è supportato da GenerateContent (HTTP, Cloud Storage e così via).
  • format: OpenAI supporta sia wav (audio/wav) sia mp3 (audio/mp3). Con Gemini, sono supportati tutti i tipi MIME validi.
image_url
  • data: Come input_audio, sono supportati tutti gli URI o i formati blob validi.
    Tieni presente che image_url come URL verrà impostato per impostazione predefinita il tipo MIME image/* e image_url come dati blob può essere utilizzato come qualsiasi input multimodale.
  • detail: Simile alla risoluzione dei contenuti multimediali, questo valore determina il numero massimo di token per immagine per la richiesta. Tieni presente che mentre il campo di OpenAI è per immagine, Gemini applica lo stesso dettaglio alla richiesta e il passaggio di più tipi di dettagli in una richiesta genererà un errore.

In generale, il parametro data può essere un URI o una combinazione di tipo MIME e byte codificati in base64 nel formato "data:<MIME-TYPE>;base64,<BASE64-ENCODED-BYTES>". Per un elenco completo dei tipi MIME, vedi GenerateContent. Per ulteriori informazioni sulla codifica in base64 di OpenAI, consulta la documentazione.

Per l'utilizzo, consulta i nostri esempi di input multimodale.

Parametri specifici di Gemini

Gemini supporta diverse funzionalità non disponibili nei modelli OpenAI. Queste funzionalità possono comunque essere trasmesse come parametri, ma devono essere contenute all'interno di un extra_content o extra_body, altrimenti verranno ignorate.

extra_body funzionalità

Includi un campo google per contenere eventuali funzionalità extra_body specifiche di Gemini.

{
  ...,
  "extra_body": {
     "google": {
       ...,
       // Add extra_body features here.
     }
   }
}
safety_settings Corrisponde a Gemini SafetySetting.
cached_content Corrisponde al campo Gemini generateContent.cached_content.
thinking_config Corrisponde a Gemini GenerationConfig.ThinkingConfig.
thought_tag_marker Utilizzato per separare i pensieri di un modello dalle sue risposte per i modelli con la funzionalità Pensiero disponibile.
Se non specificato, non verranno restituiti tag relativi ai pensieri del modello. Se presenti, le query successive rimuoveranno i tag dei pensieri e contrassegneranno i pensieri in modo appropriato per il contesto. In questo modo viene mantenuto il contesto appropriato per le query successive.
stream_function_call_arguments Trasmette gli argomenti della chiamata di funzione come segmenti di JSON. Per saperne di più, consulta Argomenti di chiamata di funzione di streaming.
tools Specifica strumenti simili a `GenerateContent`. Per saperne di più, consulta Tool.
media_resolution Specifica una risoluzione dei contenuti multimediali a livello di richiesta simile a `GenerateContent`. Per ulteriori informazioni, consulta MediaResolution.

extra_content funzionalità

extra_content ti consente di specificare contenuti specifici di Gemini che non devono essere ignorati.

Includi un campo google per contenere eventuali funzionalità extra_content specifiche di Gemini.

{
  ...,
  "extra_content": {
     "google": {
       ...,
       // Add extra_content features here.
     }
   }
}
thought Questo campo indica esplicitamente se un campo è un pensiero e ha la precedenza su thought_tag_marker. Aiuta a distinguere i diversi passaggi di un processo di pensiero, soprattutto negli scenari di utilizzo degli strumenti in cui i passaggi intermedi potrebbero essere scambiati per risposte finali. Se tagghi parti specifiche dell'input come pensieri, puoi indicare al modello di trattarli come ragionamenti interni anziché come risposte rivolte all'utente.
thought_signature Un campo di byte che fornisce una firma del pensiero da convalidare rispetto ai pensieri restituiti dal modello. Questo campo è diverso da thought, che è un campo booleano. Per ulteriori informazioni, consulta la sezione Firme di pensiero.
parts Specifico per un messaggio dello strumento per passare al modello le parti della risposta della funzione multimodale. Per saperne di più, consulta FunctionResponsePart e Risposta di funzioni multimodali.

Passaggi successivi