# यूनिवर्सल डॉक्यूमेंट डिकोडर ## शीर्षक यूनिवर्सल डॉक्यूमेंट डिकोडर जो `unstructured` द्वारा संचालित है — किसी भी सामान्य डॉक्यूमेंट फॉर्मेट को एक ही सेवा के माध्यम से संसाधित करें, जिसमें पूर्ण उत्पत्ति और लाइब्रेरियन एकीकरण शामिल है, जो स्रोत स्थितियों को ज्ञान ग्राफ मेटाडेटा के रूप में रिकॉर्ड करता है ताकि एंड-टू-एंड पता लगाया जा सके। ## समस्या वर्तमान में ट्रस्टग्राफ में एक पीडीएफ-विशिष्ट डिकोडर है। अतिरिक्त फॉर्मेट (DOCX, XLSX, HTML, Markdown, प्लेन टेक्स्ट, PPTX, आदि) का समर्थन करने के लिए या तो प्रत्येक फॉर्मेट के लिए एक नया डिकोडर लिखना होगा या एक सार्वभौमिक निष्कर्षण लाइब्रेरी को अपनाना होगा। प्रत्येक फॉर्मेट की संरचना अलग होती है — कुछ पृष्ठ-आधारित होते हैं, कुछ नहीं होते हैं — और निष्कर्षित पाठ के प्रत्येक टुकड़े की उत्पत्ति मूल डॉक्यूमेंट में कहां से हुई, इसे उत्पत्ति श्रृंखला में रिकॉर्ड किया जाना चाहिए। ## दृष्टिकोण ### लाइब्रेरी: `unstructured` `unstructured.partition.auto.partition()` का उपयोग करें जो फॉर्मेट को स्वचालित रूप से पहचानता है mime टाइप या फ़ाइल एक्सटेंशन से और संरचित तत्वों को निकालता है (शीर्षक, वर्णनात्मक पाठ, तालिका, सूची आइटम, आदि)। प्रत्येक तत्व में मेटाडेटा शामिल है: `page_number` (पीडीएफ, पीपीटीएक्स जैसे पृष्ठ-आधारित फॉर्मेट के लिए) `element_id` (प्रत्येक तत्व के लिए अद्वितीय) `coordinates` (पीडीएफ के लिए बाउंडिंग बॉक्स) `text` (निष्कर्षित पाठ सामग्री) `category` (तत्व प्रकार: शीर्षक, वर्णनात्मक पाठ, तालिका, आदि) ### तत्व प्रकार `unstructured` डॉक्यूमेंट से टाइप किए गए तत्वों को निकालता है। प्रत्येक तत्व में एक श्रेणी और संबंधित मेटाडेटा होता है: **पाठ तत्व:** `Title` — अनुभाग शीर्षक `NarrativeText` — पैराग्राफ `ListItem` — बुलेट/क्रमांकित सूची आइटम `Header`, `Footer` — पृष्ठ हेडर/फुटर `FigureCaption` — चित्रों/छवियों के लिए कैप्शन `Formula` — गणितीय व्यंजक `Address`, `EmailAddress` — संपर्क जानकारी `CodeSnippet` — कोड ब्लॉक (मार्कडाउन से) **तालिकाएँ:** `Table` — संरचित सारणीबद्ध डेटा। `unstructured` दोनों प्रदान करता है `element.text` (सादा पाठ) और `element.metadata.text_as_html` (पंक्तियों, स्तंभों और शीर्षकों को संरक्षित करते हुए पूर्ण HTML ``)। DOCX, XLSX, HTML जैसे स्पष्ट तालिका संरचना वाले फॉर्मेट के लिए, निष्कर्षण अत्यधिक विश्वसनीय है। पीडीएफ के लिए, तालिका का पता लगाना लेआउट विश्लेषण के साथ `hi_res` रणनीति पर निर्भर करता है। **छवियाँ:** `Image` — लेआउट विश्लेषण के माध्यम से पता लगाई गई एम्बेडेड छवियां (आवश्यक `hi_res` रणनीति)। `extract_image_block_to_payload=True` के साथ, छवि डेटा को `element.metadata.image_base64` में base64 के रूप में लौटाता है। छवि से OCR पाठ `element.text` में उपलब्ध है। ### तालिका हैंडलिंग तालिकाओं को एक प्राथमिक आउटपुट माना जाता है। जब डिकोडर एक `Table` तत्व का सामना करता है, तो यह सादे पाठ में समतल करने के बजाय HTML संरचना को संरक्षित करता है। यह डाउनस्ट्रीम एलएलएम निष्कर्षण को सारणीबद्ध डेटा से संरचित ज्ञान निकालने के लिए बहुत बेहतर इनपुट देता है। पृष्ठ/अनुभाग पाठ को इस प्रकार जोड़ा जाता है: पाठ तत्व: सादा पाठ, नई पंक्तियों के साथ जोड़ा गया तालिका तत्व: `text_as_html` से HTML तालिका मार्कअप, एक `
` मार्कर में लपेटा गया ताकि एलएलएम तालिकाओं को वर्णनात्मक पाठ से अलग कर सके। उदाहरण के लिए, एक शीर्षक, पैराग्राफ और तालिका वाला पृष्ठ इस प्रकार होगा: ``` Financial Overview Revenue grew 15% year-over-year driven by enterprise adoption.
QuarterRevenueGrowth
Q1$12M12%
Q2$14M17%
``` यह चंकिंग के माध्यम से तालिका संरचना को संरक्षित करता है और निष्कर्षण पाइपलाइन में, जहां एलएलएम सीधे संरचित कोशिकाओं से संबंधों को निकाल सकता है, कॉलम संरेखण का अनुमान लगाने के बजाय खाली स्थान से। ### छवि प्रबंधन छवियों को लाइब्रेरियन में चाइल्ड दस्तावेज़ों के रूप में निकाला और संग्रहीत किया जाता है `document_type="image"` और एक `urn:image:{uuid}` आईडी के साथ। उन्हें प्रकार `tg:Image` के साथ प्रामाणिकता ट्रिपल मिलते हैं, जो उनके मूल पृष्ठ/अनुभाग से `prov:wasDerivedFrom` के माध्यम से जुड़े होते हैं। छवि मेटाडेटा (निर्देशांक, आयाम, तत्व_आईडी) को प्रामाणिकता में दर्ज किया जाता है। **महत्वपूर्ण रूप से, छवियों को टेक्स्टडॉक्यूमेंट आउटपुट के रूप में उत्सर्जित नहीं किया जाता है।** वे केवल संग्रहीत होते हैं - चंकर या किसी भी टेक्स्ट प्रोसेसिंग पाइपलाइन में नीचे की ओर नहीं भेजे जाते हैं। यह जानबूझकर है: 1. अभी तक कोई छवि प्रसंस्करण पाइपलाइन नहीं है (विज़न मॉडल एकीकरण भविष्य का कार्य है) 2. आधार64 छवि डेटा या ओसीआर टुकड़ों को टेक्स्ट निष्कर्षण पाइपलाइन में फीड करने से कचरा केजी ट्रिपल उत्पन्न होंगे छवियों को असेंबल किए गए पृष्ठ टेक्स्ट से भी बाहर रखा गया है - कोई भी `Image` तत्व एक पृष्ठ/अनुभाग के लिए तत्व टेक्स्ट को संयोजित करते समय चुपचाप छोड़ दिए जाते हैं। प्रामाणिकता श्रृंखला में दर्ज किया गया है कि छवियां मौजूद हैं और वे दस्तावेज़ में कहां दिखाई दीं, ताकि उन्हें भविष्य के पृष्ठ/अनुभाग। उत्पत्ति श्रृंखला में दर्ज है कि चित्र मौजूद हैं और वे कहाँ स्थित हैं। छवि प्रसंस्करण पाइपलाइन द्वारा दस्तावेज़ को फिर से संसाधित किए बिना प्राप्त किया जा सके। #### भविष्य का कार्य `tg:Image` संस्थाओं को विवरण, आरेख व्याख्या या चार्ट डेटा निष्कर्षण के लिए एक विज़न मॉडल में रूट करें छवि विवरण को टेक्स्ट चाइल्ड दस्तावेज़ों के रूप में संग्रहीत करें जो मानक चंकिंग/निष्कर्षण पाइपलाइन में फीड करते हैं निकाले गए ज्ञान को प्रामाणिकता के माध्यम से स्रोत छवियों से लिंक करें ### अनुभाग रणनीतियाँ पृष्ठ-आधारित प्रारूपों (पीडीएफ, पीपीटीएक्स, एक्सएलएसएक्स) के लिए, तत्वों को हमेशा पहले पृष्ठ/स्लाइड/शीट द्वारा समूहीकृत किया जाता है। गैर-पृष्ठ प्रारूपों (डीओसीएक्स, एचटीएमएल, मार्कडाउन, आदि) के लिए, डिकोडर को दस्तावेज़ को अनुभागों में विभाजित करने के लिए एक रणनीति की आवश्यकता होती है। यह ⟦CODE_0⟧ के माध्यम से रनटाइम पर कॉन्फ़िगर करने योग्य है। अनुभाग। यह `--section-strategy` के माध्यम से रनटाइम पर कॉन्फ़िगर किया जा सकता है। प्रत्येक रणनीति `unstructured` तत्वों की सूची पर एक समूहीकरण फ़ंक्शन है। आउटपुट तत्वों के समूहों की एक सूची है; बाकी तत्व। आउटपुट तत्वों के समूहों की एक सूची है; बाकी का पाइपलाइन (टेक्स्ट असेंबली, लाइब्रेरियन स्टोरेज, प्रामाणिकता, टेक्स्टडॉक्यूमेंट उत्सर्जन) रणनीति की परवाह किए बिना समान है। #### `whole-document` (डिफ़ॉल्ट) पूरे दस्तावेज़ को एक ही अनुभाग के रूप में उत्सर्जित करें। डाउनस्ट्रीम चंकर को सभी विभाजन को संभालने दें। सबसे सरल दृष्टिकोण, अच्छा आधार रेखा बड़ी फ़ाइलों के लिए बहुत बड़ा टेक्स्टडॉक्यूमेंट उत्पन्न कर सकता है, लेकिन चंकर इसे संभालता है जब आप प्रति अनुभाग अधिकतम संदर्भ चाहते हैं तो सबसे अच्छा #### `heading` शीर्षलेख तत्वों (`Title`) पर विभाजित करें। प्रत्येक अनुभाग एक शीर्षलेख प्लस सभी सामग्री है जब तक कि समान या उच्च स्तर का अगला शीर्षलेख न हो। नेस्टेड शीर्षलेख नेस्टेड अनुभाग बनाते हैं। विषयगत रूप से सुसंगत इकाइयाँ उत्पन्न करता है संरचित दस्तावेज़ों (रिपोर्ट, मैनुअल, विनिर्देश) के लिए अच्छा काम करता है निष्कर्षण एलएलएम को सामग्री के साथ शीर्षलेख संदर्भ देता है यदि कोई शीर्षलेख नहीं मिला है तो `whole-document` पर वापस आ जाता है #### `element-type` जब तत्व प्रकार में महत्वपूर्ण परिवर्तन होता है तो विभाजित करें - विशेष रूप से, वर्णनात्मक पाठ और तालिकाओं के बीच संक्रमण पर एक नया अनुभाग शुरू करें। लगातार समान व्यापक श्रेणी (पाठ, पाठ, पाठ या तालिका, तालिका) के तत्व एक साथ समूहीकृत रहते हैं। तालिकाओं को स्टैंडअलोन अनुभागों के रूप में रखता है मिश्रित सामग्री वाले दस्तावेज़ों (डेटा तालिकाओं वाली रिपोर्ट) के लिए अच्छा है तालिकाओं को समर्पित निष्कर्षण ध्यान मिलता है #### `count` तत्वों की एक निश्चित संख्या को प्रति अनुभाग समूहीकृत करें। ⟦CODE_0⟧ के माध्यम से कॉन्फ़िगर करने योग्य (डिफ़ॉल्ट: 20)। `--section-element-count` (डिफ़ॉल्ट: 20)। सरल और अनुमानित दस्तावेज़ संरचना का सम्मान नहीं करता है प्रयोग के लिए एक फ़ॉलबैक या उपयोगी #### `size` तत्वों को तब तक जमा करें जब तक कि एक वर्ण सीमा तक न पहुँच जाए, फिर एक नया अनुभाग शुरू करें। तत्वों की सीमाओं का सम्मान करता है - कभी भी किसी तत्व के बीच में विभाजन नहीं करता है। नए अनुभाग। तत्वों की सीमाओं का सम्मान करता है - कभी भी किसी तत्व के बीच में विभाजन नहीं करता है। `--section-max-size` के माध्यम से कॉन्फ़िगर किया जा सकता है (डिफ़ॉल्ट: 4000 अक्षर)। लगभग समान खंड आकार उत्पन्न करता है। तत्वों की सीमाओं का सम्मान करता है (डाउनस्ट्रीम चंकर के विपरीत)। संरचना और आकार नियंत्रण के बीच एक अच्छा समझौता। यदि कोई एकल तत्व सीमा से अधिक है, तो वह अपने आप में एक खंड बन जाता है। #### पृष्ठ-आधारित प्रारूप इंटरैक्शन पृष्ठ-आधारित स्वरूपों के लिए, पृष्ठ समूहीकरण हमेशा प्राथमिकता लेता है। अनुभाग रणनीतियों को वैकल्पिक रूप से एक पृष्ठ के *अंदर* लागू किया जा सकता है यदि वह बहुत बड़ा है (उदाहरण के लिए, एक बहुत बड़े तालिका वाला पीडीएफ पृष्ठ), जिसे द्वारा नियंत्रित किया जाता है। बड़ा (उदाहरण के लिए, एक पीडीएफ पृष्ठ जिसमें एक बहुत बड़ा तालिका है), जिसे नियंत्रित किया जाता है। `--section-within-pages` (डिफ़ॉल्ट: गलत)। जब गलत होता है, तो प्रत्येक पृष्ठ का आकार की परवाह किए बिना हमेशा एक ही खंड होता है। ### प्रारूप का पता लगाना डीकोडर को दस्तावेज़ के एमआईएमई प्रकार के बारे में पता होना चाहिए ताकि इसे आगे बढ़ाया जा सके। `unstructured` का `partition()`। दो रास्ते: **लाइब्रेरियन पथ** (`document_id` सेट): दस्तावेज़ मेटाडेटा प्राप्त करें। सबसे पहले लाइब्रेरियन से जानकारी प्राप्त करें - यह हमें `kind` (मिम टाइप) देता है। जो अपलोड के समय दर्ज किया गया था। फिर दस्तावेज़ सामग्री प्राप्त करें। दो लाइब्रेरियन कॉल, लेकिन मेटाडेटा प्राप्त करना आसान है। **इनलाइन पथ** (पिछला संगतता, `data` सेट): संदेश पर कोई मेटाडेटा उपलब्ध नहीं है। प्रारूप का पता लगाने के लिए `python-magic` का उपयोग करें। सामग्री बाइट्स से एक वैकल्पिक विधि के रूप में। `Document` स्कीमा में कोई बदलाव आवश्यक नहीं है - लाइब्रेरियन पहले से ही MIME प्रकार संग्रहीत करता है। ### वास्तुकला एक एकल `universal-decoder` सेवा जो: 1. एक `Document` संदेश प्राप्त होता है (इनलाइन या लाइब्रेरियन संदर्भ के माध्यम से)। 2. यदि लाइब्रेरियन पथ है: दस्तावेज़ मेटाडेटा प्राप्त करें (मिम प्रकार प्राप्त करें), फिर सामग्री प्राप्त करें। यदि इनलाइन पथ है: सामग्री बाइट्स से प्रारूप का पता लगाएं। 3. तत्वों को निकालने के लिए `partition()` को कॉल करता है। 4. तत्वों को समूहीकृत करता है: पृष्ठ-आधारित प्रारूपों के लिए पृष्ठ द्वारा, गैर-पृष्ठ प्रारूपों के लिए कॉन्फ़िगर किए गए अनुभाग रणनीति द्वारा। 5. प्रत्येक पृष्ठ/अनुभाग के लिए: एक `urn:page:{uuid}` या `urn:section:{uuid}` आईडी उत्पन्न करता है। पृष्ठ पाठ को असेंबल करता है: वर्णनात्मक पाठ को सादे पाठ के रूप में, तालिकाओं को HTML के रूप में, छवियों को छोड़ दिया जाता है। पृष्ठ पाठ के भीतर प्रत्येक तत्व के लिए वर्ण अद्ययनों की गणना करता है। लाइब्रेरियन में एक चाइल्ड दस्तावेज़ के रूप में सहेजता है। स्थिति संबंधी मेटाडेटा के साथ प्रामाणिकता ट्रिपल उत्सर्जित करता है। टुकड़ों में विभाजित करने के लिए `TextDocument` को आगे भेजता है। 6. प्रत्येक छवि तत्व के लिए: एक `urn:image:{uuid}` आईडी उत्पन्न करता है। छवि डेटा को लाइब्रेरियन में एक चाइल्ड दस्तावेज़ के रूप में सहेजता है। प्रामाणिकता ट्रिपल उत्सर्जित करता है (केवल संग्रहीत, आगे नहीं भेजा गया)। ### प्रारूप प्रबंधन | प्रारूप | MIME प्रकार | पृष्ठ-आधारित | नोट्स | |----------|------------------------------------|------------|--------------------------------| | PDF | application/pdf | हाँ | प्रति-पृष्ठ समूहीकरण | | DOCX | application/vnd.openxmlformats... | नहीं | अनुभाग रणनीति का उपयोग करता है | | PPTX | application/vnd.openxmlformats... | हाँ | प्रति-स्लाइड समूहीकरण | | XLSX/XLS | application/vnd.openxmlformats... | हाँ | प्रति-शीट समूहीकरण | | HTML | text/html | नहीं | अनुभाग रणनीति का उपयोग करता है | | Markdown | text/markdown | नहीं | अनुभाग रणनीति का उपयोग करता है | | सादा | text/plain | नहीं | अनुभाग रणनीति का उपयोग करता है | | CSV | text/csv | नहीं | अनुभाग रणनीति का उपयोग करता है | | RST | text/x-rst | नहीं | अनुभाग रणनीति का उपयोग करता है | | RTF | application/rtf | नहीं | अनुभाग रणनीति का उपयोग करता है | | ODT | application/vnd.oasis... | नहीं | अनुभाग रणनीति का उपयोग करता है | | TSV | text/tab-separated-values | नहीं | अनुभाग रणनीति का उपयोग करता है | ### उत्पत्ति मेटाडेटा प्रत्येक पृष्ठ/अनुभाग इकाई, प्रामाणिकता के रूप में स्थिति संबंधी मेटाडेटा को रिकॉर्ड करती है। `GRAPH_SOURCE` में ट्रिपल, जो नॉलेज ग्राफ (KG) ट्रिपल से स्रोत दस्तावेज़ की स्थिति तक पूर्ण पता लगाने की क्षमता प्रदान करते हैं। #### मौजूदा फ़ील्ड (पहले से ही `derived_entity_triples` में) `page_number` — पृष्ठ/शीट/स्लाइड संख्या (1 से शुरू, केवल पृष्ठ-आधारित) `char_offset` — इस पृष्ठ/खंड के भीतर का वर्ण ऑफ़सेट। पूर्ण दस्तावेज़ पाठ `char_length` — इस पृष्ठ/खंड के पाठ की वर्ण संख्या #### नए फ़ील्ड (`derived_entity_triples` का विस्तार करें) `mime_type` — मूल दस्तावेज़ का प्रारूप (उदाहरण के लिए, `application/pdf`) `element_types` — `unstructured` तत्वों की अल्पविराम-विभाजित सूची इस पृष्ठ/अनुभाग में पाए गए श्रेणियाँ (उदाहरण के लिए, "शीर्षक, वर्णनात्मक पाठ, तालिका") `table_count` — इस पृष्ठ/अनुभाग में तालिकाओं की संख्या `image_count` — इस पृष्ठ/अनुभाग में छवियों की संख्या इनके लिए नए टीजी नेमस्पेस विधेयकों की आवश्यकता है: ``` TG_SECTION_TYPE = "https://trustgraph.ai/ns/Section" TG_IMAGE_TYPE = "https://trustgraph.ai/ns/Image" TG_ELEMENT_TYPES = "https://trustgraph.ai/ns/elementTypes" TG_TABLE_COUNT = "https://trustgraph.ai/ns/tableCount" TG_IMAGE_COUNT = "https://trustgraph.ai/ns/imageCount" ``` इमेज यूआरएन योजना: `urn:image:{uuid}` (`TG_MIME_TYPE` पहले से मौजूद है।) #### नया इकाई प्रकार गैर-पेज प्रारूपों (DOCX, HTML, Markdown, आदि) के लिए जहां डिकोडर पूरे दस्तावेज़ को एक इकाई के रूप में उत्सर्जित करता है, न कि पृष्ठों में विभाजित करके, इकाई को एक नया प्रकार मिलता है: ``` TG_SECTION_TYPE = "https://trustgraph.ai/ns/Section" ``` यह अनुभागों को पृष्ठों से अलग करता है जब मूल जानकारी प्राप्त करने के लिए क्वेरी की जाती है: | इकाई | प्रकार | उपयोग कब | |---|---|---| | दस्तावेज़ | `tg:Document` | मूल अपलोड की गई फ़ाइल | | पृष्ठ | `tg:Page` | पृष्ठ-आधारित प्रारूप (पीडीएफ, पीपीटीएक्स, एक्सएलएसएक्स) | | अनुभाग | `tg:Section` | गैर-पृष्ठ प्रारूप (डीओएक्स, एचटीएमएल, एमडी, आदि) | | छवि | `tg:Image` | एम्बेडेड छवियां (संग्रहित, संसाधित नहीं) | | भाग | `tg:Chunk` | चंकर का आउटपुट | | उपग्राफ | `tg:Subgraph` | केजी निष्कर्षण आउटपुट | प्रकार को डिकोडर द्वारा यह निर्धारित किया जाता है कि यह पृष्ठ द्वारा समूहीकृत है या पूरे दस्तावेज़ अनुभाग को उत्सर्जित कर रहा है। ⟦CODE_0⟧ प्राप्त होता है। या पूरे दस्तावेज़ अनुभाग को उत्सर्जित कर रहा है। `derived_entity_triples` प्राप्त होता है। एक वैकल्पिक `section` बूलियन पैरामीटर - जब सत्य होता है, तो इकाई को `tg:Section` के रूप में टाइप किया जाता है, `tg:Page` के बजाय। #### पूर्ण उत्पत्ति श्रृंखला ``` KG triple → subgraph (extraction provenance) → chunk (char_offset, char_length within page) → page/section (page_number, char_offset, char_length within doc, mime_type, element_types) → document (original file in librarian) ``` प्रत्येक लिंक, `GRAPH_SOURCE` नामक ग्राफ में ट्रिपल के एक सेट का प्रतिनिधित्व करता है। ### सेवा कॉन्फ़िगरेशन कमांड-लाइन तर्क: ``` --strategy Partitioning strategy: auto, hi_res, fast (default: auto) --languages Comma-separated OCR language codes (default: eng) --section-strategy Section grouping: whole-document, heading, element-type, count, size (default: whole-document) --section-element-count Elements per section for 'count' strategy (default: 20) --section-max-size Max chars per section for 'size' strategy (default: 4000) --section-within-pages Apply section strategy within pages too (default: false) ``` साथ ही मानक `FlowProcessor` और लाइब्रेरियन क्यू तर्क। ### फ्लो इंटीग्रेशन (प्रवाह एकीकरण) सार्वभौमिक डिकोडर प्रसंस्करण प्रवाह में उसी स्थिति पर होता है जैसा कि वर्तमान पीडीएफ डिकोडर: ``` Document → [universal-decoder] → TextDocument → [chunker] → Chunk → ... ``` यह पंजीकृत करता है: `input` उपभोक्ता (दस्तावेज़ स्कीमा) `output` उत्पादक (टेक्स्टडॉक्यूमेंट स्कीमा) `triples` उत्पादक (ट्रिपल्स स्कीमा) लाइब्रेरियन अनुरोध/प्रतिक्रिया (फ़ेच और चाइल्ड दस्तावेज़ भंडारण के लिए) ### परिनियोजन नया कंटेनर: `trustgraph-flow-universal-decoder` निर्भरता: `unstructured[all-docs]` (इसमें पीडीएफ, डॉक्स, पीपीटीएक्स, आदि शामिल हैं) यह मौजूदा पीडीएफ डिकोडर के साथ समानांतर रूप से चल सकता है या उसकी जगह ले सकता है, यह इस बात पर निर्भर करता है। प्रवाह विन्यास मौजूदा पीडीएफ डिकोडर उन वातावरणों में भी उपलब्ध रहेगा जहाँ `unstructured` निर्भरताएँ बहुत अधिक हैं ### क्या बदलाव | घटक (Component) | परिवर्तन (Change) | |------------------------------|-------------------------------------------------| | `provenance/namespaces.py` | `TG_SECTION_TYPE`, `TG_IMAGE_TYPE`, `TG_ELEMENT_TYPES`, `TG_TABLE_COUNT`, `TG_IMAGE_COUNT` जोड़ें (Add `TG_SECTION_TYPE`, `TG_IMAGE_TYPE`, `TG_ELEMENT_TYPES`, `TG_TABLE_COUNT`, `TG_IMAGE_COUNT`) | | `provenance/triples.py` | `mime_type`, `element_types`, `table_count`, `image_count` kwargs जोड़ें (Add `mime_type`, `element_types`, `table_count`, `image_count` kwargs) | | `provenance/__init__.py` | नए स्थिरांकों को निर्यात करें (Export new constants) | | नया: `decoding/universal/` | नया डिकोडर सेवा मॉड्यूल (New decoder service module) | | `setup.cfg` / `pyproject` | `unstructured[all-docs]` निर्भरता जोड़ें (Add `unstructured[all-docs]` dependency) | | डॉकर (Docker) | नया कंटेनर इमेज (New container image) | | फ्लो परिभाषाएँ (Flow definitions) | यूनिवर्सल-डिकोडर को दस्तावेज़ इनपुट के रूप में उपयोग करें (Wire universal-decoder as document input) | ### क्या नहीं बदलता (What Doesn't Change) चंकर (टेक्स्टडॉक्यूमेंट प्राप्त करता है, पहले की तरह काम करता है) डाउनस्ट्रीम एक्सट्रैक्टर (चंक प्राप्त करते हैं, अपरिवर्तित) लाइब्रेरियन (चाइल्ड डॉक्यूमेंट्स को संग्रहीत करता है, अपरिवर्तित) स्कीमा (डॉक्यूमेंट, टेक्स्टडॉक्यूमेंट, चंक अपरिवर्तित) क्वेरी-टाइम प्रोवेनेंस (अपरिवर्तित) ## जोखिम `unstructured[all-docs]` में भारी निर्भरताएँ हैं (पोप्लर, टेसेरैक्ट, लिब्रेऑफिस कुछ प्रारूपों के लिए)। कंटेनर इमेज का आकार बड़ा होगा। निवारण: ओसीआर/ऑफिस निर्भरताओं के बिना `[light]` का एक संस्करण प्रदान करें। कुछ प्रारूपों से खराब टेक्स्ट निष्कर्षण हो सकता है (बिना ओसीआर वाले स्कैन किए गए पीडीएफ)। ओसीआर, जटिल एक्सेल (XLSX) लेआउट)। निवारण: कॉन्फ़िगर करने योग्य `strategy` पैरामीटर, और मौजूदा मिस्ट्रल ओसीआर डिकोडर अभी भी उपलब्ध है। उच्च-गुणवत्ता वाले पीडीएफ ओसीआर के लिए। `unstructured` संस्करण अपडेट से तत्व मेटाडेटा में परिवर्तन हो सकता है। निवारण: संस्करण को स्थिर करें, प्रत्येक प्रारूप के लिए निष्कर्षण गुणवत्ता का परीक्षण करें।