Dipublikasikan: 13 Mei 2025
Model bahasa besar (LLM) dikenal karena responsnya yang terkadang panjang. Meskipun Anda meminta model untuk menjawab hanya dengan "benar" atau "salah", model dapat merespons dengan output yang ramah dan lebih dari yang Anda minta, seperti: "Tentu, jawabannya adalah: benar".
Untuk mengatasi tantangan ini, Prompt API
memungkinkan Anda menentukan format output JSON dari respons model dengan meneruskan
Skema JSON ke metode LanguageModel.prompt() dan
LanguageModel.promptStreaming(). Dukungan output terstruktur tersedia mulai Chrome versi 137.
Apa yang dimaksud dengan Skema JSON
Skema JSON adalah kosakata yang memungkinkan konsistensi, validitas, dan interoperabilitas data JSON dalam skala besar. Dalam hal pertukaran data, Skema JSON menonjol sebagai standar yang efektif untuk menentukan struktur dan aturan data JSON. Skema ini menggunakan sekumpulan kata kunci untuk menentukan properti data Anda.
Skema JSON 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 jejaring sosial online, seperti Mastodon. Output idealnya dapat terlihat mirip dengan JSON berikut:
{
"hashtags": [
"#pottery",
"#dyi"
]
}
Bentuk objek output yang diminta ini kemudian 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 oleh satu atau beberapa karakter yang bukan spasi (\s) atau#lainnya.$→ harus diakhiri di sana.
"required": ["hashtags"]: Objek harus berisi propertihashtags."additionalProperties": false: Tidak ada properti lain selain hashtag yang diizinkan.
Baca dokumentasi Dasar-Dasar Skema JSON untuk mengetahui deskripsi lengkap tentang kemampuan format.
Faktanya, LLM sangat bagus 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 dasar yang memastikan model merespons dengan
baik 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 pasca-pemrosesan 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.