L'API Chat Completions ti consente di inviare richieste ai modelli Vertex AI utilizzando le librerie OpenAI per Python e REST. Se utilizzi già le librerie OpenAI, puoi utilizzare questa API 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 chiamare direttamente l'API Gemini.
Modelli supportati
L'API Chat Completions supporta sia i modelli Gemini sia alcuni modelli di deployment autonomo di Model Garden.
Modelli Gemini
La tabella seguente mostra i modelli Gemini supportati:
Modello | Versione |
---|---|
Gemini 2.0 Flash | google/gemini-2.0-flash |
Gemini 1.5 Flash | google/gemini-1.5-flash |
Gemini 1.5 Pro | google/gemini-1.5-pro |
Gemini 1.0 Pro Vision | google/gemini-1.0-pro-vision google/gemini-1.0-pro-vision-001 |
Gemini 1.0 Pro | google/gemini-1.0-pro-002 google/gemini-1.0-pro-001 google/gemini-1.0-pro |
Modelli di cui è stato eseguito il 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 |
---|---|
Autentica
Per utilizzare le librerie Python di OpenAI, installa l'SDK OpenAI:
pip install openai
Per autenticarti con l'API Chat Completions, puoi modificare la configurazione del client o la configurazione dell'ambiente per utilizzare l'autenticazione Google e un endpoint Vertex AI. Scegli il metodo più semplice e segui i passaggi per la configurazione a seconda che tu voglia chiamare i modelli Gemini o i modelli di Model Garden di cui hai eseguito il deployment autonomo.
Prima di poter gestire le richieste, alcuni modelli in Model Garden e i
modelli Hugging Face supportati
devono essere
implementati in un endpoint Vertex AI.
Quando richiama questi modelli di deployment autonomo dall'API Chat Completions, devi specificare l'ID endpoint. Per elencare gli endpoint Vertex AI esistenti, utilizza il comando gcloud ai endpoints list
.
Configurazione del client
Per ottenere le credenziali Google in modo programmatico in Python, puoi utilizzare l'google-auth
SDK Python:
pip install google-auth requests
Python
Prima di provare questo esempio, segui le istruzioni di configurazione Python riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Python di Vertex AI.
Per autenticarti a Vertex AI, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Per impostazione predefinita, i token di accesso sono validi per 1 ora. Puoi
prolungare la durata del token di accesso
o aggiornare periodicamente il token e aggiornare la variabile openai.api_key
.
Variabili di ambiente
Installa Google Cloud CLI. La libreria OpenAI può leggere le variabili di ambiente OPENAI_API_KEY
e OPENAI_BASE_URL
per modificare l'autenticazione e l'endpoint nel client predefinito.
Imposta le seguenti variabili:
$ export PROJECT_ID=PROJECT_ID
$ export LOCATION=LOCATION
$ export OPENAI_API_KEY="$(gcloud auth application-default print-access-token)"
Per chiamare un modello Gemini, imposta la variabile MODEL_ID
e utilizza l'endpoint openapi
:
$ export MODEL_ID=MODEL_ID
$ export OPENAI_BASE_URL="https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/endpoints/openapi"
Per chiamare un modello di cui è stato eseguito il deployment autonomo da Model Garden, imposta la variabile ENDPOINT
e utilizzala nell'URL:
$ export ENDPOINT=ENDPOINT_ID
$ export OPENAI_BASE_URL="https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/endpoints/${ENDPOINT}"
Poi, inizializza il client:
client = openai.OpenAI()
L'API Gemini Chat Completions utilizza OAuth per autenticarsi con un token di accesso a breve durata.
Per impostazione predefinita, i token di accesso sono validi per 1 ora. Puoi
prolungare la durata del token di accesso
o aggiornare periodicamente il token e la variabile di ambiente OPENAI_API_KEY
.
Chiamare Gemini con l'API Chat Completions
L'esempio seguente mostra come inviare richieste non in streaming:
curl
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/endpoints/openapi/chat/completions \ -d '{ "model": "google/${MODEL_ID}", "messages": [{ "role": "user", "content": "Write a story about a magic backpack." }] }'
Python
Prima di provare questo esempio, segui le istruzioni di configurazione Python riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Python di Vertex AI.
Per autenticarti a Vertex AI, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
L'esempio seguente mostra come inviare richieste di streaming a un modello Gemini utilizzando l'API Chat Completions:
REST
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/endpoints/openapi/chat/completions \ -d '{ "model": "google/${MODEL_ID}", "stream": true, "messages": [{ "role": "user", "content": "Write a story about a magic backpack." }] }'
Python
Prima di provare questo esempio, segui le istruzioni di configurazione Python riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Python di Vertex AI.
Per autenticarti a Vertex AI, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Chiamare un modello di cui è stato eseguito il deployment autonomo con l'API Chat Completions
L'esempio seguente mostra come inviare richieste non in streaming:
REST
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/endpoints/${ENDPOINT}/chat/completions \ -d '{ "messages": [{ "role": "user", "content": "Write a story about a magic backpack." }] }'
Python
Prima di provare questo esempio, segui le istruzioni di configurazione Python riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Python di Vertex AI.
Per autenticarti a Vertex AI, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
L'esempio seguente mostra come inviare richieste in streaming a un modello di cui è stato eseguito il deployment autonomamente utilizzando l'API Chat Completions:
REST
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/endpoints/${ENDPOINT}/chat/completions \ -d '{ "stream": true, "messages": [{ "role": "user", "content": "Write a story about a magic backpack." }] }'
Python
Prima di provare questo esempio, segui le istruzioni di configurazione Python riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Python di Vertex AI.
Per autenticarti a Vertex AI, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
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 |
|
model |
|
max_tokens |
|
n |
|
frequency_penalty |
|
presence_penalty |
|
response_format |
|
stop |
|
stream |
|
temperature |
|
top_p |
|
tools |
|
tool_choice |
|
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.
Aggiorna le credenziali
L'esempio seguente mostra come aggiornare automaticamente le credenziali in base alle necessità:
Python
Passaggi successivi
- Consulta gli esempi di chiamata dell'API Inference con la sintassi compatibile con OpenAI.
- Consulta gli esempi di chiamata dell'API di chiamata delle funzioni con sintassi compatibile con OpenAI.
- Scopri di più sull'API Gemini.
- Scopri di più sulla migrazione da Azure OpenAI all'API Gemini.