Menggunakan library OpenAI dengan Vertex AI

Chat Completions API berfungsi sebagai endpoint yang kompatibel dengan Open AI, yang dirancang untuk memudahkan antarmuka dengan Gemini di Vertex AI dengan menggunakan library OpenAI untuk Python dan REST. Jika sudah menggunakan library OpenAI, Anda dapat menggunakan API ini sebagai cara hemat biaya 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 menggunakan Google Gen AI SDK.

Model yang didukung

Chat Completions API mendukung model Gemini dan model tertentu yang di-deploy sendiri dari Model Garden.

Model Gemini

Model berikut memberikan dukungan untuk Chat Completions API:

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 dan paling populer menurut penampung:

HF TGI

vLLM

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
  • System message
  • User message: Jenis text dan image_url didukung. Jenis image_url mendukung gambar yang disimpan dalam URI Cloud Storage 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_tokens
n
frequency_penalty
presence_penalty
response_format
  • json_object: Ditafsirkan sebagai meneruskan "application/json" ke Gemini API.
  • text: Ditafsirkan sebagai meneruskan "text/plain" ke Gemini API.
  • Jenis MIME lainnya diteruskan apa adanya ke model, seperti meneruskan "application/json" secara langsung.
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 JSON Schema, lihat panduan OpenAPI.
tool_choice
  • none
  • auto
  • required: Sesuai dengan mode ANY di FunctionCallingConfig.
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. Semua 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, URI atau format blob yang valid didukung.
    Perhatikan bahwa image_url sebagai URL akan ditetapkan secara default ke jenis MIME image/* dan image_url sebagai data blob dapat digunakan sebagai input multimodal apa pun.
  • detail: Serupa dengan resolusi media, ini menentukan token maksimum per gambar untuk permintaan. Perhatikan bahwa meskipun kolom OpenAI bersifat per gambar, Gemini menerapkan detail yang sama di seluruh permintaan, dan meneruskan beberapa jenis detail dalam satu permintaan akan menampilkan 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 informasi selengkapnya tentang encoding base64 OpenAI, lihat dokumentasinya.

Untuk penggunaannya, lihat contoh input multimodal.

Parameter khusus Gemini

Ada beberapa fitur yang didukung oleh Gemini yang tidak tersedia di model OpenAI. Fitur ini masih dapat diteruskan sebagai parameter, tetapi harus berada dalam extra_content atau extra_body atau akan diabaikan.

Fitur extra_body

safety_settings Ini sesuai dengan SafetySetting Gemini.
cached_content Ini sesuai dengan GenerateContentRequest.cached_content Gemini.
thought_tag_marker Digunakan untuk memisahkan pemikiran model dari responsnya untuk model dengan Pemikiran yang tersedia.
Jika tidak ditentukan, tidak ada tag yang akan ditampilkan di sekitar pemikiran model. Jika ada, kueri berikutnya akan menghapus tag pemikiran dan menandai pemikiran dengan tepat untuk konteks. Hal ini membantu mempertahankan konteks yang sesuai untuk kueri berikutnya.

Langkah berikutnya