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