Dipublikasikan: 13 Mei 2025
Model bahasa besar (LLM) terkenal karena responsnya yang terkadang panjang. Meskipun Anda memberi tahu model untuk menjawab dengan "benar" atau "salah" saja, model tersebut dapat merespons dengan output yang mudah dipahami dan lebih dari yang Anda minta, seperti: "Tentu saja, jawabannya adalah: benar".
Untuk mengatasi tantangan ini, Prompt
API memungkinkan Anda
menentukan format output JSON respons model dengan meneruskan Skema
JSON ke metode LanguageModel.prompt()
dan
LanguageModel.promptStreaming()
. Dukungan output terstruktur
tersedia mulai Chrome versi 137.
Pengertian JSON Schema
JSON Schema adalah kosakata yang memungkinkan konsistensi, validitas, dan interoperabilitas data JSON dalam skala besar. Dalam hal pertukaran data, JSON Schema tampil sebagai standar yang andal untuk menentukan struktur dan aturan data JSON. Model ini menggunakan kumpulan kata kunci untuk menentukan properti data Anda.
JSON Schema adalah standar industri untuk memastikan output terstruktur, yang digunakan, antara lain, oleh OpenAI API dan Gemini API.
Misalnya, Anda meminta model untuk menetapkan maksimal tiga hashtag untuk postingan di jaringan sosial online, seperti Mastodon. Output idealnya mungkin terlihat mirip dengan JSON berikut:
{
"hashtags": [
"#pottery",
"#dyi"
]
}
Skema JSON yang sesuai untuk bentuk objek output yang diminta ini akan terlihat sebagai berikut:
{
"type": "object",
"properties": {
"hashtags": {
"type": "array",
"maxItems": 3,
"items": {
"type": "string",
"pattern": "^#[^\\s#]+$"
}
}
},
"required": ["hashtags"],
"additionalProperties": false
}
Skema JSON ini menentukan struktur untuk objek yang harus berisi kolom hashtags
dengan batasan berikut:
"type": "object"
: Nilai root harus berupa objek JSON."properties": { "hashtags": ... }
: Objek dapat (dan dalam hal ini, harus) memiliki properti yang disebuthashtags
."hashtags":
"type": "array"
: Nilai harus berupa array."maxItems": 3
: Array dapat berisi maksimal 3 item."items": { "type": "string", "pattern": "^#[^\\s#]+$" }
: Setiap item dalam array harus berupa string yang cocok dengan pola ekspresi reguler yang diberikan:^#[^\\s#]+$
:^#
→ harus diawali dengan#
.[^\\s#]+
→ diikuti dengan satu atau beberapa karakter yang bukan spasi (\s
) atau#
lain.$
→ harus diakhiri di sana.
"required": ["hashtags"]
: Objek harus berisi propertihashtags
."additionalProperties": false
: Tidak ada properti selain hashtag yang diizinkan.
Baca dokumentasi Dasar-Dasar Schema JSON untuk mengetahui deskripsi lengkap tentang kemampuan format.
Faktanya, LLM sangat mahir dalam membuat Skema JSON. Jelaskan batasan dalam bahasa alami dalam perintah Anda dan berikan contoh objek JSON yang valid, dan Anda sudah setengah jalan. Kemudian, Anda dapat memvalidasi objek JSON terhadap Skema JSON yang dihasilkan dengan salah satu validator Skema JSON, misalnya, Newtonsoft JSON Schema Validator online.
Meneruskan Skema JSON ke Prompt API
Untuk memastikan model mematuhi Skema JSON yang diminta, Anda harus meneruskan Skema JSON sebagai argumen ke objek opsi metode prompt()
atau promptStreaming()
sebagai nilai kolom responseConstraint
.
Berikut adalah contoh Skema JSON yang sangat mendasar yang memastikan model merespons dengan
true
atau false
dalam mengklasifikasikan apakah pesan tertentu seperti
postingan Mastodon ini tentang
tembikar.
const session = await LanguageModel.create();
const schema = {
"type": "boolean"
};
const post = "Mugs and ramen bowls, both a bit smaller than intended- but that's
how it goes with reclaim. Glaze crawled the first time around, but pretty happy
with it after refiring.";
const result = await session.prompt(
`Is this post about pottery?\n\n${post}`,
{
responseConstraint: schema,
}
);
console.log(JSON.parse(result));
// true
Mendukung output yang dapat diprediksi
Dukungan output terstruktur untuk Prompt API membuat respons LLM jauh lebih dapat diprediksi. Daripada mengekstrak objek dari respons Markdown atau pascapemrosesan lainnya, developer kini dapat mengasumsikan bahwa respons model adalah JSON yang valid.
Hal ini membuat AI bawaan selangkah lebih dekat ke API berbasis cloud, dengan semua manfaat menjalankan AI sisi klien lokal.