सत्यापन नियम - Entity Enricher दस्तावेज़ीकरण

सत्यापन नियम

आठ वैलिडेशन नियम schema गुणवत्ता सुनिश्चित करते हैं। AI schema generation के दौरान जब कोई नियम विफल होता है, तो त्रुटि को स्वचालित स्व-सुधार के लिए AI को वापस भेजा जाता है।

सेल्फ-करेक्शन कैसे काम करता है

AI द्वारा स्कीमा जनरेट करने के बाद, यह सभी 8 वैलिडेशन नियमों से गुजरता है। यदि कोई नियम विफल होता है, तो विशिष्ट त्रुटि संदेश संकलित किए जाते हैं और फ़ीडबैक के रूप में AI को वापस भेजे जाते हैं। फिर AI एक संशोधित स्कीमा तैयार करता है, जिसे फिर से वैलिडेट किया जाता है। यह लूप कुल 6 प्रयासों तक जारी रहता है (1 प्रारंभिक + 5 पुनः प्रयास)।

करेक्शन फ़्लो

AI जनरेट करता हैप्रॉपर्टीज़, टाइप्स, expertise domain और विवरणों वाला schema
सत्यापनकर्ता जाँच8 नियम क्रमिक रूप से लागू किए जाते हैं, सभी errors एकत्र किए जाते हैं
यदि त्रुटियाँ होंवापस भेजे गए त्रुटि संदेश: “इन समस्याओं को ठीक करें: [revenue: type mismatch...]”
AI सुधार करता हैरिपोर्ट की गई त्रुटियों को संबोधित करने वाला अपडेटेड स्कीमा तैयार करता है
दोहराएँजब तक सभी नियम पास न हो जाएँ या अधिकतम प्रयास पूरे न हो जाएँ

व्यवहार में, अधिकांश schemas पहले प्रयास में ही पास हो जाते हैं। स्व-सुधार लूप एक सुरक्षा जाल है जो उन किनारे के मामलों को संभालता है जहाँ AI type त्रुटियाँ करता है या किसी field को भूल जाता है।

जेनरेशन बनाम एडिटिंग नियम

सभी नियम स्कीमा जनरेशन और AI एडिटिंग दोनों पर लागू नहीं होते। इनपुट डेटा से तुलना करने वाले नियम एडिटिंग के दौरान छोड़ दिए जाते हैं क्योंकि आप जानबूझकर फ़ील्ड जोड़ या हटा सकते हैं:

स्कोपलागू किए गए नियमक्यों
जेनरेशनसभी 8 नियमइनपुट डेटा तुलना के लिए उपलब्ध है
AI एडिटिंगकेवल नियम 2, 3, 4, 5कोई इनपुट डेटा नहीं; उपयोगकर्ता जानबूझकर संरचना बदल सकता है

8 नियम

नियम 1

विशेषज्ञता डोमेन गणना

स्कोप: केवल जेनरेशन

एक्सपर्टीज़ डोमेन की संख्या आपकी प्रॉपर्टी काउंट के आधार पर गणना किए गए अधिकतम से अधिक नहीं होनी चाहिए। यह AI को छोटे स्कीमा के लिए बहुत अधिक बारीक डोमेन बनाने से रोकता है।

उदाहरण एरर: Too many expertise domains: 6 defined, maximum is 3

अधिकतम की गणना floor(property_count / 6) के रूप में की जाती है, न्यूनतम 1 के साथ। 12 प्रॉपर्टीज़ वाला स्कीमा अधिकतम 2 डोमेन की अनुमति देता है।

नियम 2

कम से कम एक गुण

स्कोप: दोनों

हर स्कीमा को कम से कम एक प्रॉपर्टी परिभाषित करनी चाहिए। एक खाली स्कीमा संवर्धन के लिए उपयोग नहीं की जा सकती।

उदाहरण एरर: Schema must have at least one property

यह उन मामलों को पकड़ता है जहाँ AI एक मान्य JSON संरचना तैयार करता है लेकिन किसी भी वास्तविक फ़ील्ड को शामिल करना भूल जाता है।

नियम 3

मान्य JSON Schema प्रकार

स्कोप: दोनों

हर प्रॉपर्टी टाइप मानक JSON Schema टाइप्स में से एक होना चाहिए: string, number, integer, boolean, array, object, या null।

उदाहरण एरर: revenue: invalid type 'float'

AI कभी-कभी "float", "decimal", या "date" जैसे प्रकार गढ़ लेता है। यह नियम उन्हें पकड़ता है और किसी मान्य प्रकार में सुधार करने के लिए कहता है।

नियम 4

$ref लक्ष्य मौजूद हैं

स्कोप: दोनों

सभी $ref रेफरेंस को स्कीमा के $defs सेक्शन में परिभाषित एंटिटीज़ की ओर इंगित करना चाहिए। डैंगलिंग रेफरेंस संवर्धन पाइपलाइन को तोड़ देते हैं।

उदाहरण एरर: manufacturer: $ref '#/$defs/Company' references undefined definition

जब AI #/$defs/Company जैसा कोई रेफ़रेंस बनाता है, तो $defs ब्लॉक में एक मेल खाती Company परिभाषा होनी चाहिए।

नियम 5

विशेषज्ञता कुंजी मौजूद है

स्कोप: दोनों

हर प्रॉपर्टी का विशेषज्ञता मान परिभाषित विशेषज्ञता डोमेन में से किसी एक से मेल खाना चाहिए। यह टाइपो और असंगतियों को रोकता है।

उदाहरण एरर: revenue: expertise 'finance' not in defined domains: ['financial_analyst']

AI परिभाषित "financial_analyst" कुंजी के बजाय "finance" का उपयोग कर सकता है। यह नियम इस बेमेल को पकड़ता है ताकि AI इसे सुधार सके।

नियम 6

विशेषज्ञता आवश्यक

स्कोप: केवल जेनरेशन

नॉन-ऑब्जेक्ट, नॉन-प्रिज़र्व्ड प्रॉपर्टीज़ के लिए एक विशेषज्ञता डोमेन असाइनमेंट आवश्यक है। इससे यह सुनिश्चित होता है कि हर एनरिच-योग्य फ़ील्ड को किसी विशेषज्ञ डोमेन द्वारा संभाला जाए।

उदाहरण एरर: revenue: expertise is required for non-object types

Object प्रकारों को छूट है क्योंकि उनकी चाइल्ड प्रॉपर्टीज़ अपनी स्वयं की expertise domain रखती हैं। संरक्षित फ़ील्ड को छूट है क्योंकि वे अपरिवर्तित रूप से पास होते हैं।

नियम 7

प्रकार इनपुट डेटा से मेल खाता है

स्कोप: केवल जेनरेशन

हर प्रॉपर्टी का स्कीमा टाइप आपके इनपुट डेटा में संबंधित वैल्यू के वास्तविक Python टाइप से मेल खाना चाहिए।

उदाहरण एरर: revenue: type mismatch - input is number but schema says 'string'

यदि आपके input में "revenue": 42.5 है, तो schema को type "number" या "integer" का उपयोग करना होगा, "string" का नहीं। Validator लचीला है: यह integers के लिए "number" स्वीकार करता है और इसके विपरीत भी।

नियम 8

सभी इनपुट प्रॉपर्टीज़ मौजूद हैं

स्कोप: केवल जेनरेशन

आपके इनपुट डेटा में हर कुंजी को जनरेट किए गए स्कीमा में एक प्रॉपर्टी के रूप में दिखना चाहिए। यह AI को चुपचाप फ़ील्ड हटाने से रोकता है।

उदाहरण एरर: Missing property from input: 'headquarters'

यदि आपके input JSON में "headquarters" key है, तो उत्पन्न schema में इसे शामिल करना होगा। यह आपके डेटा का पूर्ण कवरेज सुनिश्चित करता है।

प्रकार अनुमान

नियम 7 (टाइप मैचिंग) आपके इनपुट वैल्यू की तुलना स्कीमा में घोषित टाइप से करने के लिए ऑटोमैटिक टाइप इन्फरेंस का उपयोग करता है। फॉल्स पॉज़िटिव से बचने के लिए यह इन्फरेंस लचीला है:

इनपुट वैल्यूअनुमानित प्रकारयह भी स्वीकार करता है
true / falseboolean(केवल boolean)
42integernumber
3.14numberinteger
"hello"string(केवल स्ट्रिंग)
[1, 2, 3]array(केवल array)
{"key": "val"}object(केवल object)

ध्यान दें: booleans की जाँच integers से पहले की जाती है क्योंकि कुछ भाषाओं में boolean, integer का एक सबटाइप होता है। यह क्रम true को integer के रूप में मान लिए जाने से रोकता है।

अगले चरण