Mit der Gemini Chat Completions API können Sie Anfragen an die Vertex AI Gemini API mithilfe der OpenAI-Bibliotheken für Python und REST senden. Wenn Sie bereits die OpenAI-Bibliotheken verwenden, können Sie mit dieser API zwischen dem Aufrufen von OpenAI-Modellen und Gemini-Modellen wechseln, um Ausgabe, Kosten und Skalierbarkeit zu vergleichen, ohne den vorhandenen Code ändern zu müssen. Wenn Sie noch keine OpenAI-Bibliotheken nutzen, sollten Sie die Gemini API direkt aufrufen.
Unterstützte Modelle
Modell | 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 |
Authentifizieren
Installieren Sie das OpenAI SDK, um die OpenAI-Python-Bibliotheken zu verwenden:
pip install openai
Für die Authentifizierung bei der Gemini Chat Completions API haben Sie folgende Möglichkeiten: Sie können entweder die Client-Einrichtung ändern oder die Umgebungskonfiguration ändern, um die Google-Authentifizierung und einen Vertex AI-Endpunkt zu verwenden. Wählen Sie eine der folgenden Optionen aus:
Client-Setup
Um Google-Anmeldedaten programmatisch in Python abzurufen, können Sie das google-auth
Python SDK verwenden:
pip install google-auth
pip install requests
Ändern Sie das OpenAI SDK so, dass es auf den Vertex AI-Chat Abschlussendpunkt verweist:
# 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)
Standardmäßig bleiben Zugriffstokens eine Stunde lang gültig. Sie können die Lebensdauer des Zugriffstokens verlängern
oder das Token regelmäßig aktualisieren und die Variable openai.api_key
updaten.
Umgebungsvariablen
Installieren Sie die Google Cloud CLI. Die OpenAI-Bibliothek kann die Umgebungsvariablen OPENAI_API_KEY
und OPENAI_BASE_URL
lesen, um die Authentifizierung und den Endpunkt im Standardclient zu ändern.
Legen Sie die folgenden Variablen fest:
$ 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"
Initialisieren Sie als Nächstes den Client:
client = openai.OpenAI()
Die Gemini Chat Completions API verwendet OAuth zur Authentifizierung
mit einem kurzlebigen Zugriffstoken.
Standardmäßig bleiben Zugriffstokens eine Stunde lang gültig. Sie können die Lebensdauer des Zugriffstokens verlängern oder das Token regelmäßig aktualisieren und die Umgebungsvariable OPENAI_API_KEY
updaten.
Gemini Chat Completions API aufrufen
Im folgenden Beispiel wird gezeigt, wie Nicht-Streaming Anfragen gesendet werden:
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)
Im folgenden Beispiel wird gezeigt, wie Streaminganfragen gesendet werden:
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)
Unterstützte Parameter
Die Gemini Chat Completions API unterstützt die folgenden OpenAI- Parameter. Eine Beschreibung der einzelnen Parameter finden Sie in der OpenAI-Dokumentation zu Chatvervollständigungen erstellen
messages |
|
model |
|
max_tokens |
|
n |
|
response_format |
|
stop |
|
stream |
|
temperature |
|
top_p |
|
tools |
|
tool_choice |
|
function_call |
Dieses Feld ist veraltet, wird aber für Abwärtskompatibilität unterstützt. |
functions |
Dieses Feld ist veraltet, wird aber für Abwärtskompatibilität unterstützt. |
Nicht unterstützte Parameter werden ignoriert.
Nächste Schritte
- Hier finden Sie Beispiele für das Aufrufen der Inference API mit der OpenAI-kompatiblen Syntax.
- Hier finden Sie Beispiele für das Aufrufen der Function Calling API mit OpenAI-kompatibler Syntax.
- Weitere Informationen zur Gemini API
- Weitere Informationen zur Migration von Azure OpenAI zur Gemini API