تضمن ثماني قواعد تحقق جودة المخطط. عند فشل أي قاعدة أثناء توليد المخطط بالذكاء الاصطناعي، يُرسَل الخطأ إلى الذكاء الاصطناعي للتصحيح الذاتي التلقائي.
بعد أن يولّد الذكاء الاصطناعي مخططًا، يمرّ عبر جميع قواعد التحقق الثماني. إذا فشلت أي قاعدة، تُجمَّع رسائل الخطأ المحدّدة وتُعاد إلى الذكاء الاصطناعي كتغذية راجعة. عندها ينتج الذكاء الاصطناعي مخططًا مصحّحًا يُعاد التحقق منه. تستمر هذه الحلقة حتى 6 محاولات إجمالًا (محاولة أولى + 5 إعادات).
عمليًا، تجتاز معظم المخططات المحاولة الأولى. وحلقة التصحيح الذاتي هي شبكة أمان تعالج الحالات الحدّية التي يرتكب فيها الذكاء الاصطناعي أخطاء في الأنواع أو ينسى حقلًا.
لا تنطبق جميع القواعد على كل من توليد المخطط والتحرير بالذكاء الاصطناعي. تُتخطّى القواعد التي تقارن ببيانات الإدخال أثناء التحرير لأنك قد تضيف حقولًا أو تزيلها عمدًا:
| النطاق | القواعد المطبَّقة | لماذا |
|---|---|---|
| التوليد | جميع القواعد الثماني | بيانات المُدخل متاحة للمقارنة |
| التحرير بالذكاء الاصطناعي | القواعد 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 الخاص بالمخطط. المراجع المُعلَّقة تُعطِّل خط أنابيب الإثراء.
manufacturer: $ref '#/$defs/Company' references undefined definitionعندما ينشئ الذكاء الاصطناعي مرجعًا مثل #/$defs/Company، يجب أن يوجد تعريف Company مطابق في كتلة $defs.
يجب أن تطابق قيمة الخبرة لكل خاصية أحد مجالات الخبرة المُعرَّفة. وهذا يمنع الأخطاء المطبعية وعدم الاتساق.
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 كعدد صحيح.