L'API Gemini Chat Completions vous permet d'envoyer des requêtes à l'API Vertex AI Gemini à l'aide des bibliothèques OpenAI pour Python et REST. Si vous utilisez déjà les bibliothèques OpenAI, vous pouvez utiliser cette API pour basculer entre les appels de modèles OpenAI et Gemini afin de comparer les résultats, les coûts et l'évolutivité, sans modifier votre code existant. Si vous n'utilisez pas déjà les bibliothèques OpenAI, nous vous recommandons d'appeler directement l'API Gemini.
Modèles compatibles
Modèle | Version |
---|---|
Gemini 1.5 Flash | google/gemini-1.5-flash-preview-0514 google/gemini-1.5-flash-001 |
Gemini 1.5 Pro | google/gemini-1.5-pro-preview-0514 google/gemini-1.5-pro-preview-0409 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 |
Authentifier
Pour utiliser les bibliothèques OpenAI Python, installez le SDK OpenAI :
pip install openai
Pour vous authentifier auprès de l'API Gemini Chat Completions, vous pouvez modifier la configuration de votre client ou modifier la configuration de votre environnement afin d'utiliser l'authentification Google et un point de terminaison Vertex AI. Choisissez l'une des options suivantes, selon la situation la plus facile:
Configuration du client
Pour obtenir des identifiants Google de manière programmatique dans Python, vous pouvez utiliser le SDK Python google-auth
:
pip install google-auth
pip install requests
Modifiez le SDK OpenAI pour qu'il pointe vers le point de terminaison de complétion de 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)
Par défaut, les jetons d'accès durent une heure. Vous pouvez prolonger la durée de validité de votre jeton d'accès ou actualiser régulièrement votre jeton et mettre à jour la variable openai.api_key
.
Variables d'environnement
Installez Google Cloud CLI. La bibliothèque OpenAI peut lire les variables d'environnement OPENAI_API_KEY
et OPENAI_BASE_URL
pour modifier l'authentification et le point de terminaison dans son client par défaut.
Définissez les variables suivantes :
$ 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"
Ensuite, initialisez le client:
client = openai.OpenAI()
L'API Gemini Chat Completions utilise OAuth pour s'authentifier avec un jeton d'accès de courte durée.
Par défaut, les jetons d'accès durent une heure. Vous pouvez prolonger la durée de validité de votre jeton d'accès ou actualiser régulièrement votre jeton et mettre à jour la variable d'environnement OPENAI_API_KEY
.
Appeler l'API Gemini Chat Completions
L'exemple suivant montre comment envoyer des requêtes non 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 = "google/${MODEL_ID}", messages = [{"role": "user", "content": "Write a story about a magic backpack." }] ) print(model_response)
L'exemple suivant montre comment envoyer des requêtes de 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 = "google/${MODEL_ID}", stream = True, messages = [{"role": "user", "content": "Write a story about a magic backpack." }] ) print(model_response)
Paramètres possibles
L'API Gemini Chat Completions est compatible avec les paramètres OpenAI suivants. Pour obtenir une description de chaque paramètre, consultez la documentation d'OpenAI sur la création de réponses automatiques.
messages |
|
model |
|
max_tokens |
|
n |
|
response_format |
|
stop |
|
stream |
|
temperature |
|
top_p |
|
tools |
|
tool_choice |
|
function_call |
Ce champ est obsolète, mais est compatible avec la rétrocompatibilité. |
functions |
Ce champ est obsolète, mais est compatible avec la rétrocompatibilité. |
Si vous transmettez un paramètre non compatible, il est ignoré.
Étapes suivantes
- Consultez des exemples d'appel de l'API Inference avec la syntaxe compatible avec OpenAI.
- Consultez des exemples d'appel de l'API Function Calling avec une syntaxe compatible avec OpenAI.
- Apprenez-en plus sur l'API Gemini.
- En savoir plus sur la migration d'Azure OpenAI vers l'API Gemini.