Chat Autocomplete API memungkinkan Anda mengirim permintaan ke model Vertex AI dengan menggunakan library OpenAI untuk Python dan REST. Jika sudah menggunakan library OpenAI, Anda bisa menggunakan API ini untuk beralih antara memanggil model OpenAI dan Model yang dihosting Vertex AI untuk membandingkan output, biaya, dan skalabilitas, harus mengubah kode yang sudah ada. Jika Anda belum menggunakan library OpenAI, sebaiknya Anda memanggil Gemini API secara langsung.
Model yang didukung
ChatCompleted API mendukung model Gemini dan pilihan yang di-deploy secara mandiri dari Model Garden.
Model Gemini
Tabel berikut menunjukkan model Gemini 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 |
Model yang di-deploy sendiri dari Model Garden
Tujuan Antarmuka Pembuatan Teks HuggingFace (HF TGI) dan vLLM bawaan Model Garden Vertex AI yang mendukung Chat Autocomplete API. Namun, tidak semua model yang di-deploy ke container ini mendukung Chat Interop API. Tabel berikut berisi model paling populer yang didukung menurut penampung:
TGI HF |
vLLM |
---|---|
Autentikasikan
Untuk menggunakan library Python OpenAI, instal OpenAI SDK:
pip install openai
Untuk melakukan autentikasi dengan Chat Autocomplete API, Anda dapat memodifikasi konfigurasi klien atau mengubah lingkungan Anda konfigurasi AI Google untuk menggunakan autentikasi Google endpoint. Pilih metode mana yang lebih mudah, dan ikuti langkah-langkah untuk penyiapan tergantung apakah Anda ingin memanggil model Gemini atau tidak atau yang di-deploy sendiri.
Beberapa model tertentu di Model Garden dan
model Wajah Memeluk yang didukung
harus
di-deploy ke endpoint Vertex AI
terlebih dahulu sebelum mereka dapat melayani permintaan.
Kapan
memanggil model yang di-deploy sendiri ini dari Chat Autocomplete 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 bisa menggunakan
SDK Python google-auth
:
pip install google-auth
pip install requests
Mengubah OpenAI SDK agar mengarah ke chat Vertex AI titik akhir penyelesaian:
# 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_ID = 'PROJECT_ID'
LOCATION = 'LOCATION'
##############################
# Choose one of the following:
##############################
# If you are calling a Gemini model, set the MODEL_ID variable and set
# your client's base URL to use openapi.
MODEL_ID = 'MODEL_ID'
client = openai.OpenAI(
base_url = f'https://{LOCATION}-aiplatform.googleapis.com/v1beta1/projects/{PROJECT_ID}/locations/{LOCATION}/endpoints/openapi',
api_key = creds.token)
# If you are calling a self-deployed model from Model Garden, set the
# ENDPOINT_ID variable and set your client's base URL to use your endpoint.
MODEL_ID = 'MODEL_ID'
client = openai.OpenAI(
base_url = f'https://{LOCATION}-aiplatform.googleapis.com/v1beta1/projects/{PROJECT_ID}/locations/{LOCATION}/endpoints/{ENDPOINT}',
api_key = creds.token)
Secara {i>default<i}, token akses berlaku selama 1 jam. Anda dapat
memperpanjang masa pakai token akses
atau perbarui token secara berkala dan perbarui variabel openai.api_key
.
Variabel lingkungan
Menginstal Google Cloud CLI. Library OpenAI dapat
membaca lingkungan OPENAI_API_KEY
dan OPENAI_BASE_URL
variabel untuk mengubah autentikasi dan endpoint di klien default mereka.
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, setel MODEL_ID
variabel 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 ENDPOINT
variabel dan menggunakannya di URL Anda sebagai gantinya:
$ export ENDPOINT=ENDPOINT_ID
$ export OPENAI_BASE_URL="https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/endpoints/${ENDPOINT}"
Berikutnya, inisialisasi klien:
client = openai.OpenAI()
Gemini Chat Completion API menggunakan OAuth untuk mengautentikasi
dengan
token akses jangka pendek.
Secara {i>default<i}, token akses berlaku selama 1 jam. Anda dapat
memperpanjang masa pakai token akses
atau secara berkala memperbarui token Anda dan memperbarui OPENAI_API_KEY
variabel lingkungan.
Memanggil Gemini dengan 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
Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk informasi selengkapnya, lihat Dokumentasi referensi Python API.
Contoh berikut menunjukkan cara mengirim permintaan streaming ke Model Gemini dengan menggunakan ChatCompletion API:
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
Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk informasi selengkapnya, lihat Dokumentasi referensi Python API.
Memanggil model yang di-deploy sendiri dengan ChatCompletion API
Contoh berikut menunjukkan cara mengirim permintaan non-streaming:
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." }] }'
Contoh berikut menunjukkan cara mengirim permintaan streaming ke model yang di-deploy sendiri dengan menggunakan ChatCompletion API:
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." }] }'
Parameter yang didukung
Untuk model Google, Chat Completion API mendukung OpenAI berikut parameter. Untuk penjelasan setiap parameter, lihat dokumentasi OpenAI tentang Membuat penyelesaian chat. Dukungan parameter untuk model pihak ketiga bervariasi menurut model. Untuk melihat parameter didukung, baca dokumentasi model tersebut.
messages |
|
model |
|
max_tokens |
|
n |
|
frequency_penalty |
|
response_format |
|
stop |
|
stream |
|
temperature |
|
top_p |
|
tools |
|
tool_choice |
|
function_call |
Kolom ini tidak digunakan lagi, tetapi didukung untuk versi mundur kompatibilitas mundur. |
functions |
Kolom ini tidak digunakan lagi, tetapi didukung untuk versi mundur kompatibilitas mundur. |
Jika Anda meneruskan parameter yang tidak didukung, parameter tersebut akan diabaikan.
Perbarui kredensial Anda
Contoh berikut menunjukkan cara memperbarui kredensial secara otomatis sebagai diperlukan:
Python
Langkah selanjutnya
- Lihat contoh cara memanggil Inference API dengan sintaksis yang kompatibel dengan OpenAI.
- Lihat contoh cara memanggil 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.