पब्लिश होने की तारीख: 13 मई, 2025
लार्ज लैंग्वेज मॉडल (एलएलएम) कभी-कभी लंबे जवाब देने के लिए जाने जाते हैं. अगर मॉडल को सिर्फ़ "सही" या "गलत" में जवाब देने के लिए कहा जाता है, तब भी वह दोस्ताना लहजे में जवाब दे सकता है. साथ ही, वह आपसे ज़्यादा जानकारी शेयर कर सकता है. जैसे: "ज़रूर, इसका जवाब है: सही."
इस समस्या को हल करने के लिए, Prompt API की मदद से, मॉडल के जवाब का JSON आउटपुट फ़ॉर्मैट तय किया जा सकता है. इसके लिए, LanguageModel.prompt() और LanguageModel.promptStreaming() तरीकों को JSON स्कीमा पास करें. स्ट्रक्चर्ड आउटपुट की सुविधा, Chrome के 137वें वर्शन से उपलब्ध है.
JSON स्कीमा क्या है
JSON स्कीमा एक शब्दावली है. यह बड़े पैमाने पर JSON डेटा को एक जैसा, मान्य, और इंटरऑपरेबल बनाने में मदद करती है. डेटा एक्सचेंज के मामले में, JSON स्कीमा, JSON डेटा के स्ट्रक्चर और नियमों को तय करने के लिए एक बेहतरीन स्टैंडर्ड है. यह आपके डेटा की प्रॉपर्टी तय करने के लिए, कीवर्ड के सेट का इस्तेमाल करता है.
JSON स्कीमा, स्ट्रक्चर्ड आउटपुट देने के लिए इंडस्ट्री स्टैंडर्ड है. इसका इस्तेमाल OpenAI API और Gemini API जैसे कई अन्य एपीआई करते हैं.
उदाहरण के लिए, आपने मॉडल को यह निर्देश दिया कि वह किसी ऑनलाइन सोशल नेटवर्क, जैसे कि Mastodon पर की गई पोस्ट के लिए ज़्यादा से ज़्यादा तीन हैशटैग असाइन करे. सबसे सही आउटपुट, इस JSON जैसा दिख सकता है:
{
"hashtags": [
"#pottery",
"#dyi"
]
}
इसके बाद, अनुरोध किए गए आउटपुट ऑब्जेक्ट के आकार के लिए, इससे जुड़ा JSON स्कीमा इस तरह दिखेगा:
{
"type": "object",
"properties": {
"hashtags": {
"type": "array",
"maxItems": 3,
"items": {
"type": "string",
"pattern": "^#[^\\s#]+$"
}
}
},
"required": ["hashtags"],
"additionalProperties": false
}
यह JSON स्कीमा, किसी ऑब्जेक्ट के स्ट्रक्चर के बारे में बताता है. इस ऑब्जेक्ट में hashtags फ़ील्ड होना चाहिए. साथ ही, इसमें ये शर्तें लागू होनी चाहिए:
"type": "object": रूट वैल्यू, JSON ऑब्जेक्ट होनी चाहिए."properties": { "hashtags": ... }: ऑब्जेक्ट मेंhashtagsनाम की प्रॉपर्टी हो सकती है. इस मामले में, यह प्रॉपर्टी होना ज़रूरी है."hashtags":"type": "array": वैल्यू, एक ऐरे होनी चाहिए."maxItems": 3: इस कलेक्शन में ज़्यादा से ज़्यादा तीन आइटम हो सकते हैं."items": { "type": "string", "pattern": "^#[^\\s#]+$" }: ऐरे में मौजूद हर आइटम एक स्ट्रिंग होना चाहिए. यह स्ट्रिंग, दिए गए रेगुलर एक्सप्रेशन पैटर्न से मेल खानी चाहिए:^#[^\\s#]+$:^#→ इसकी शुरुआत#से होनी चाहिए.[^\\s#]+→ इसके बाद, एक या उससे ज़्यादा ऐसे वर्ण होने चाहिए जो स्पेस (\s) या कोई दूसरा#न हो.$→ यहां खत्म होना चाहिए.
"required": ["hashtags"]: ऑब्जेक्ट मेंhashtagsप्रॉपर्टी शामिल होनी चाहिए."additionalProperties": false: हैशटैग के अलावा, किसी अन्य प्रॉपर्टी का इस्तेमाल नहीं किया जा सकता.
फ़ॉर्मैट की क्षमताओं के बारे में पूरी जानकारी के लिए, JSON स्कीमा की बुनियादी बातें दस्तावेज़ पढ़ें.
एलएलएम, JSON स्कीमा बनाने में बहुत अच्छे होते हैं. अपने प्रॉम्प्ट में, सामान्य भाषा में पाबंदियों के बारे में बताएं. साथ ही, JSON ऑब्जेक्ट का मान्य उदाहरण दें. इसके बाद, आपको आधा काम पूरा हो जाएगा. इसके बाद, जनरेट किए गए JSON स्कीमा के हिसाब से JSON ऑब्जेक्ट की पुष्टि की जा सकती है. इसके लिए, JSON स्कीमा की पुष्टि करने वाले किसी टूल का इस्तेमाल करें. उदाहरण के लिए, ऑनलाइन Newtonsoft JSON Schema Validator.

Prompt API को JSON स्कीमा पास करना
यह पक्का करने के लिए कि मॉडल, अनुरोध किए गए JSON स्कीमा का पालन करे, आपको JSON स्कीमा को prompt() या promptStreaming() तरीकों के विकल्प ऑब्जेक्ट में, responseConstraint फ़ील्ड की वैल्यू के तौर पर पास करना होगा.
यहां JSON स्कीमा का एक सामान्य उदाहरण दिया गया है. इससे यह पक्का किया जाता है कि मॉडल, यह तय करते समय true या false में से किसी एक का इस्तेमाल करे कि इस तरह का Mastodon पोस्ट मैसेज, पॉटरी के बारे में है या नहीं.
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
अनुमानित आउटपुट के लिए सहायता
Prompt API के लिए स्ट्रक्चर्ड आउटपुट की सुविधा उपलब्ध होने से, एलएलएम के जवाबों का अनुमान लगाना ज़्यादा आसान हो जाता है. डेवलपर अब यह मान सकते हैं कि मॉडल का जवाब, मान्य JSON है. इसके लिए, उन्हें Markdown रिस्पॉन्स या अन्य पोस्ट-प्रोसेसिंग से कोई ऑब्जेक्ट निकालने की ज़रूरत नहीं है.
इससे, क्लाउड पर आधारित एपीआई के साथ एआई को इंटिग्रेट करना आसान हो जाता है. साथ ही, क्लाइंट-साइड एआई को स्थानीय तौर पर चलाने के सभी फ़ायदे मिलते हैं.