Chat Completions API memungkinkan Anda mengirim permintaan ke model Vertex AI dengan 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 yang dihosting Vertex AI untuk membandingkan output, biaya, dan skalabilitas, tanpa mengubah kode yang ada. Jika Anda belum menggunakan library OpenAI, sebaiknya Anda memanggil Gemini API secara langsung.
Model yang didukung
Chat Completions API mendukung model Gemini dan beberapa model yang di-deploy sendiri dari Model Garden.
Model Gemini
Tabel berikut menunjukkan model Gemini yang didukung:
Model | Versi |
---|---|
Gemini 2.0 Flash | google/gemini-2.0-flash-001 |
Gemini 1.5 Flash | google/gemini-1.5-flash |
Gemini 1.5 Pro | google/gemini-1.5-pro |
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 |
Model yang di-deploy sendiri dari Model Garden
Penampung Hugging Face Text Generation Interface (HF TGI) dan vLLM bawaan Vertex AI Model Garden mendukung Chat Completions API. Namun, tidak semua model yang di-deploy ke penampung ini mendukung Chat Completions API. Tabel berikut menyertakan model yang didukung paling populer menurut penampung:
HF TGI |
vLLM |
---|---|
Autentikasikan
Untuk menggunakan library OpenAI Python, instal OpenAI SDK:
pip install openai
Untuk mengautentikasi dengan Chat Completions API, Anda dapat mengubah penyiapan klien atau mengubah konfigurasi lingkungan untuk menggunakan autentikasi Google dan endpoint Vertex AI. Pilih metode mana pun yang lebih mudah, dan ikuti langkah-langkah untuk menyiapkan, bergantung pada apakah Anda ingin memanggil model Gemini atau model Model Garden yang di-deploy sendiri.
Model tertentu di Model Garden dan
model Hugging Face yang didukung
harus
di-deploy ke endpoint Vertex AI
terlebih dahulu sebelum dapat menyalurkan permintaan.
Saat
memanggil model yang di-deploy sendiri ini dari Chat Completions API, Anda harus
menentukan ID endpoint. Untuk mencantumkan
endpoint Vertex AI yang ada, gunakan
perintah gcloud ai endpoints list
.
Penyiapan klien
Untuk mendapatkan kredensial Google secara terprogram di Python, Anda dapat menggunakan
google-auth
Python SDK:
pip install google-auth requests
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Python Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Secara default, token akses berlaku selama 1 jam. Anda dapat
memperpanjang masa berlaku token akses
atau memuat ulang 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 defaultnya.
Tetapkan variabel berikut:
$ export PROJECT_ID=PROJECT_ID
$ export LOCATION=LOCATION
$ export OPENAI_API_KEY="$(gcloud auth application-default print-access-token)"
Untuk memanggil model Gemini, tetapkan variabel MODEL_ID
dan gunakan endpoint openapi
:
$ export MODEL_ID=MODEL_ID
$ export OPENAI_BASE_URL="https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/endpoints/openapi"
Untuk memanggil model yang di-deploy sendiri dari Model Garden, tetapkan variabel ENDPOINT
dan gunakan variabel tersebut di URL Anda:
$ export ENDPOINT=ENDPOINT_ID
$ export OPENAI_BASE_URL="https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/endpoints/${ENDPOINT}"
Selanjutnya, lakukan inisialisasi klien:
client = openai.OpenAI()
Gemini Chat Completions API menggunakan OAuth untuk mengautentikasi
dengan
token akses berumur pendek.
Secara default, token akses berlaku selama 1 jam. Anda dapat
memperpanjang masa berlaku token akses
atau memuat ulang token secara berkala dan memperbarui variabel lingkungan
OPENAI_API_KEY
.
Memanggil Gemini dengan Chat Completions 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
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Python Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Contoh berikut menunjukkan cara mengirim permintaan streaming ke model Gemini menggunakan Chat Completions API:
REST
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
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Python Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Memanggil model yang di-deploy sendiri dengan Chat Completions API
Contoh berikut menunjukkan cara mengirim permintaan non-streaming:
REST
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/endpoints/${ENDPOINT}/chat/completions \ -d '{ "messages": [{ "role": "user", "content": "Write a story about a magic backpack." }] }'
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Python Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Contoh berikut menunjukkan cara mengirim permintaan streaming ke model yang di-deploy sendiri menggunakan Chat Completions API:
REST
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/endpoints/${ENDPOINT}/chat/completions \ -d '{ "stream": true, "messages": [{ "role": "user", "content": "Write a story about a magic backpack." }] }'
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Python Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Parameter yang didukung
Untuk model Google, Chat Completions API mendukung parameter OpenAI berikut. Untuk deskripsi setiap parameter, lihat dokumentasi OpenAI tentang Membuat penyelesaian chat. Dukungan parameter untuk model pihak ketiga bervariasi menurut model. Untuk melihat parameter yang didukung, lihat dokumentasi model.
messages |
|
model |
|
max_tokens |
|
n |
|
frequency_penalty |
|
presence_penalty |
|
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.
Memuat ulang kredensial
Contoh berikut menunjukkan cara memuat ulang kredensial secara otomatis sesuai kebutuhan:
Python
Langkah berikutnya
- 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.