قواعد التحقق - وثائق Entity Enricher

قواعد التحقق

تضمن ثماني قواعد تحقق جودة المخطط. عند فشل أي قاعدة أثناء توليد المخطط بالذكاء الاصطناعي، يُرسَل الخطأ إلى الذكاء الاصطناعي للتصحيح الذاتي التلقائي.

كيف يعمل التصحيح الذاتي

بعد أن يولّد الذكاء الاصطناعي مخططًا، يمرّ عبر جميع قواعد التحقق الثماني. إذا فشلت أي قاعدة، تُجمَّع رسائل الخطأ المحدّدة وتُعاد إلى الذكاء الاصطناعي كتغذية راجعة. عندها ينتج الذكاء الاصطناعي مخططًا مصحّحًا يُعاد التحقق منه. تستمر هذه الحلقة حتى 6 محاولات إجمالًا (محاولة أولى + 5 إعادات).

مسار التصحيح

يُولّد الذكاء الاصطناعيمخطط يحتوي على خصائص وأنواع ومجالات خبرة وأوصاف
فحوصات المُتحقق8 قواعد تُطبَّق تباعًا، مع جمع جميع الأخطاء
في حال وجود أخطاءرسائل الخطأ المُعادة: «أصلح هذه المشكلات: [الإيراد: عدم تطابق النوع...]»
يصحّح الذكاء الاصطناعييُنتج مخططًا مُحدَّثًا يعالج الأخطاء المُبلَّغ عنها
تكرارحتى تجتاز جميع القواعد أو يتم بلوغ الحد الأقصى للمحاولات

عمليًا، تجتاز معظم المخططات المحاولة الأولى. وحلقة التصحيح الذاتي هي شبكة أمان تعالج الحالات الحدّية التي يرتكب فيها الذكاء الاصطناعي أخطاء في الأنواع أو ينسى حقلًا.

قواعد التوليد مقابل التحرير

لا تنطبق جميع القواعد على كل من توليد المخطط والتحرير بالذكاء الاصطناعي. تُتخطّى القواعد التي تقارن ببيانات الإدخال أثناء التحرير لأنك قد تضيف حقولًا أو تزيلها عمدًا:

النطاقالقواعد المطبَّقةلماذا
التوليدجميع القواعد الثمانيبيانات المُدخل متاحة للمقارنة
التحرير بالذكاء الاصطناعيالقواعد 2 و3 و4 و5 فقطلا توجد بيانات إدخال؛ قد يعدّل المستخدم البنية عمداً

القواعد الثماني

القاعدة 1

عدد مجالات الخبرة

النطاق: التوليد فقط

يجب ألّا يتجاوز عدد مجالات الخبرة الحدّ الأقصى المحسوب بناءً على عدد خصائصك. يمنع هذا الذكاء الاصطناعي من إنشاء عدد كبير من المجالات الدقيقة للمخطّطات الصغيرة.

مثال على خطأ: Too many expertise domains: 6 defined, maximum is 3

يُحسب الحدّ الأقصى بالصيغة floor(property_count / 6)، بحدّ أدنى قدره 1. يسمح المخطّط الذي يحتوي على 12 خاصية بما يصل إلى مجالين.

القاعدة 2

خاصية واحدة على الأقل

النطاق: كلاهما

يجب أن يُعرّف كل مخطط خاصية واحدة على الأقل. ولا يمكن استخدام مخطط فارغ للإثراء.

مثال على خطأ: Schema must have at least one property

يلتقط هذا الحالات التي يُنتج فيها الذكاء الاصطناعي بنية JSON صالحة لكنه ينسى تضمين أي حقول فعلية.

القاعدة 3

أنواع مخطط JSON الصالحة

النطاق: كلاهما

يجب أن يكون نوع كل خاصية أحد أنواع JSON Schema القياسية: نص، أو رقم، أو عدد صحيح، أو قيمة منطقية، أو مصفوفة، أو كائن، أو null.

مثال على خطأ: revenue: invalid type 'float'

يخترع الذكاء الاصطناعي أحيانًا أنواعًا مثل ”float“ أو ”decimal“ أو ”date“. تلتقط هذه القاعدة تلك الأنواع وتطلب تصحيحها إلى نوع صالح.

القاعدة 4

وجود أهداف $ref

النطاق: كلاهما

يجب أن تشير جميع مراجع $ref إلى كيانات مُعرَّفة في قسم $defs الخاص بالمخطط. المراجع المُعلَّقة تُعطِّل خط أنابيب الإثراء.

مثال على خطأ: manufacturer: $ref '#/$defs/Company' references undefined definition

عندما ينشئ الذكاء الاصطناعي مرجعًا مثل ‎#/$defs/Company، يجب أن يوجد تعريف Company مطابق في كتلة ‎$defs.

القاعدة 5

مفتاح الخبرة موجود

النطاق: كلاهما

يجب أن تطابق قيمة الخبرة لكل خاصية أحد مجالات الخبرة المُعرَّفة. وهذا يمنع الأخطاء المطبعية وعدم الاتساق.

مثال على خطأ: revenue: expertise 'finance' not in defined domains: ['financial_analyst']

قد يستخدم الذكاء الاصطناعي ”finance“ بدلاً من المفتاح المحدد ”financial_analyst“. تلتقط هذه القاعدة عدم التطابق حتى يتمكن الذكاء الاصطناعي من تصحيحه.

القاعدة 6

الخبرة مطلوبة

النطاق: التوليد فقط

يجب أن تحتوي الخصائص غير الكائنية وغير المحفوظة على تعيين خبرة. يضمن ذلك معالجة كل حقل قابل للإثراء بواسطة مجال متخصص.

مثال على خطأ: revenue: expertise is required for non-object types

تُستثنى أنواع الكائنات لأن خصائصها الفرعية تحمل خبرتها الخاصة. وتُستثنى الحقول المحفوظة لأنها تمر دون تغيير.

القاعدة 7

النوع يطابق بيانات الإدخال

النطاق: التوليد فقط

يجب أن يتطابق نوع المخطط لكل خاصية مع نوع Python الفعلي للقيمة المقابلة في بيانات الإدخال.

مثال على خطأ: revenue: type mismatch - input is number but schema says 'string'

إذا احتوى إدخالك على "revenue": 42.5، فيجب أن يستخدم المخطط النوع "number" أو "integer"، وليس "string". أداة التحقق مرنة: فهي تقبل "number" للأعداد الصحيحة والعكس صحيح.

القاعدة 8

جميع خصائص الإدخال موجودة

النطاق: التوليد فقط

يجب أن يظهر كل مفتاح في بيانات الإدخال كخاصية في المخطط المُولّد. وهذا يمنع الذكاء الاصطناعي من إسقاط الحقول بصمت.

مثال على خطأ: Missing property from input: 'headquarters'

إذا احتوى JSON المُدخل على مفتاح "headquarters"، فيجب أن يتضمنه المخطط المُولَّد. وهذا يضمن تغطية كاملة لبياناتك.

استنتاج النوع

تستخدم القاعدة 7 (مطابقة النوع) الاستنتاج التلقائي للنوع لمقارنة قيم الإدخال الخاصة بك بالأنواع المُعلَنة في المخطط. والاستنتاج مرن لتجنّب النتائج الإيجابية الخاطئة:

قيمة الإدخالالنوع المُستنتَجيقبل أيضًا
true / falseboolean(قيمة منطقية فقط)
42integernumber
3.14numberinteger
"hello"string(نص فقط)
[1, 2, 3]array(مصفوفة فقط)
{"key": "val"}object(كائن فقط)

ملاحظة: يتم فحص القيم المنطقية قبل الأعداد الصحيحة لأن القيمة المنطقية في بعض اللغات نوع فرعي من العدد الصحيح. يمنع هذا الترتيب استنتاج true كعدد صحيح.

الخطوات التالية