सामग्री पर जाएँ
kenjtecJournal
Journal में खोजें

चैट उत्तर अंदर, उपयोगी JSON बाहर: वेब ऐप्स में एआई के लिए तरकीब

JSON किसी एआई उत्तर को प्रोग्रामों के लिए पढ़ने योग्य बनाता है। अज्ञात मान वाला एक छोटा अनुबंध और ब्राउज़र में सुरक्षित प्रदर्शन दिखाते हैं कि उसके बाद भी कौन-सा काम बाकी रहता है।

लेना खुले पुर्ज़ों को एक छँटाई-बक्से में छाँटती है; एक खाना चिह्नित और खाली रहता है। एआई चित्रण।

पाठ समझ में आता है। फिर भी एप्लिकेशन इसे सीधे नहीं अपना सकता, क्योंकि मात्रा एक बार “छह” के रूप में, एक बार 6 के रूप में और एक बार टिप्पणी में एक वाक्य के रूप में दिखाई देती है। स्ट्रक्चर्ड आउटपुट इस हस्तांतरण को एक अनुबंध देते हैं। अधिक दिलचस्प हिस्सा वहाँ शुरू होता है जहाँ सही JSON भी विषय-वस्तु में गलत हो सकता है।

Mistral के Custom Structured Outputs इसके लिए एक पूर्वनिर्धारित JSON स्कीमा का उपयोग करते हैं। फ़ील्ड और डेटा प्रकार स्पष्ट रूप से बताए जाते हैं। इससे मॉडल और एप्लिकेशन के बीच का इंटरफ़ेस व्यवस्थित होता है; लेकिन यह इस जाँच का विकल्प नहीं है कि कोई मान वास्तव में स्रोत पाठ से समर्थित है या नहीं।

अज्ञात अपने आप में एक अलग स्थिति है

हमारे काल्पनिक नोट में फ़ोल्डरों का उल्लेख है, लेकिन कोई मात्रा नहीं है। आउटपुट को इस अनुपस्थित मान को बनाए रखना चाहिए। यदि आप इसके बजाय कोई डिफ़ॉल्ट मात्रा डाल देते हैं, तो डेटा रिकॉर्ड अधिक पूर्ण दिखता है, लेकिन इस प्रक्रिया में एक महत्वपूर्ण जानकारी खो देता है।

एक छोटा, विक्रेता-निरपेक्ष स्कीमा कुछ ऐसा दिख सकता है। कोई विशेष इंटरफ़ेस कौन-से स्कीमा कीवर्ड समर्थित करता है, इसे उपयोग से पहले उसके वर्तमान दस्तावेज़ीकरण से जाँचना आवश्यक है:

{
  "type": "object",
  "required": ["artikel", "menge", "klaerung"],
  "additionalProperties": false,
  "properties": {
    "artikel": {"type": "string"},
    "menge": {"type": ["integer", "null"], "minimum": 0},
    "klaerung": {"type": "string"}
  }
}

required यह माँग करता है कि फ़ील्ड मौजूद हो। फिर भी null स्पष्ट रूप से अज्ञात मान की अनुमति देता है। निचली सीमा संख्यात्मक मात्राओं पर लागू होती है। वास्तविक ऑर्डर प्रक्रिया के लिए कोई मात्रा स्वीकार्य है या नहीं, इसके लिए अतिरिक्त व्यावसायिक नियमों की आवश्यकता हो सकती है। सबसे बढ़कर, स्कीमा यह बताता है कि आगे का एप्लिकेशन किस रूप की अपेक्षा कर सकता है।

बिना मॉडल और बिना ऑर्डर के एक पूर्वावलोकन

आप निश्चित नमूना डेटा के साथ पहले से ही प्रोसेसिंग की जाँच कर सकते हैं। हमारे द्वारा लिखे गए निम्नलिखित HTML स्निपेट को एक स्थानीय नमूना फ़ाइल के रूप में सहेजें और उसे ब्राउज़र में खोलें। यह एक डेटा रिकॉर्ड प्रदर्शित करता है, लेकिन कोई API अनुरोध नहीं करता और कोई ऑर्डर सहेजता नहीं है।

<!doctype html>
<meta charset="utf-8">
<p id="ausgabe"></p>
<script>
const daten = { artikel: "Folders", menge: null, klaerung: "Quantity missing" };
function pruefe(d) {
  if (!d || typeof d !== "object" || Array.isArray(d)) throw Error("Object expected");
  const keys = Object.keys(d).sort().join(",");
  if (keys !== "artikel,klaerung,menge") throw Error("Check fields");
  if (typeof d.artikel !== "string" || typeof d.klaerung !== "string")
    throw Error("Text expected");
  if (d.menge !== null && (!Number.isInteger(d.menge) || d.menge < 0))
    throw Error("Check quantity");
}
pruefe(daten);
const menge = daten.menge === null ? "not yet known" : String(daten.menge);
document.querySelector("#ausgabe").textContent =
  daten.artikel + ": " + menge + ". " + daten.klaerung;
</script>

यह फ़ंक्शन ठीक इसी शिक्षण स्कीमा के लिए हमारा अपना एक सीमित वैलिडेटर है, कोई पूर्ण JSON Schema लाइब्रेरी नहीं। मात्रा को बारी-बारी से 6, -1 और स्ट्रिंग “छह” में बदलें। फिर एक अप्रत्याशित फ़ील्ड जोड़ें। हर बार डेवलपर टूल्स में प्रदर्शन या त्रुटि संदेश को देखें।

इससे आप किसी मॉडल के शामिल होने से पहले ही एक संक्रमण का परीक्षण कर सकते हैं। आप जान जाते हैं कि एप्लिकेशन ज्ञात, अज्ञात और अमान्य मानों को कैसे संभालता है। बाद में कोई मॉडल उत्तर इन्हीं नियमों को पार करने के बाद ही इस स्निपेट तक पहुँच सकता है।

प्रारूप और अर्थ की अलग-अलग जाँच

औपचारिक रूप से स्वीकार्य 6 भी गलत हो सकता है यदि नोट में चार लिखा हो। इसलिए किसी वास्तविक एप्लिकेशन में, जहाँ आवश्यक हो, स्रोत का संदर्भ जोड़ें और महत्वपूर्ण मानों को इनपुट से मिलाकर जाँचें। विरोधाभासी नोट्स होने पर प्रक्रिया को कोई मनमानी संख्या चुनने के बजाय स्पष्टीकरण के लिए एक बिंदु प्रस्तुत करना चाहिए।

आउटपुट textContent का उपयोग करता है। इस प्रकार बाहरी पाठ बिना किसी जाँच के HTML के रूप में व्याख्यायित होने के बजाय पाठ के रूप में डाला जाता है। प्रदाता कुंजियाँ इस तरह के ब्राउज़र स्निपेट में नहीं होनी चाहिए। मॉडल कॉल अपनी अलग पहुँच और अपने अलग त्रुटि प्रबंधन के साथ एक अलग प्रोसेसिंग चरण होगा।

किसी वेबसाइट पर स्निपेट का प्रदर्शन

यदि आप ठीक यही छोटा प्रदर्शन किसी मौजूदा वेबसाइट पर दिखाना चाहते हैं, तो KENJTEC WebSiteBuilder ai का डेवलपर मोड भी आपके अपने HTML/JavaScript कोड के लिए एक संभावित स्थान है। जाँचा गया स्निपेट हाथ से स्थानांतरित किया जाता है; कोड पूर्वावलोकन और आपके अपने कोड संस्करण बाद की समीक्षा में सहायता करते हैं। इससे Mistral से कोई नेटिव कनेक्शन नहीं बनता।

वास्तविक अंतर्दृष्टि इस बात से स्वतंत्र रहती है कि इसका उपयोग कहाँ किया जाता है: मॉडल प्रारूप, आपका अपना वैलिडेटर, सुरक्षित प्रदर्शन और विषय-वस्तु पर निर्णय, इन सबके काम अलग-अलग हैं। जो इन्हें अलग रखता है, वह किसी एआई आउटपुट को लक्षित तरीके से अपना सकता है, बिना चुपचाप किसी विश्वसनीय लगने वाले उत्तर को किसी कार्रवाई में बदले।

स्रोत और स्थिति

स्रोत 25 अक्टूबर 2026 की स्थिति के अनुसार। Custom Structured Outputs।

हैम्बर्ग हमारा शुरुआती बिंदु है।

उपयोगी ज्ञान आपके साथ चलता है।

हैम्बर्ग से AI का व्यावहारिक ज्ञान, दुनिया के लिए।

सेव किए गए लेख