L'API Gemini Chat Completamenti consente di inviare richieste all'API Gemini di Vertex AI mediante le librerie OpenAI per Python e REST. Se utilizzi già le librerie OpenAI, puoi utilizzare questa API per passare dai modelli OpenAI ai modelli Gemini e viceversa 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
Modello | Versione |
---|---|
Gemini 1.5 Flash | google/gemini-1.5-flash-001 |
Gemini 1.5 Pro | google/gemini-1.5-pro-001 |
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 |
Autentica
Per utilizzare le librerie Python di OpenAI, installa l'SDK OpenAI:
pip install openai
Per autenticarti con l'API Gemini Chat Completamenti, puoi modificare la configurazione del client o cambiare la configurazione dell'ambiente per utilizzare l'autenticazione Google e un endpoint Vertex AI. Scegli una delle seguenti opzioni, a seconda di quale delle due opzioni è più semplice:
Configurazione client
Per ottenere in modo programmatico le credenziali Google in Python, puoi utilizzare l'SDK Python google-auth
:
pip install google-auth
pip install requests
Modifica l'SDK OpenAI in modo che punti all'endpoint di completamento della chat Vertex AI:
# Programmatically get an access token
creds, project = google.auth.default()
auth_req = google.auth.transport.requests.Request()
creds.refresh(auth_req)
# Note: the credential lives for 1 hour by default (https://cloud.google.com/docs/authentication/token-types#at-lifetime); after expiration, it must be refreshed.
# Pass the Vertex endpoint and authentication to the OpenAI SDK
PROJECT = 'PROJECT_ID'
LOCATION = 'LOCATION'
MODEL_ID = 'MODEL_ID'
client = openai.OpenAI(
base_url = f'https://{LOCATION}-aiplatform.googleapis.com/v1beta1/projects/{PROJECT}/locations/{LOCATION}/endpoints/openapi',
api_key = creds.token)
Per impostazione predefinita, i token di accesso durano un'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=PROJECT_ID
$ export LOCATION=LOCATION
$ export MODEL_ID=MODEL_ID
$ export OPENAI_API_KEY="$(gcloud auth application-default print-access-token)"
$ export OPENAI_BASE_URL="https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT}/locations/${LOCATION}/endpoints/openapi"
Quindi, inizializza il client:
client = openai.OpenAI()
L'API Gemini Chat Completamenti utilizza OAuth per
l'autenticazione con un
token di accesso di breve durata.
Per impostazione predefinita, i token di accesso durano un'ora. Puoi prolungare la durata del token di accesso o aggiornare periodicamente il token e aggiornare la variabile di ambiente OPENAI_API_KEY
.
Chiamare l'API Gemini Chat Completamenti
Il seguente esempio mostra come inviare richieste non di 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
import openai client = openai.OpenAI() model_response = client.chat.completions.create( model = f"google/{MODEL_ID}", messages = [{"role": "user", "content": "Write a story about a magic backpack." }] ) print(model_response)
L'esempio seguente mostra come inviare richieste di 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}", "stream": true, "messages": [{ "role": "user", "content": "Write a story about a magic backpack." }] }'
Python
import openai client = openai.OpenAI() model_response = client.chat.completions.create( model = f"google/{MODEL_ID}", stream = True, messages = [{"role": "user", "content": "Write a story about a magic backpack." }] ) print(model_response)
Parametri supportati
L'API Gemini Chat Completamenti supporta i seguenti parametri OpenAI. Per una descrizione di ogni parametro, consulta la documentazione di OpenAI sulla creazione di completamenti di chat.
messages |
|
model |
|
max_tokens |
|
n |
|
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 qualsiasi parametro non supportato, questo viene ignorato.
Passaggi successivi
- Consulta gli esempi di chiamata dell'API Inference con la sintassi compatibile con OpenAI.
- Consulta gli esempi di chiamata dell'API Function chiamata con sintassi compatibile con OpenAI.
- Scopri di più sull'API Gemini.
- Scopri di più sulla migrazione da Azure OpenAI all'API Gemini.