Utilizzo delle librerie OpenAI con Vertex AI

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

Modelli supportati

L'API Chat Completions supporta sia i modelli Gemini sia i modelli con deployment autonomo selezionati da Model Garden.

Modelli Gemini

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

Modelli con deployment autonomo da Model Garden

I container predefiniti vLLM di Hugging Face Text Generation Interface (HF TGI) e Vertex AI Model Garden 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ù diffusi per container:

HF TGI

vLLM

Parametri supportati

Per i modelli Google, l'API Chat Completions supporta i seguenti parametri OpenAI. Per una descrizione di ogni parametro, consulta la documentazione di OpenAI su 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 i contenuti (è a livello di richiesta). Per Gemini 3 e versioni successive, corrisponde a un `media_resolution` a livello di parte. Per saperne di più, consulta Risoluzione dei contenuti multimediali.
max_completion_tokens Alias di 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 tra reasoning_effort o extra_body.google.thinking_config può essere specificato.
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 di 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 le sotto-opzioni.
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) e mp3 (audio/mp3). Con Gemini, sono supportati tutti i tipi MIME tipi 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 sul tipo MIME image/* e image_url come dati blob può essere utilizzato come qualsiasi input multimodale.
  • detail: Simile alla risoluzione dei contenuti multimediali, 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, consulta GenerateContent. Per saperne di più sulla codifica base64 di OpenAI, consulta la relativa documentazione.

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

Parametri specifici di Gemini

Esistono diverse funzionalità supportate da Gemini che non sono disponibili nei modelli OpenAI. Queste funzionalità possono comunque essere passate come parametri, ma devono essere contenute in un extra_content o extra_body oppure verranno ignorate.

Funzionalità extra_body

Includi un campo google per contenere tutte le 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 di Gemini generateContent.cached_content.
thinking_config Corrisponde a Gemini GenerationConfig.ThinkingConfig.
thought_tag_marker Utilizzato per separare i pensieri di un modello dalle relative risposte per i modelli con la funzionalità Ragionamento disponibile.
Se non viene specificato, non verranno restituiti tag intorno ai pensieri del modello. Se presente, le query successive rimuoveranno i tag dei pensieri e contrassegneranno i pensieri in modo appropriato per il contesto. In questo modo, il contesto appropriato viene mantenuto per le query successive.
stream_function_call_arguments Trasmette gli argomenti della chiamata di funzione come segmenti di JSON. Per saperne di più, consulta Trasmettere gli argomenti della chiamata di funzione.
tools Specifica gli strumenti in modo simile a `GenerateContent`. Per saperne di più, consulta Tool.
media_resolution Specifica una risoluzione dei contenuti multimediali a livello di richiesta simile a `GenerateContent`. Per saperne di più, consulta MediaResolution.

Funzionalità extra_content

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

Includi un campo google per contenere tutte le 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 confusi con le risposte finali. Contrassegnando 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 di pensiero da convalidare rispetto ai pensieri restituiti dal modello. Questo campo è diverso da thought, che è un campo booleano. Per saperne di più, consulta Firme di pensiero.
parts Specifico per un messaggio dello strumento per restituire al modello le parti della risposta della funzione multimodale. Per saperne di più, consulta FunctionResponsePart e Risposta della funzione multimodale.

Passaggi successivi