Menggunakan library OpenAI dengan Gemini Enterprise Agent Platform

Chat Completions API berfungsi sebagai endpoint yang kompatibel dengan Open AI, yang dirancang untuk mempermudah antarmuka dengan Gemini di Gemini Enterprise Agent Platform menggunakan library OpenAI untuk Python dan REST. Jika sudah menggunakan library OpenAI, Anda dapat menggunakan API ini sebagai cara berbiaya rendah untuk beralih antara memanggil model OpenAI dan model yang dihosting Agent Platform untuk membandingkan output, biaya, dan skalabilitas, tanpa mengubah kode yang ada. Jika belum menggunakan library OpenAI, sebaiknya gunakan Google Gen AI SDK. Untuk memigrasikan kode OpenAI SDK yang ada agar menggunakan Google Gen AI SDK, lihat Bermigrasi dari OpenAI SDK ke Google Gen AI SDK.

Model yang didukung

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

Model Gemini

Model berikut memberikan dukungan untuk Chat Completions API:

Klik untuk meluaskan model yang didukung

Model yang di-deploy sendiri dari Model Garden

The Hugging Face Text Generation Interface (HF TGI) dan container vLLM bawaan Agent Platform Model Garden mendukung Chat Completions API. Namun, tidak semua model yang di-deploy ke container ini mendukung Chat Completions API. Tabel berikut mencakup model yang didukung paling populer menurut container:

HF TGI

vLLM

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 mana yang didukung, lihat dokumentasi model.

messages
  • System message
  • User message: Jenis text dan image_url didukung. Jenis image_url mendukung gambar yang disimpan dalam 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 bucket tersebut, lihat Menemukan penyimpanan objek.
  • Assistant message
  • Tool message
  • Function message: Kolom ini tidak digunakan lagi, tetapi didukung untuk kompatibilitas mundur.
model
detail Untuk model yang lebih lama dari Gemini 3, kolom detail harus konsisten di semua pesan dan konten (berada di tingkat permintaan). Untuk Gemini 3 dan yang lebih baru, kolom ini sesuai dengan `media_resolution` tingkat bagian. Untuk mengetahui informasi selengkapnya, lihat Resolusi Media.
max_completion_tokens Alias untuk max_tokens.
modalities Mendukung audio, image, dan text.
max_tokens
n
frequency_penalty
presence_penalty
reasoning_effort Mengonfigurasi jumlah waktu dan jumlah token yang digunakan pada 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 yang sepenuhnya rekursif tidak didukung. additional_properties didukung.
  • text: Ditafsirkan sebagai meneruskan "text/plain" ke Gemini API.
  • Jenis MIME lainnya diteruskan sebagaimana 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 dijelaskan 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 di FunctionCallingConfig. Ini khusus untuk Google.
web_search_options Sesuai 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. 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: Mirip dengan resolusi media, hal ini menentukan token maksimum per gambar untuk permintaan. Perhatikan bahwa meskipun kolom OpenAI 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 daftar lengkap jenis MIME, lihat GenerateContent. Untuk mengetahui informasi selengkapnya tentang encoding base64 OpenAI, lihat dokumentasinya.

Untuk penggunaan, lihat contoh input multimodal kami.

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

Sertakan kolom google untuk berisi fitur extra_body khusus Gemini.

{
  ...,
  "extra_body": {
     "google": {
       ...,
       // Add extra_body features here.
     }
   }
}
safety_settings Kolom ini sesuai dengan Gemini SafetySetting.
cached_content Kolom ini sesuai dengan kolom Gemini generateContent.cached_content
thinking_config Kolom ini sesuai dengan Gemini GenerationConfig.ThinkingConfig.
thought_tag_marker Digunakan untuk memisahkan pemikiran model dari responsnya untuk model yang memiliki Thinking.
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.
stream_function_call_arguments Mengalirkan kembali argumen panggilan fungsi sebagai segmen JSON. Untuk mengetahui informasi selengkapnya, lihat Mengalirkan argumen panggilan fungsi.
tools Tentukan alat yang mirip dengan `GenerateContent`. Untuk mengetahui informasi selengkapnya, lihat Tool.
media_resolution Tentukan resolusi media tingkat permintaan yang mirip dengan `GenerateContent`. Untuk mengetahui informasi selengkapnya, lihat MediaResolution.

Fitur extra_content

extra_content memungkinkan Anda menentukan konten khusus Gemini yang tidak boleh diabaikan.

Sertakan kolom google untuk berisi fitur extra_content khusus Gemini.

{
  ...,
  "extra_content": {
     "google": {
       ...,
       // Add extra_content features here.
     }
   }
}
thought Kolom ini secara eksplisit menandai apakah kolom adalah pemikiran dan lebih diprioritaskan daripada thought_tag_marker. Kolom ini membantu membedakan antara langkah-langkah yang berbeda dalam proses pemikiran, terutama dalam skenario penggunaan alat ketika langkah-langkah perantara mungkin keliru sebagai jawaban akhir. Dengan menandai bagian tertentu dari input sebagai pemikiran, Anda dapat memandu model untuk memperlakukannya sebagai penalaran internal, bukan respons yang dihadapi pengguna.
thought_signature Kolom byte yang memberikan tanda tangan pemikiran untuk divalidasi terhadap pemikiran yang ditampilkan oleh model. Kolom ini berbeda dengan thought, yang merupakan kolom boolean. Untuk mengetahui informasi selengkapnya, lihat Tanda tangan pemikiran.
parts Khusus untuk pesan Alat guna meneruskan bagian respons fungsi multimodal kembali ke model. Untuk mengetahui informasi selengkapnya, lihat FunctionResponsePart dan Respons fungsi multimodal.

Langkah berikutnya