Dipublikasikan: 13 Mei 2025
Model bahasa besar (LLM) terkenal karena terkadang memberikan respons yang panjang. Meskipun Anda memberi tahu 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 itu 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. Fitur 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 jaringan sosial online, seperti Mastodon. Output yang ideal mungkin terlihat mirip dengan JSON berikut:
{
"hashtags": [
"#pottery",
"#dyi"
]
}
Bentuk objek output yang diminta ini dan Skema JSON yang sesuai akan terlihat seperti 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 kasus 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 dimulai dengan#
.[^\\s#]+
→ diikuti oleh satu atau beberapa karakter yang bukan spasi (\s
) atau#
lainnya.$
→ harus berakhir 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 di 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, Validator Skema JSON Newtonsoft 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 membahas
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 pemrosesan pasca lainnya, developer kini dapat mengasumsikan bahwa respons model adalah JSON yang valid.
Hal ini membuat AI bawaan selangkah lebih dekat dengan API berbasis cloud, dengan semua manfaat menjalankan AI sisi klien lokal.