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 modo economico per passare da <x0A>chiamare i modelli OpenAI e i modelli ospitati su Vertex AI per confrontare <x0A>output, costi e scalabilità, senza modificare il codice esistente. Se non utilizzi già le librerie OpenAI, ti consigliamo di utilizzare Google Gen AI SDK.

Modelli supportati

L'API Chat Completions supporta sia i modelli Gemini sia alcuni modelli di Model Garden di cui è stato eseguito il deployment autonomo.

Modelli Gemini

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

Modelli con deployment autonomo da Model Garden

I container Hugging Face Text Generation Interface (HF TGI) e Vertex AI 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 scoprire 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. L'opzione detail non è supportata.
  • Assistant message
  • Tool message
  • Function message: questo campo è obsoleto, ma supportato per la compatibilità con le versioni precedenti.
model
max_completion_tokens Alias per max_tokens.
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.
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 per 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 trasmetti 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 per 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, 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 Base64 di OpenAI, consulta la documentazione.

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

Parametri specifici di Gemini

Esistono diverse funzionalità supportate da Gemini che non sono 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 al SafetySetting di Gemini.
cached_content Corrisponde al GenerateContentRequest.cached_content di Gemini.
thinking_config Corrisponde al GenerationConfig.ThinkingConfig di Gemini.
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 intorno 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.

extra_part funzionalità

extra_part consente di specificare impostazioni aggiuntive a livello di Part.

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

{
  ...,
  "extra_part": {
     "google": {
       ...,
       // Add extra_part features here.
     }
   }
}
extra_content Un campo per aggiungere contenuti specifici di Gemini che non devono essere ignorati.
thought In questo modo viene indicato esplicitamente se un campo è un pensiero (e ha la precedenza su thought_tag_marker). Questo deve essere utilizzato per specificare se una chiamata di strumento fa parte di un pensiero o meno.

Passaggi successivi