Anda dapat memastikan bahwa output yang dihasilkan model selalu mematuhi skema tertentu sehingga Anda menerima respons yang diformat secara konsisten. Misalnya, Anda mungkin memiliki skema data yang sudah ditetapkan dan Anda gunakan untuk tugas lain. Jika model mengikuti skema yang sama, Anda dapat mengekstrak data secara langsung dari output model tanpa pemrosesan pasca-pemrosesan.
Untuk menentukan struktur output model, tetapkan skema respons, yang berfungsi seperti cetak biru untuk respons model. Saat Anda mengirimkan perintah dan menyertakan skema respons, respons model akan selalu mengikuti skema yang Anda tentukan.
Anda dapat mengontrol output yang dihasilkan saat menggunakan model berikut:
Model Gemini:
Model terbuka:
Untuk Model Terbuka, ikuti panduan pengguna ini.
Contoh kasus penggunaan
Salah satu kasus penggunaan untuk menerapkan skema respons adalah memastikan bahwa respons model menghasilkan JSON yang valid dan sesuai dengan skema Anda. Output model generatif dapat memiliki tingkat variabilitas tertentu, jadi menyertakan skema respons memastikan bahwa Anda selalu menerima JSON yang valid. Oleh karena itu, tugas downstream Anda dapat secara andal mengharapkan input JSON yang valid dari respons yang dihasilkan.
Contoh lainnya adalah membatasi cara model dapat merespons. Misalnya, Anda dapat
meminta model menganotasi teks dengan label yang ditentukan pengguna, bukan dengan label yang
dihasilkan model. Batasan ini berguna saat Anda mengharapkan sekumpulan
label tertentu seperti positive
atau negative
dan tidak ingin menerima campuran
label lain yang mungkin dihasilkan model seperti good
, positive
, negative
,
atau bad
.
Pertimbangan
Pertimbangan berikut membahas potensi batasan jika Anda berencana menggunakan skema respons:
- Anda harus menggunakan API untuk menentukan dan menggunakan skema respons. Tidak ada dukungan konsol.
- Ukuran skema respons Anda dihitung dalam batas token input.
- Hanya format output tertentu yang didukung, seperti
application/json
atautext/x.enum
. Untuk mengetahui informasi selengkapnya, lihat parameterresponseMimeType
di referensi Gemini API. - Output terstruktur mendukung subset referensi skema Vertex AI. Untuk mengetahui informasi selengkapnya, lihat Kolom skema yang didukung.
Skema yang kompleks dapat menyebabkan error
InvalidArgument: 400
. Kompleksitas dapat berasal dari nama properti yang panjang, batas panjang array yang panjang, enum dengan banyak nilai, objek dengan banyak properti opsional, atau kombinasi dari faktor-faktor ini.Jika Anda mendapatkan error ini dengan skema yang valid, lakukan satu atau beberapa perubahan berikut untuk mengatasi error:
- Perpendek nama properti atau nama enum.
- Meratakan array bertingkat.
- Kurangi jumlah properti dengan batasan, seperti angka dengan batas minimum dan maksimum.
- Kurangi jumlah properti dengan batasan yang rumit, seperti
properti dengan format yang rumit seperti
date-time
. - Kurangi jumlah properti opsional.
- Kurangi jumlah nilai valid untuk enum.
Kolom skema yang didukung
Output terstruktur mendukung kolom berikut dari skema Vertex AI. Jika Anda menggunakan kolom yang tidak didukung, Vertex AI tetap dapat menangani permintaan Anda, tetapi mengabaikan kolom tersebut.
anyOf
enum
: hanya enumstring
yang didukungformat
items
maximum
maxItems
minimum
minItems
nullable
properties
propertyOrdering
*required
* propertyOrdering
khusus untuk output terstruktur dan
bukan bagian dari skema Vertex AI. Kolom ini menentukan urutan
properti dibuat. Properti yang tercantum harus unik dan harus berupa
kunci yang valid dalam kamus properties
.
Untuk kolom format
, Vertex AI mendukung nilai berikut: date
,
date-time
, duration
, dan time
. Deskripsi dan format setiap nilai dijelaskan dalam OpenAPI Initiative Registry
Sebelum memulai
Tentukan skema respons untuk menentukan struktur output model, nama kolom, dan jenis data yang diharapkan untuk setiap kolom. Gunakan hanya kolom yang didukung seperti yang tercantum di bagian Pertimbangan. Semua kolom lainnya diabaikan.
Sertakan skema respons Anda sebagai bagian dari kolom responseSchema
saja. Jangan
menduplikasi skema dalam perintah input Anda. Jika Anda melakukannya, output yang dihasilkan mungkin
berkualitas lebih rendah.
Untuk contoh skema, lihat bagian Contoh skema dan respons model.
Perilaku model dan skema respons
Saat menghasilkan respons, model menggunakan nama dan konteks kolom dari perintah Anda. Oleh karena itu, sebaiknya gunakan struktur yang jelas dan nama kolom yang tidak ambigu agar maksud Anda jelas.
Secara default, kolom bersifat opsional, artinya model dapat mengisi kolom atau melewatkannya. Anda dapat menetapkan kolom sebagai wajib diisi untuk memaksa model memberikan nilai. Jika tidak ada konteks yang memadai dalam perintah input terkait, model akan menghasilkan respons terutama berdasarkan data yang digunakan untuk melatihnya.
Jika Anda tidak melihat hasil yang diharapkan, tambahkan lebih banyak konteks ke perintah input atau revisi skema respons Anda. Misalnya, tinjau respons model tanpa output terstruktur untuk melihat cara model merespons. Kemudian, Anda dapat memperbarui skema respons yang lebih sesuai dengan output model.
Mengirim perintah dengan skema respons
Secara default, semua kolom bersifat opsional, yang berarti model dapat menghasilkan respons ke kolom. Untuk memaksa model selalu membuat respons ke kolom, tetapkan kolom sebagai wajib diisi.
Python
Instal
pip install --upgrade google-genai
Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.
Tetapkan variabel lingkungan untuk menggunakan Gen AI SDK dengan Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Go
Pelajari cara menginstal atau mengupdate Go.
Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.
Tetapkan variabel lingkungan untuk menggunakan Gen AI SDK dengan Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- GENERATE_RESPONSE_METHOD: Jenis respons yang Anda inginkan dari model.
Pilih metode yang menghasilkan cara yang Anda inginkan untuk menampilkan respons model:
streamGenerateContent
: Respons di-streaming saat dibuat untuk mengurangi persepsi latensi bagi audiens manusia.generateContent
: Respons ditampilkan setelah sepenuhnya dihasilkan.
- LOCATION: Region untuk memproses permintaan.
- PROJECT_ID: Project ID Anda.
- MODEL_ID: ID model model multimodal yang ingin Anda gunakan.
- ROLE:
Peran dalam percakapan yang terkait dengan konten. Menentukan peran diperlukan bahkan dalam kasus penggunaan
sekali putaran.
Nilai yang dapat diterima mencakup hal berikut:
USER
: Menentukan konten yang dikirim oleh Anda.
- TEXT: Petunjuk teks yang akan disertakan dalam perintah.
- RESPONSE_MIME_TYPE: Jenis format
teks kandidat yang dihasilkan. Untuk mengetahui daftar nilai yang didukung, lihat
parameter
responseMimeType
di Gemini API. - RESPONSE_SCHEMA: Skema yang harus diikuti model saat membuat respons. Untuk mengetahui informasi selengkapnya, lihat referensi Skema.
Metode HTTP dan URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD
Isi JSON permintaan:
{ "contents": { "role": "ROLE", "parts": { "text": "TEXT" } }, "generation_config": { "responseMimeType": "RESPONSE_MIME_TYPE", "responseSchema": RESPONSE_SCHEMA, } }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD"
PowerShell
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD" | Select-Object -Expand Content
Anda akan melihat respons JSON yang mirip seperti berikut:
Contoh perintah curl
LOCATION="us-central1"
MODEL_ID="gemini-2.5-flash"
PROJECT_ID="test-project"
GENERATE_RESPONSE_METHOD="generateContent"
cat << EOF > request.json
{
"contents": {
"role": "user",
"parts": {
"text": "List a few popular cookie recipes."
}
},
"generation_config": {
"maxOutputTokens": 2048,
"responseMimeType": "application/json",
"responseSchema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"recipe_name": {
"type": "string",
},
},
"required": ["recipe_name"],
},
}
}
}
EOF
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:${GENERATE_RESPONSE_METHOD} \
-d '@request.json'
Contoh skema untuk output JSON
Bagian berikut menunjukkan berbagai contoh perintah dan skema respons. Contoh respons model juga disertakan setelah setiap contoh kode.
- Prakirakan cuaca untuk setiap hari dalam seminggu dalam array
- Mengklasifikasikan produk dengan enum yang terdefinisi dengan baik
Memperkirakan cuaca untuk setiap hari dalam seminggu
Contoh berikut menampilkan objek forecast
untuk setiap hari dalam seminggu yang menyertakan array properti seperti suhu dan tingkat kelembapan yang diharapkan untuk hari tersebut. Beberapa properti ditetapkan ke nullable
sehingga model dapat menampilkan nilai null jika tidak memiliki konteks yang cukup untuk
menghasilkan respons yang bermakna. Strategi ini membantu mengurangi halusinasi.
Python
Instal
pip install --upgrade google-genai
Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.
Tetapkan variabel lingkungan untuk menggunakan Gen AI SDK dengan Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Go
Pelajari cara menginstal atau mengupdate Go.
Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.
Tetapkan variabel lingkungan untuk menggunakan Gen AI SDK dengan Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Mengklasifikasikan produk
Contoh berikut mencakup enum tempat model harus mengklasifikasikan jenis dan kondisi objek dari daftar nilai yang diberikan.
Python
Instal
pip install --upgrade google-genai
Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.
Tetapkan variabel lingkungan untuk menggunakan Gen AI SDK dengan Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Go
Pelajari cara menginstal atau mengupdate Go.
Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.
Tetapkan variabel lingkungan untuk menggunakan Gen AI SDK dengan Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Node.js
Instal
npm install @google/genai
Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.
Tetapkan variabel lingkungan untuk menggunakan Gen AI SDK dengan Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Java
Pelajari cara menginstal atau mengupdate Java.
Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.
Tetapkan variabel lingkungan untuk menggunakan Gen AI SDK dengan Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True