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