ثماني قواعد تحقق تضمن جودة المخطط. وتُنفَّذ برمجيًا بمجرد أن يُجمّع توليد المخططات بالذكاء الاصطناعي إجابته — شبكة أمان أخيرة فوق مسار يصحح نفسه خطوة بخطوة أصلًا.
يجري التصحيح عند موضع وقوع الخطأ لا في النهاية. فالتوليد سلسلة من الاستدعاءات الصغيرة أحادية الغرض، ويحمل كل استدعاء مُحقِّقه الخاص: يفحص إجابة ذلك الاستدعاء، ويحتفظ بكل ما كان صحيحًا، ثم يعيد السؤال عمّا لا يزال ناقصًا فقط. وهكذا يتقارب النموذج الذي يجيب على شكل أجزاء بدلًا من أن يبدأ من جديد.
خطوتان فقط يمكن أن تُفشلا عملية التوليد كليًا: تسمية الكيان، وتوجيه الخصائص إلى مجالات الخبرة. ولكل ما عداهما بديل احتياطي حتمي، وهو ما يجعل النماذج الصغيرة صالحة للاستخدام هنا.
لا تنطبق جميع القواعد على كل من توليد المخطط والتحرير بالذكاء الاصطناعي. تُتخطّى القواعد التي تقارن ببيانات الإدخال أثناء التحرير لأنك قد تضيف حقولًا أو تزيلها عمدًا:
| النطاق | القواعد المطبَّقة | لماذا |
|---|---|---|
| التوليد | جميع القواعد الثماني | بيانات المُدخل متاحة للمقارنة |
| التحرير بالذكاء الاصطناعي | القواعد 2 و3 و4 و5 فقط | لا توجد بيانات إدخال؛ قد يعدّل المستخدم البنية عمداً |
يجب ألّا يتجاوز عدد مجالات الخبرة الحدّ الأقصى المحسوب بناءً على عدد خصائصك. يمنع هذا الذكاء الاصطناعي من إنشاء عدد كبير من المجالات الدقيقة للمخطّطات الصغيرة.
Too many expertise domains: 6 defined, maximum is 3يُحسب الحدّ الأقصى بالصيغة floor(property_count / 6)، بحدّ أدنى قدره 1. يسمح المخطّط الذي يحتوي على 12 خاصية بما يصل إلى مجالين.
يجب أن يُعرّف كل مخطط خاصية واحدة على الأقل. ولا يمكن استخدام مخطط فارغ للإثراء.
Schema must have at least one propertyيلتقط هذا الحالات التي يُنتج فيها الذكاء الاصطناعي بنية JSON صالحة لكنه ينسى تضمين أي حقول فعلية.
يجب أن يكون نوع كل خاصية أحد أنواع JSON Schema القياسية: نص، أو رقم، أو عدد صحيح، أو قيمة منطقية، أو مصفوفة، أو كائن، أو null.
revenue: invalid type 'float'يخترع الذكاء الاصطناعي أحيانًا أنواعًا مثل ”float“ أو ”decimal“ أو ”date“. تلتقط هذه القاعدة تلك الأنواع وتطلب تصحيحها إلى نوع صالح.
يجب أن يشير كل $ref إلى شيء موجود: #/$defs/... إلى تعريف كيان، و#/$enums/... إلى مجموعة قيم. المراجع المعلّقة تُعطّل مسار الإثراء.
manufacturer: $ref '#/$defs/Company' references undefined definitionمساحتا الأسماء منفصلتان: مرجع #/$defs/ هو علاقة بكيان متداخل، بينما يقيّد مرجع #/$enums/ خاصية نصية بقائمة مغلقة من القيم المسموح بها. ويجب أن يكون لكل منهما إدخال مطابق في كتلته الخاصة.
يجب أن تطابق قيمة الخبرة لكل خاصية أحد مجالات الخبرة المُعرَّفة. وهذا يمنع الأخطاء المطبعية وعدم الاتساق.
revenue: expertise 'finance' not in defined domains: ['financial_analyst']قد يستخدم الذكاء الاصطناعي ”finance“ بدلاً من المفتاح المحدد ”financial_analyst“. تلتقط هذه القاعدة عدم التطابق حتى يتمكن الذكاء الاصطناعي من تصحيحه.
يجب أن تحتوي الخصائص غير الكائنية وغير المحفوظة على تعيين خبرة. يضمن ذلك معالجة كل حقل قابل للإثراء بواسطة مجال متخصص.
revenue: expertise is required for non-object typesتُستثنى أنواع الكائنات لأن خصائصها الفرعية تحمل خبرتها الخاصة. وتُستثنى الحقول المحفوظة لأنها تمر دون تغيير.
يجب أن يتطابق نوع المخطط لكل خاصية مع نوع Python الفعلي للقيمة المقابلة في بيانات الإدخال.
revenue: type mismatch - input is number but schema says 'string'إذا احتوى إدخالك على "revenue": 42.5، فيجب أن يستخدم المخطط النوع "number" أو "integer"، وليس "string". أداة التحقق مرنة: فهي تقبل "number" للأعداد الصحيحة والعكس صحيح.
يجب أن يظهر كل مفتاح في بيانات الإدخال كخاصية في المخطط المُولّد. وهذا يمنع الذكاء الاصطناعي من إسقاط الحقول بصمت.
Missing property from input: 'headquarters'إذا احتوى JSON المُدخل على مفتاح "headquarters"، فيجب أن يتضمنه المخطط المُولَّد. وهذا يضمن تغطية كاملة لبياناتك.
تستخدم القاعدة 7 (مطابقة النوع) الاستنتاج التلقائي للنوع لمقارنة قيم الإدخال الخاصة بك بالأنواع المُعلَنة في المخطط. والاستنتاج مرن لتجنّب النتائج الإيجابية الخاطئة:
| قيمة الإدخال | النوع المُستنتَج | يقبل أيضًا |
|---|---|---|
| true / false | boolean | (قيمة منطقية فقط) |
| 42 | integer | number |
| 3.14 | number | integer |
| "hello" | string | (نص فقط) |
| [1, 2, 3] | array | (مصفوفة فقط) |
| {"key": "val"} | object | (كائن فقط) |
ملاحظة: يتم فحص القيم المنطقية قبل الأعداد الصحيحة لأن القيمة المنطقية في بعض اللغات نوع فرعي من العدد الصحيح. يمنع هذا الترتيب استنتاج true كعدد صحيح.
يصف هذا الجدول ما يقبله المدقّق، لا ما يُنتجه التوليد. فوجود قيمة 3 في العيّنة لا يجعل الخاصية عددًا صحيحًا: تُشحن الحقول الرقمية بوصفها number ما لم تؤكّد خطوة مخصّصة أن الكمية منفصلة فعلًا وألّا تناقضها أي قيمة ملاحَظة. فعدد صحيح واحد في عيّنة ليس دليلًا على استحالة الأنصاف — وإعلانها عددًا صحيحًا بالخطأ سيقتطع 6.2 إلى 6 في قاعدة بيانات مستهلِكة.