Dengan Gemini Chat Autocomplete API, Anda dapat mengirim permintaan ke Vertex AI Gemini API menggunakan library OpenAI untuk Python dan REST. Jika sudah menggunakan library OpenAI, Anda dapat menggunakan API ini untuk beralih antara memanggil model OpenAI dan model Gemini untuk membandingkan output, biaya, dan skalabilitas, tanpa mengubah kode yang sudah ada. Jika belum menggunakan library OpenAI, sebaiknya Anda memanggil Gemini API secara langsung.
Model yang didukung
Model | Versi |
---|---|
Flash Gemini 1.5 | 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 |
Autentikasikan
Untuk menggunakan library Python OpenAI, instal OpenAI SDK:
pip install openai
Untuk melakukan autentikasi dengan Gemini Chat Autocomplete API, Anda dapat mengubah konfigurasi klien atau mengubah konfigurasi lingkungan untuk menggunakan autentikasi Google dan endpoint Vertex AI. Pilih salah satu dari opsi berikut, mana yang lebih mudah:
Penyiapan klien
Untuk mendapatkan kredensial Google secara terprogram di Python, Anda dapat menggunakan Python SDK google-auth
:
pip install google-auth
pip install requests
Ubah OpenAI SDK agar mengarah ke endpoint penyelesaian 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)
Secara {i>default<i}, token akses berlaku selama 1 jam. Anda dapat memperpanjang masa pakai token akses atau memperbarui token secara berkala dan memperbarui variabel openai.api_key
.
Variabel lingkungan
Menginstal Google Cloud CLI. Library OpenAI dapat membaca variabel lingkungan OPENAI_API_KEY
dan OPENAI_BASE_URL
untuk mengubah autentikasi dan endpoint di klien default-nya.
Tetapkan variabel berikut:
$ 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"
Berikutnya, inisialisasi klien:
client = openai.OpenAI()
Gemini Chat Completion API menggunakan OAuth untuk
melakukan autentikasi dengan
token akses berumur pendek.
Secara {i>default<i}, token akses berlaku selama 1 jam. Anda dapat memperpanjang masa pakai token akses atau memperbarui token secara berkala dan memperbarui variabel lingkungan OPENAI_API_KEY
.
Memanggil Gemini Chat Completion API
Contoh berikut menunjukkan cara mengirim permintaan 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 = f"google/{MODEL_ID}", messages = [{"role": "user", "content": "Write a story about a magic backpack." }] ) print(model_response)
Contoh berikut menunjukkan cara mengirim permintaan 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)
Parameter yang didukung
Gemini Chat Completion API mendukung parameter OpenAI berikut. Untuk deskripsi setiap parameter, lihat dokumentasi OpenAI tentang Membuat penyelesaian chat.
messages |
|
model |
|
max_tokens |
|
n |
|
response_format |
|
stop |
|
stream |
|
temperature |
|
top_p |
|
tools |
|
tool_choice |
|
function_call |
Kolom ini tidak digunakan lagi, tetapi didukung untuk kompatibilitas mundur. |
functions |
Kolom ini tidak digunakan lagi, tetapi didukung untuk kompatibilitas mundur. |
Jika Anda meneruskan parameter yang tidak didukung, parameter tersebut akan diabaikan.
Langkah selanjutnya
- Lihat contoh pemanggilan Inference API dengan sintaksis yang kompatibel dengan OpenAI.
- Lihat contoh pemanggilan Function Calling API dengan sintaksis yang kompatibel dengan OpenAI.
- Pelajari Gemini API lebih lanjut.
- Pelajari lebih lanjut cara bermigrasi dari Azure OpenAI ke Gemini API.