Gemini menghasilkan teks tidak terstruktur secara default, tetapi beberapa aplikasi memerlukan teks terstruktur. Untuk kasus penggunaan ini, Anda dapat membatasi Gemini untuk merespons dengan JSON, format data terstruktur yang cocok untuk pemrosesan otomatis. Anda juga dapat membatasi model untuk merespons dengan salah satu opsi yang ditentukan dalam enum.
Berikut beberapa kasus penggunaan yang mungkin memerlukan output terstruktur dari model:
- Buat database perusahaan dengan mengambil informasi perusahaan dari artikel surat kabar.
- Mengambil informasi standar dari resume.
- Mengekstrak bahan dari resep dan menampilkan link ke situs bahan belanja untuk setiap bahan.
Dalam perintah, Anda dapat meminta Gemini untuk menghasilkan output berformat JSON, tetapi perhatikan bahwa model tidak dijamin akan menghasilkan JSON dan tidak ada yang lain selain JSON.
Untuk respons yang lebih deterministik, Anda dapat meneruskan skema JSON tertentu di kolom responseSchema
sehingga Gemini selalu merespons dengan struktur yang diharapkan. Untuk mempelajari lebih lanjut cara menggunakan skema, lihat Selengkapnya tentang skema JSON.
Panduan ini menunjukkan cara membuat JSON menggunakan metode generateContent
melalui SDK pilihan Anda atau menggunakan REST API secara langsung. Contoh ini menunjukkan input khusus teks, walaupun Gemini juga dapat menghasilkan respons JSON untuk permintaan multimodal yang menyertakan gambar, video, dan audio.
Selengkapnya tentang skema JSON
Saat mengonfigurasi model untuk menampilkan respons JSON, Anda dapat menggunakan objek Schema
untuk menentukan bentuk data JSON. Schema
mewakili subset
tertentu dari
objek Skema OpenAPI 3.0.
Berikut adalah representasi pseudo-JSON dari semua kolom Schema
:
{
"type": enum (Type),
"format": string,
"description": string,
"nullable": boolean,
"enum": [
string
],
"maxItems": string,
"minItems": string,
"properties": {
string: {
object (Schema)
},
...
},
"required": [
string
],
"propertyOrdering": [
string
],
"items": {
object (Schema)
}
}
Type
skema harus berupa salah satu Jenis Data
OpenAPI. Hanya sebagian kolom
yang valid untuk setiap Type
. Daftar berikut memetakan setiap Type
ke kolom yang valid untuk jenis tersebut:
string
-> enum, formatinteger
-> formatnumber
-> formatboolean
array
-> minItems, maxItems, itemsobject
-> properties, required, propertyOrdering, nullable
Berikut adalah beberapa contoh skema yang menunjukkan kombinasi jenis dan kolom yang valid:
{ "type": "string", "enum": ["a", "b", "c"] }
{ "type": "string", "format": "date-time" }
{ "type": "integer", "format": "int64" }
{ "type": "number", "format": "double" }
{ "type": "boolean" }
{ "type": "array", "minItems": 3, "maxItems": 3, "items": { "type": ... } }
{ "type": "object",
"properties": {
"a": { "type": ... },
"b": { "type": ... },
"c": { "type": ... }
},
"nullable": true,
"required": ["c"],
"propertyOrdering": ["c", "b", "a"]
}
Untuk dokumentasi lengkap kolom Skema seperti yang digunakan di Gemini API, lihat Referensi skema.
Pengurutan properti
Saat Anda menggunakan skema JSON di Gemini API, urutan properti sangat penting. Secara default, API mengurutkan properti menurut abjad dan tidak mempertahankan urutan properti yang ditentukan (meskipun Google Gen AI SDK dapat mempertahankan urutan ini). Jika Anda memberikan contoh ke model dengan skema yang dikonfigurasi, dan urutan properti contoh tidak konsisten dengan urutan properti skema, output-nya mungkin tidak beraturan atau tidak terduga.
Untuk memastikan pengurutan properti yang konsisten dan dapat diprediksi, Anda dapat menggunakan
kolom propertyOrdering[]
opsional.
"propertyOrdering": ["recipe_name", "ingredients"]
propertyOrdering[]
– bukan kolom standar dalam spesifikasi OpenAPI – adalah array string yang digunakan untuk menentukan urutan properti dalam respons. Dengan menentukan urutan properti, lalu memberikan contoh dengan
properti dalam urutan yang sama, Anda berpotensi meningkatkan kualitas
hasil.