Stage-1 की खाली फ़ाइल: जो JSON पार्स हो जाता है, ज़रूरी नहीं कि वो खबर भी हो
**मुख्य उत्तर:** Stage-1 विश्लेषण का आउटपुट खाली है — शीर्षक, स्रोत, लेख-प्रकार और तथ्य-बिंदु सभी अनुपलब्ध हैं — इसलिए इस इनपुट से कोई भी सत्यापन-योग्य खेल रिपोर्ट नहीं लिखी जा सकती। **मुख्य तथ्य:** - Article Title, Article Source और Article Type तीनों N/A या Unclassified; Information Points की सूची खाली। - Domain Label: cricket_world एकमात्र मान है और उसके समर्थन में कोई तथ्य-बिंदु नहीं। - Entities Involved निर्देश अपस्ट्रीम खाली होने के कारण निष्क्रिय है, क्योंकि पहचानने के लिए कोई तथ्य नहीं। - आवश्यक न्यूनतम इनपुट: title, source, published_at, article_type, information_points और entities। - अनुशंसित जाँच: information_points खाली होने पर फ़ाइल को विफल घोषित किया जाए। **स्रोत:** उपयोगकर्ता द्वारा प्रदान किया गया Stage-1 deconstruction result; प्रकाशन तिथि उपलब्ध नहीं। **संबंधित प्रश्न-उत्तर:** प्रश्न: क्या केवल cricket_world लेबल से विषय तय हो जाता है? उत्तर: नहीं, लेबल के पीछे कोई तथ्य-बिंदु नहीं है, इसलिए यह केवल एक बाहरी अनुमान है। प्रश्न: रिपोर्ट लिखने के लिए न्यूनतम क्या चाहिए? उत्तर: title, source, published_at, article_type, और information_points में claim व source_field, साथ में entities की सूची। प्रश्न: खाली फ़ाइल पाइपलाइन में पास क्यों हो जाती है? उत्तर: क्योंकि Stage-1 सिंटैक्स की जाँच करता है, अर्थ की नहीं, इसलिए संरचना सही होने भर से फ़ाइल स्वीकार्य लगती है।
शुक्रवार की दोपहर को Stage-1 की फ़ाइल खुलती है। JSON अपनी जगह पर है — हर फ़ील्ड मौजूद, हर ब्रैकेट बंद, स्क्रीन पर एक भी लाल एरर नहीं। और फिर भीतर झाँकिए: Article Title N/A, Article Source N/A, Article Type Unclassified, One-sentence Summary खाली, Information Points की सूची पूरी तरह खाली। यह वह दुर्लभ चीज़ है जो न्यूज़रूम में सबसे महँगी पड़ती है — एक ऐसी फ़ाइल जो विफल दिखती नहीं।
मैंने गुजरात टाइटन्स के साथ तीन हज़ार किलोमीटर बस में बिताए हैं, और ट्रेनिंग ग्राउंड पर एक बात जल्दी सीखी: जो चीज़ शक्ल से ठीक लगे, उसे भी दोबारा छूकर देखना पड़ता है। सुबह के नेट्स में कोई गेंदबाज़ पूरी रफ़्तार से दौड़ता दिखता है, लेकिन गेंद छोड़ने के बाद उसका दायाँ कंधा तीन सेंटीमीटर नीचे गिरता है — स्कोरबुक में कुछ नहीं दिखेगा, फ़िज़ियो की नोटबुक में दिखेगा। यही हाल इस फ़ाइल का है। स्ट्रक्चर सही, सामग्री शून्य। और सामग्री शून्य होने का मतलब है कि मेरे पास लिखने के लिए कोई खबर ही नहीं है।
एक बीट रिपोर्टर के तौर पर मेरी शर्त साफ़ रही है — मैं वही लिखता हूँ जिसे मैं मैदान पर, स्टैंड में या टीम बस की खिड़की से देख सकूँ, या जिसे किसी सत्यापन-योग्य दस्तावेज़ से जोड़ सकूँ। इस फ़ाइल में वह आधार मौजूद नहीं है। उपलब्ध एकमात्र मान है Domain Label: cricket_world, और वह भी अपने ही दस्तावेज़ में बेसहारा है — Article Type Unclassified है, Information Points खाली हैं। यानी यह लेबल किसी तथ्य से नहीं, किसी बाहरी प्रीसेट से आया लगता है। एक लेबल के भरोसे 1726 शब्द लिखना रिपोर्टिंग नहीं, अनुमान को रिपोर्टिंग का लिबास पहनाना होगा।
समस्या की जड़ यह है कि Stage-1 ने गलती नहीं की — उसने चुपचाप काम करना बंद कर दिया, और नतीजा एक "वैध खोल" (legal empty shell) के रूप में निकला। पाइपलाइन के लिए यह फ़ाइल पास है, क्योंकि वह सिंटैक्स जाँचती है, अर्थ नहीं।

फ़ील्ड-दर-फ़ील्ड देखिए कि नीचे की कोई भी मंज़िल इस नींव पर नहीं उठ सकती:
Article Title का N/A होना सिर्फ़ शीर्षक की कमी नहीं है — यह विषय की कमी है। शीर्षक से ही तय होता है कि किस मैच, किस सीरीज़, किस विवाद की बात हो रही है, और उसी से तय होता है कि मैं किन आँकड़ों को सत्यापित करूँ। Article Source का N/A होना स्रोत-गुणवत्ता और पूर्वाग्रह का आकलन असंभव बना देता है — किसी क्रिकेट बोर्ड की प्रेस रिलीज़, किसी फ्रेंचाइज़ी के मीडिया नोट और किसी फ्रीलांसर के ट्वीट को एक ही तरह से नहीं पढ़ा जाता। Article Type के Unclassified रहने से यह भी तय नहीं होता कि मूल सामग्री समाचार थी, विश्लेषण, राय या आधिकारिक रिपोर्ट — और हर प्रकार के लिए मेरा ढाँचा अलग है। One-sentence Summary खाली है, यानी वह केंद्रीय दावा ही मौजूद नहीं जिसे मुझे जाँचना या खंडन करना होता। सबसे घातक है Information Points का खाली होना — तथ्य-इकाई के बिना कोई रिपोर्ट नहीं बनती, सिर्फ़ मत बनते हैं। और Entities Involved का निर्देश स्वयं कहता है कि "ऊपर के information points से पहचानें" — जब ऊपर कुछ है ही नहीं, तो निर्देश का कोई लक्ष्य नहीं।

यहाँ एक पुरानी आदत काम आती है। हर प्रेस बॉक्स की अपनी लय होती है; आप चुप बैठकर सुनें तो वह खुद बताती है कि कहानी कहाँ है। लेकिन खाली प्रेस बॉक्स की कोई लय नहीं होती — और खाली डेटा फ़ाइल भी वही है। फ़र्क़ सिर्फ़ इतना है कि खाली स्टैंड में कम-से-कम यह पता रहता है कि कोई नहीं आया; खाली JSON यह भ्रम दे जाता है कि सब कुछ आ गया।

अब उस सोच को पूरी ताक़त से रखता हूँ जो इस पाइपलाइन में सबसे आम है, और फिर उसे तोड़ता हूँ। आम धारणा यही है: चूँकि डाउनस्ट्रीम को सिर्फ़ स्ट्रक्चर्ड डेटा चाहिए, इसलिए अगर स्ट्रक्चर मिल गया तो काम चल जाएगा — बाक़ी टेक्स्ट जनरेशन संभाल लेगा। यह तर्क उस पल तक ठीक चलता है जब तक आप यह न मान लें कि जनरेटर के पास दुनिया का अपना ज्ञान है। असल में जनरेटर के पास सिर्फ़ भाषा है, तथ्य नहीं। तथ्य न देकर उससे तथ्य माँगना उस गेंदबाज़ से रिवर्स स्विंग की उम्मीद करने जैसा है जिसकी गेंद ही नई है।
दूसरी, और ज़्यादा असुविधाजनक बात: इस तरह की विफलता ऊपर की गलती नहीं, नीचे की जवाबदेही है। Stage-1 का काम है निकालना; Stage-2 का काम है लिखना। लेकिन जाँच की ज़िम्मेदारी किसी एक मंज़िल की नहीं, पूरी सीढ़ी की है। डेटा टीम इसे "एज केस" कहकर छोड़ देती है, लेखक इसे "अपर्याप्त इनपुट" कहकर लौटा देता है, और बीच में वह फ़ाइल लटकी रह जाती है जो न पास होती है, न फेंकी जाती है।
मुझे इस इनपुट से आगे बढ़ने के लिए तीन में से कोई एक चीज़ चाहिए। पहला, मूल लेख का पूरा पाठ — सबसे सीधा रास्ता, मैं खुद निष्कर्षण और विश्लेषण कर लूँगा। दूसरा, पूरा किया गया Stage-1 आउटपुट, जिसमें कम-से-कम title, source, published_at और article_type हों, और information_points की हर प्रविष्टि में claim (तथ्यात्मक कथन), source_field (कथन किसका है — बोर्ड का बयान, आधिकारिक आँकड़ा, या लेखक का अनुमान) और timestamp शामिल हो; साथ में entities — व्यक्ति, संगठन, टूर्नामेंट, स्थान। तीसरा, अगर निष्कर्षण पाइपलाइन ही बैठ गई है, तो एरर लॉग या मूल स्क्रैप किया हुआ टेक्स्ट भेजिए — मैं यह बताने की कोशिश करूँगा कि गड़बड़ निष्कर्षण में है या इनपुट में।
इसके साथ एक सुझाव जो मैं अपनी तरफ़ से जोड़ूँगा। Stage-1 में एक साधारण दावा जोड़िए: information_points खाली हो, या title N/A हो, तो फ़ाइल पास नहीं, विफल घोषित हो। यह Salesforce-स्टाइल चेक नहीं, बस वही आदत है जो हम स्कोरबुक में अपनाते हैं — बैटिंग कार्ड में किसी बल्लेबाज़ की एंट्री खाली नहीं छोड़ी जाती, क्योंकि खाली जगह बाद में किसी और के नाम से भर जाती है।
अगली बार जब यह पाइपलाइन चले, तो मुझे एक ऐसी फ़ाइल नहीं चाहिए जो कहे "सब कुछ ठीक है।" मुझे वह तथ्य चाहिए जिसे मैं गेंदबाज़ की गेंद छोड़ने की आवाज़ से मिला सकूँ — और अगर वह तथ्य नहीं है, तो सबसे ईमानदार रिपोर्ट यही है कि मैं अभी नहीं लिख सकता।
