الذكاء التوليدي / الأساسي: أسس التوليد والدليل / الدرس 4
المخرجات المنظمة والتحقق
افصل الصياغة والمخطط وصحة المجال والسند وسلطة استخدام الناتج.
في هذه الصفحة
أهداف الدرس
- اشرح افتراضات وحدود الثقة المتعلقة بموضوع «المخرجات المنظمة والتحقق».
- فسر المثالين وميز نتيجة العينة المحلية من دليل النموذج أوالإنتاج.
- شخص الإخفاقات وعلل القرارات المشروحة مع حفظ عقد المهمة والبيانات والإذن وعدم اليقين.
الشكل الصحيح ضمان واحد فقط
قد تحلل JSON وتحمل حقولا وادعاءات وأفعالا وقيما خاطئة؛ فعامل الناتج غير موثوق. يفصل المحقق الصياغة والنوع والعدد والقبول لعقد صغير لا محرك مخطط كامل. يقيد التوليد المقيد المدعوم الشكل لا الحقيقة والملكية والإذن، ولا تعلم الدورة API خاصة أوتستدعيها.
import json
def reject_constant(value):
raise ValueError("nonstandard JSON constant")
def validate(text):
try:
value = json.loads(text, parse_constant=reject_constant)
except ValueError:
return "invalid_json"
if not isinstance(value, dict) or set(value) != {"count"} or type(value["count"]) is not int:
return "schema_error"
if not 0 <= value["count"] <= 3:
return "domain_error"
return "accepted"
for candidate in ['{"count": 2}', '{"count": true}', '{"count": 5}', "count=2"]:
print(validate(candidate))
accepted
schema_error
domain_error
invalid_json
يقبل العدد الدقيق ضمن الحد فقط، والمحقق لعقد ضيق لا قياس جودة نموذج.
تصريح المخطط ولهجته
حدد المطلوب والنوع والحد والتعداد والتداخل والمجهول. يصرح المثال لهجة 2020-12 ويُفحص صياغيا لا بنموذج أومحرك. قد يدعم التشغيل جزءا أولهجة أخرى؛ فتحقق. لا يوثق اسم citations المراجع، وحد الأحجام وحدد null والغائب والفارغ والمكرر.
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","required":["answer","source_ids"],"properties":{"answer":{"type":"string","maxLength":200},"source_ids":{"type":"array","maxItems":5,"uniqueItems":true,"items":{"type":"string"}}},"additionalProperties":false}
يقيد الشكل والحجم لا وجود المصدر وسنده، وليس API مزود ولا ينفذ بمحرك أونموذج.
التحقق من المجال والدليل بعد الشكل
لا يثبت العدد الصحيح حقيقة من المصدر. يفرض المجال المخزون والعلاقة ويفحص الدليل الدعوى، ويمنع النوع الدقيق قبول bool كعدد. افصل الإذن، ولا تبن SQL أوأمرا أو HTML أوأداة بلا عقد مراجع. قد يكون الصحيح شكلا عدائيا أوقديما أوبلا سند أولمستأجر آخر.
تقييد التصحيح وسياسة الفشل
ارفض أواطلب مراجعة أوصحح بمحاولات محدودة؛ فالتكرار المفتوح يزيد الكلفة والزمن. لا تملأ حقيقة أوتغير العملية لتنجح. احفظ المهمة والمخطط والدليل والإذن عند جولة أخرى، وصنف نوع الفشل للتحقيق لا جوابا فارغا ناجحا ظاهريا.
اختبار العادي والحدي محليا
أدرج الصحيح والغائب والمجهول والنوع والكبير وnull والمراجع والادعاء والمنع. يثبت المحلي الاستجابة للعينة لا معدل فشل النموذج، بلا عميل حقيقي أواعتماد أوخدمة أودفع أوأثر. احفظ حد الاقتراح والقبول وسجل ما تحقق وما يحتاج دليلا أوبشرا.
الأخطاء الشائعة وإصلاحها
تطلق JSON محللة كبيانات متحققة
- لماذا يحدث؟
- حلت الصياغة محل بقية الفحوص.
- كيف تصلحه؟
- طبق الطبقات اللازمة صراحة.
- كيف تتجنب تكراره؟
- اختبر صحيح الشكل خاطئ المعنى.
تقبل true كعدد
- لماذا يحدث؟
- أضعف فحص فرعي قاعدة النوع.
- كيف تصلحه؟
- افرض النوع والحد الدقيقين.
- كيف تتجنب تكراره؟
- أدرج المنطق وnull بعينات العدد.
يخترع التصحيح حقيقة غائبة
- لماذا يحدث؟
- فضل النجاح على السند.
- كيف تصلحه؟
- ارفض أوامتنع عند الغياب.
- كيف تتجنب تكراره؟
- حد التصحيح واحفظ الأصل.
اختبر فهمك
1. يحمل الكائن عددا صحيحا والمرجع لا يذكره. هل يكفي المخطط؟
اعرض الحل المشروح
لا؛ يلزم سند أوامتناع لا افتراض محتمل إلا إن عرفه عقد التطبيق كسياسة صريحة.
2. حدد تسميات فشل JSON باطلة وحقول زائدة وعملية صحيحة ممنوعة.
اعرض الحل المشروح
افصل التحليل والمخطط والإذن لعلاجات مختلفة لا نجاح أومحاولة عشوائية، وامنع الأثر قبل اجتياز اللازم.
أهم ما تعلمته
- قد تحلل JSON وتحمل حقولا وادعاءات وأفعالا وقيما خاطئة؛ فعامل الناتج غير موثوق.
- لا يثبت العدد الصحيح حقيقة من المصدر.
- أدرج الصحيح والغائب والمجهول والنوع والكبير وnull والمراجع والادعاء والمنع.