Utilizzo delle librerie OpenAI con Vertex AI

L'API Chat Completions funziona come endpoint compatibile con Open AI, progettata per semplificare l'interfaccia 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 dall'uso dei modelli OpenAI a quello dei modelli ospitati su Vertex AI 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.

Modelli supportati

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

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 vLLM predefiniti di Vertex AI Model Garden supportano l'API Chat Completions. Tuttavia, non tutti i modelli di cui è stato eseguito il deployment in questi contenitori 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 sapere 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 memorizzate in un URI Cloud Storage o in una codifica base64 nel formato "data:<MIME-TYPE>;base64,<BASE64-ENCODED-BYTES>". Per scoprire come creare un bucket Cloud Storage e caricarvi un file, consulta Scopri lo spazio di archiviazione degli oggetti. L'opzione detail non è supportata.
  • Assistant message
  • Tool message
  • Function message: questo campo è deprecato, 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 il 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 direttamente "application/json".
seed Corrisponde a GenerationConfig.seed.
stop
stream
temperature
top_p
tools
  • type
  • function
    • name
    • description
    • parameters: specifica i parametri utilizzando la specifica OpenAPI. È diverso dal campo dei parametri OpenAI, che è descritto come oggetto JSON Schema. 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 valore è specifico per Google.
web_search_options Corrisponde allo strumento GoogleSearch. Non sono supportate opzioni secondarie.
function_call Questo campo è deprecato, ma supportato per la compatibilità con le versioni precedenti.
functions Questo campo è deprecato, ma supportato per la compatibilità con le versioni precedenti.

Se passi un parametro non supportato, questo viene ignorato.

Parametri di input multimodale

L'API Chat Completions supporta input multimodali selezionati.

input_audio
  • data: Qualsiasi URI o formato blob valido. Supportiamo tutti i tipi di blob, incluse immagini, audio e video. È supportato qualsiasi elemento 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, è supportato qualsiasi formato URI o blob valido.
    Tieni presente che image_url come URL avrà per impostazione predefinita il tipo MIME image/* e image_url come dati blob può essere utilizzato come qualsiasi input multimodale.
  • detail: Analogamente alla risoluzione media, determina il numero massimo di token per immagine per la richiesta. Tieni presente che, anche se il campo di OpenAI è per immagine, Gemini applica lo stesso dettaglio in tutta la 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 informazioni sull'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 passate come parametri, ma devono essere contenute in un extra_content o extra_body, altrimenti verranno ignorate.

extra_body funzionalità

safety_settings Corrisponde a SafetySetting di Gemini.
cached_content Corrisponde a GenerateContentRequest.cached_content di Gemini.
thinking_config Corrisponde a GenerationConfig.ThinkingConfig di Gemini.
thought_tag_marker Viene 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 successiverimuoveranno i tag di pensiero e li contrassegneranno in base al contesto. In questo modo, puoi preservare il contesto appropriato per le query successive.

extra_part funzionalità

extra_part ti consente di specificare impostazioni aggiuntive a livello di Part.

extra_content Un campo per aggiungere contenuti specifici di Gemini che non devono essere ignorati.
thought Questo indica esplicitamente se un campo è un pensiero (e ha la precedenza su thought_tag_marker). Deve essere utilizzato per specificare se una chiamata allo strumento fa parte di un pensiero o meno.

Passaggi successivi