Panduan ini memberikan contoh cara menggunakan Chat Completions API yang kompatibel dengan OpenAI dengan model Gemini, yang mencakup topik berikut: Anda dapat memanggil Chat Completions API dengan dua cara: Anda dapat mengirim permintaan sebagai non-streaming atau streaming. Contoh berikut menunjukkan cara mengirim permintaan non-streaming.
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, lihat
Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Contoh berikut menunjukkan cara mengirim permintaan streaming dengan menyetel
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, lihat
Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Contoh berikut menunjukkan cara mengirim permintaan multimodal yang menyertakan teks dan gambar.
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, lihat
Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Contoh berikut menunjukkan cara mengirim permintaan non-streaming ke model yang di-deploy sendiri.
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, lihat
Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Contoh berikut menunjukkan cara mengirim permintaan streaming ke model yang di-deploy sendiri.
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, lihat
Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Anda dapat menggunakan kolom REST API: Untuk meneruskan parameter menggunakan REST API, tambahkan parameter tersebut dalam objek Python SDK: Untuk meneruskan parameter menggunakan Python SDK, berikan parameter tersebut dalam kamus ke argumen Anda dapat menggunakan kolom Dengan kolom Per pesan di kolom Per panggilan alat Anda dapat menggunakan permintaan Chat Completions API mendukung berbagai input multimodal, termasuk audio dan video. Anda dapat menggunakan parameter
extra_body
: Menjelaskan cara meneruskan parameter tambahan khusus Google dalam permintaan Anda.extra_content
: Menunjukkan cara menambahkan konten tambahan ke pesan atau panggilan alat.curl
: Menawarkan contoh curl
langsung untuk kasus penggunaan lanjutan seperti input multimodal.
Metode
Deskripsi
Kasus Penggunaan
Memanggil model Gemini terkelola
Kirim permintaan ke endpoint yang dikelola Google untuk model Gemini tertentu.
Paling cocok untuk kasus penggunaan umum, penyiapan cepat, dan mengakses model Google terbaru tanpa mengelola infrastruktur.
Memanggil model yang di-deploy sendiri
Kirim permintaan ke endpoint yang Anda buat dengan men-deploy model di Vertex AI.
Ideal jika Anda memerlukan endpoint khusus untuk model yang telah disesuaikan atau memerlukan konfigurasi tertentu yang tidak tersedia di endpoint default.
Memanggil Gemini dengan Chat Completions API
Jenis Permintaan
Deskripsi
Kelebihan
Kekurangan
Non-streaming
Respons lengkap dibuat, lalu dikirim kembali dalam satu bagian.
Lebih mudah diterapkan; respons lengkap tersedia sekaligus.
Latensi yang dirasakan lebih tinggi karena pengguna menunggu seluruh respons dihasilkan.
Streaming
Respons dikirim kembali dalam potongan kecil saat dihasilkan. Untuk mengaktifkan streaming, tetapkan
"stream": true
di isi permintaan.Latensi yang dirasakan lebih rendah; memberikan pengalaman yang lebih interaktif karena respons muncul secara bertahap.
Memerlukan logika sisi klien yang lebih kompleks untuk menangani aliran data yang masuk.
Mengirim permintaan non-streaming
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}",
"messages": [{
"role": "user",
"content": "Write a story about a magic backpack."
}]
}'
Python
Mengirim permintaan streaming
"stream": true
.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
Mengirim perintah dan gambar ke Gemini API di Vertex AI
Python
Memanggil model yang di-deploy sendiri dengan Chat Completions API
Mengirim permintaan non-streaming
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/global/endpoints/${ENDPOINT}/chat/completions \
-d '{
"messages": [{
"role": "user",
"content": "Write a story about a magic backpack."
}]
}'
Python
Mengirim permintaan streaming
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/global/endpoints/${ENDPOINT}/chat/completions \
-d '{
"stream": true,
"messages": [{
"role": "user",
"content": "Write a story about a magic backpack."
}]
}'
Python
extra_body
contohextra_body
untuk meneruskan parameter khusus Google dalam permintaan Anda.
google
.{
...,
"extra_body": {
"google": {
...,
"thought_tag_marker": "..."
}
}
}
extra_body
.client.chat.completions.create(
...,
extra_body = {
'extra_body': { 'google': { ... } }
},
)
extra_content
contohextra_content
dengan REST API untuk menambahkan informasi tambahan ke pesan atau panggilan alat.
content
string{
"messages": [
{ "role": "...", "content": "...", "extra_content": { "google": { ... } } }
]
}
content
multipart{
"messages": [
{
"role": "...",
"content": [
{ "type": "...", ..., "extra_content": { "google": { ... } } }
]
}
}
{
"messages": [
{
"role": "...",
"tool_calls": [
{
...,
"extra_content": { "google": { ... } }
}
]
}
]
}
Contoh permintaan
curl
curl
ini untuk berinteraksi langsung dengan API, tanpa menggunakan SDK.Gunakan
thinking_config
dengan extra_body
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/us-central1/endpoints/openapi/chat/completions \
-d '{ \
"model": "google/gemini-2.5-flash-preview-04-17", \
"messages": [ \
{ "role": "user", \
"content": [ \
{ "type": "text", \
"text": "Are there any primes number of the form n*ceil(log(n))" \
}] }], \
"extra_body": { \
"google": { \
"thinking_config": { \
"include_thoughts": true, "thinking_budget": 10000 \
}, \
"thought_tag_marker": "think" } }, \
"stream": true }'
Permintaan multimodal
Meneruskan data gambar dengan
image_url
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1/projects/${PROJECT}/locations/us-central1/endpoints/openapi/chat/completions \
-d '{ \
"model": "google/gemini-2.0-flash-001", \
"messages": [{ "role": "user", "content": [ \
{ "type": "text", "text": "Describe this image" }, \
{ "type": "image_url", "image_url": "gs://cloud-samples-data/generative-ai/image/scones.jpg" }] }] }'
Meneruskan data audio dengan
input_audio
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1/projects/${PROJECT}/locations/us-central1/endpoints/openapi/chat/completions \
-d '{ \
"model": "google/gemini-2.0-flash-001", \
"messages": [ \
{ "role": "user", \
"content": [ \
{ "type": "text", "text": "Describe this: " }, \
{ "type": "input_audio", "input_audio": { \
"format": "audio/mp3", \
"data": "gs://cloud-samples-data/generative-ai/audio/pixel.mp3" } }] }] }'
Output terstruktur
response_format
untuk meminta output JSON terstruktur dari model.Contoh dengan Python SDK
from pydantic import BaseModel
from openai import OpenAI
client = OpenAI()
class CalendarEvent(BaseModel):
name: str
date: str
participants: list[str]
completion = client.beta.chat.completions.parse(
model="google/gemini-2.5-flash-preview-04-17",
messages=[
{"role": "system", "content": "Extract the event information."},
{"role": "user", "content": "Alice and Bob are going to a science fair on Friday."},
],
response_format=CalendarEvent,
)
print(completion.choices[0].message.parsed)
Langkah berikutnya
Contoh
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-08-19 UTC.