Menggunakan library OpenAI dengan Vertex AI
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Dokumen ini menunjukkan cara menggunakan Chat Completions API yang kompatibel dengan OpenAI untuk berinteraksi dengan model Vertex AI. Dokumen ini membahas topik berikut:
Chat Completions API adalah endpoint yang kompatibel dengan OpenAI yang memungkinkan Anda menggunakan library Python dan REST OpenAI untuk berinteraksi dengan Gemini di Vertex AI. Jika Anda sudah menggunakan library OpenAI, API ini menawarkan cara untuk beralih antara model OpenAI dan model yang dihosting Vertex AI untuk membandingkan output, biaya, dan skalabilitas dengan sedikit perubahan pada kode yang ada. Jika Anda tidak menggunakan library OpenAI, sebaiknya gunakan Google Gen AI SDK.
Model yang didukung
Chat Completions API mendukung model Gemini dan model yang di-deploy sendiri tertentu dari Model Garden.
Model Gemini
Chat Completions API mendukung model Gemini berikut:
Model yang di-deploy sendiri dari Model Garden
Container 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 mencakup model yang didukung paling populer menurut penampung:
Parameter yang didukung
Untuk model Google, Chat Completions API mendukung parameter OpenAI berikut. Untuk mengetahui 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 |
System message
User message : Jenis text dan
image_url didukung. Jenis
image_url mendukung gambar yang disimpan sebagai
Cloud Storage URI atau encoding base64 dalam bentuk
"data:<MIME-TYPE>;base64,<BASE64-ENCODED-BYTES>" . Untuk
mempelajari cara membuat bucket Cloud Storage dan mengupload file ke dalamnya,
lihat
Menemukan penyimpanan objek.
Opsi detail tidak didukung.
Assistant message
Tool message
Function message : Kolom ini tidak digunakan lagi, tetapi didukung untuk kompatibilitas mundur.
|
model |
max_completion_tokens |
Alias untuk max_tokens . |
max_tokens |
n |
frequency_penalty |
presence_penalty |
reasoning_effort |
Mengonfigurasi berapa banyak waktu dan token yang digunakan untuk respons.
low : 1024
medium : 8192
high : 24576
Karena tidak ada pemikiran yang disertakan dalam respons, hanya salah satu dari
reasoning_effort atau extra_body.google.thinking_config
yang dapat ditentukan.
|
response_format |
json_object : Ditafsirkan sebagai meneruskan "application/json" ke
Gemini API.
json_schema .
Skema rekursif sepenuhnya tidak didukung. additional_properties
didukung.
text : Ditafsirkan sebagai meneruskan "text/plain" ke Gemini
API.
- Jenis MIME lainnya diteruskan apa adanya ke model, seperti meneruskan
"application/json" secara langsung.
|
seed |
Sesuai dengan GenerationConfig.seed . |
stop |
stream |
temperature |
top_p |
tools |
type
function
name
description
parameters : Tentukan parameter menggunakan
spesifikasi OpenAPI.
Hal ini berbeda dengan kolom parameter OpenAI, yang
dideskripsikan sebagai objek Skema JSON. Untuk mempelajari perbedaan kata kunci antara OpenAPI dan Skema JSON, lihat panduan OpenAPI.
|
tool_choice |
none
auto
required : Sesuai dengan mode ANY di
FunctionCallingConfig .
validated : Sesuai dengan mode VALIDATED
dalam FunctionCallingConfig . Ini khusus untuk Google.
|
web_search_options |
Berhubungan dengan alat GoogleSearch . Tidak ada sub-opsi yang
didukung. |
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.
Parameter input multimodal
Chat Completions API mendukung input multimodal tertentu.
input_audio |
data: URI atau format blob yang valid. Kami mendukung semua jenis blob,
termasuk gambar, audio, dan video. Apa pun yang didukung oleh
GenerateContent didukung (HTTP, Cloud Storage, dll.).
format: OpenAI mendukung wav (audio/wav)
dan mp3 (audio/mp3). Dengan Gemini, semua jenis MIME yang valid didukung.
|
image_url |
data: Seperti input_audio , semua URI atau format blob
yang valid didukung.
Perhatikan bahwa image_url sebagai URL akan menggunakan jenis MIME image/* secara default
dan image_url sebagai data blob dapat digunakan sebagai input multimodal apa pun.
detail: Mirip dengan
resolusi media,
parameter ini menentukan jumlah maksimum token per gambar untuk permintaan. Perhatikan bahwa meskipun kolom OpenAI adalah per gambar, Gemini menerapkan detail yang sama di seluruh permintaan, dan meneruskan beberapa jenis detail dalam satu permintaan akan memunculkan error.
|
Secara umum, parameter data
dapat berupa URI atau kombinasi jenis MIME dan
byte berenkode base64 dalam bentuk "data:<MIME-TYPE>;base64,<BASE64-ENCODED-BYTES>"
.
Untuk mengetahui daftar lengkap jenis MIME, lihat GenerateContent
.
Untuk mengetahui informasi selengkapnya tentang encoding base64 OpenAI, lihat dokumentasi mereka.
Untuk penggunaan, lihat contoh input multimodal kami.
Parameter khusus Gemini
Untuk menggunakan fitur yang didukung oleh Gemini, tetapi tidak oleh model OpenAI, teruskan fitur tersebut sebagai parameter dalam kolom extra_content
atau extra_body
. Jika Anda meneruskan fitur ini di luar kolom ini, fitur tersebut akan diabaikan.
Fitur extra_body
Untuk menggunakan fitur extra_body
khusus Gemini, sertakan fitur tersebut di kolom google
.
{
...,
"extra_body": {
"google": {
...,
// Add extra_body features here.
}
}
}
safety_settings |
Ini sesuai dengan SafetySetting Gemini. |
cached_content |
Ini sesuai dengan GenerateContentRequest.cached_content Gemini. |
thinking_config |
Ini sesuai dengan GenerationConfig.ThinkingConfig Gemini. |
thought_tag_marker |
Digunakan untuk memisahkan pemikiran model dari responsnya untuk model dengan fitur Berpikir yang tersedia.
Jika tidak ditentukan, tidak ada tag yang akan ditampilkan di sekitar pemikiran model. Jika ada, kueri berikutnya akan menghapus tag ide dan menandai ide dengan tepat untuk konteks. Hal ini membantu
mempertahankan konteks yang sesuai untuk kueri berikutnya. |
Kolom extra_part
memungkinkan Anda menentukan setelan tambahan untuk setiap Part
. Untuk menggunakan fitur extra_part
khusus Gemini, sertakan fitur tersebut di kolom google
.
{
...,
"extra_part": {
"google": {
...,
// Add extra_part features here.
}
}
}
extra_content |
Kolom untuk menambahkan konten khusus Gemini yang tidak boleh
diabaikan. |
thought |
Hal ini akan menandai secara eksplisit apakah suatu kolom adalah pemikiran (dan lebih diutamakan daripada
thought_tag_marker ). Hal ini harus digunakan untuk menentukan apakah panggilan alat
adalah bagian dari pemikiran atau tidak. |
Langkah berikutnya