La API de Gemini Chat Completions te permite enviar solicitudes a la API de Gemini de Vertex AI a través de las bibliotecas de OpenAI para Python y REST. Si ya usas las bibliotecas de OpenAI, puedes usar esta API para cambiar entre las llamadas a los modelos de OpenAI y los modelos de Gemini para comparar el resultado, el costo y la escalabilidad, sin cambiar tu código existente. Si todavía no usas las bibliotecas de OpenAI, te recomendamos que llames a la API de Gemini directamente.
Modelos compatibles
Modelo | Versión |
---|---|
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 |
Autenticar
Para usar las bibliotecas de OpenAI para Python, instala el SDK de OpenAI:
pip install openai
Para autenticar con la API de Gemini Chat Completions, puedes modificar la configuración del cliente o cambiar el entorno configuración para usar la autenticación de Google y un extremo de Vertex AI. Elige una de las siguientes opciones, lo que te resulte más fácil:
Configuración del cliente
Para obtener credenciales de Google en Python de manera programática, puedes usar el SDK de Python google-auth
:
pip install google-auth
pip install requests
Cambia el SDK de OpenAI para que apunte al extremo de finalización del chat de 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)
De forma predeterminada, los tokens de acceso duran 1 hora. Puedes extender la vida útil de tu token de acceso o actualizarlo de forma periódica y actualizar la variable openai.api_key
.
Variables de entorno
Instala Google Cloud CLI. La biblioteca de OpenAI puede leer las variables de entorno OPENAI_API_KEY
y OPENAI_BASE_URL
para cambiar la autenticación y el extremo en su cliente predeterminado.
Configura las siguientes variables:
$ 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"
A continuación, inicializa el cliente:
client = openai.OpenAI()
La API de Gemini Chat Completions usa OAuth para autenticarse con un token de acceso de corta duración.
De forma predeterminada, los tokens de acceso duran 1 hora. Puedes extender la vida útil de tu token de acceso o actualizar tu token de forma periódica y actualizar la variable de entorno OPENAI_API_KEY
.
Llama a la API de Gemini Chat Completions
En el siguiente ejemplo, se muestra cómo enviar solicitudes sin transmisión:
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)
En el siguiente ejemplo, se muestra cómo enviar solicitudes de transmisión:
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)
Parámetros admitidos
La API de Gemini Chat Completions admite los siguientes parámetros de OpenAI. Para obtener una descripción de cada parámetro, consulta la documentación de OpenAI sobre cómo crear finalizaciones de chat.
messages |
|
model |
|
max_tokens |
|
n |
|
response_format |
|
stop |
|
stream |
|
temperature |
|
top_p |
|
tools |
|
tool_choice |
|
function_call |
Este campo es obsoleto, pero se admite para versiones anteriores. |
functions |
Este campo es obsoleto, pero se admite para versiones anteriores. |
Si pasas cualquier parámetro no compatible, se ignorará.
¿Qué sigue?
- Consulta ejemplos de llamadas a la API de inferencia con la sintaxis compatible con OpenAI.
- Para ver ejemplos de cómo llamar a la API de Functions Calling con una sintaxis compatible con OpenAI.
- Obtén más información sobre la API de Gemini.
- Obtén más información sobre cómo migrar de Azure OpenAI a la API de Gemini.