0Pricing
AI Prompt Engineering · درس

مدققات المخططات والقواعد

فرض القيود.

مدققات المخططات والقواعد درس مجاني في AI Prompt Engineering على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في AI Prompt Engineering، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة AI Prompt Engineering 4 دروس في المجموع.

أدوات التحقق تفرض العقد

أداة التحقق هي وسيلة حماية تفحص المخرجات مقابل مواصفة صريحة: مخطط JSON، أو مجموعة من قواعد العمل، أو كليهما. وبخلاف مصنف الإشراف، تكون أداة التحقق حتمية وقابلة للتدقيق بالكامل؛ إذ تؤدي المدخلات نفسها دائمًا إلى الحكم نفسه.

طبقة التحقق من المخطط

تتأكد أداة التحقق الأولى من مطابقة المخرجات للعقد البنيوي. اجمع جميع الأخطاء، لا الخطأ الأول فقط، حتى تكون ملاحظات الإصلاح كاملة.

import jsonschema
def schema_errors(obj, schema):
    v = jsonschema.Draft202012Validator(schema)
    return [f"{list(e.path) or 'root'}: {e.message}"
            for e in v.iter_errors(obj)]

ما بعد المخطط: قواعد العمل

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

RULES = [
  ('discount_le_subtotal', lambda o: o['discount'] <= o['subtotal']),
  ('total_consistent', lambda o: o['total'] == o['subtotal'] - o['discount']),
  ('currency_supported', lambda o: o['currency'] in SUPPORTED)
]
def rule_errors(o):
    return [name for name, fn in RULES if not fn(o)]

النماذج المعيّنة كأدوات تحقق

تعمل مكتبة النماذج المعيّنة، مثل Pydantic، في الوقت نفسه كمولّد للمخططات وأداة تحقق، مع أدوات تحقق مخصصة للقواعد. ويكون فشل التحليل هو الحكم.

from pydantic import BaseModel, field_validator

class Order(BaseModel):
    subtotal: float
    discount: float
    total: float

    @field_validator('discount')
    @classmethod
    def discount_ok(cls, v, info):
        if v < 0:
            raise ValueError('discount must be non-negative')
        return v

أدوات التحقق من الإسناد والاستشهاد

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

def citations_valid(answer, sources):
    for cite in answer['citations']:
        if cite['source_id'] not in sources:
            return False
        if cite['quote'] not in sources[cite['source_id']]:
            return False
    return True

الفحوصات المرجعية والعابرة للأنظمة

تتطلب بعض القواعد عمليات بحث خارجية: هل معرّف الطلب المشار إليه موجود؟ هل المنتج متوفر في المخزون؟ هل التاريخ يقع ضمن فترة صالحة؟ تستعلم أدوات التحقق هذه من أنظمتك. احرص على أن تكون سريعة، باستخدام التخزين المؤقت والتجميع، لأنها تقع ضمن مسار الاستجابة.

def order_exists(o):
    return db.exists('SELECT 1 FROM orders WHERE id = %s', o['order_id'])

أحكام موسومة بدرجات الخطورة

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

RULE_SEVERITY = {
  'discount_le_subtotal': 'critical',
  'total_consistent': 'critical',
  'tone_professional': 'warning'
}

تركيب أدوات التحقق بالترتيب

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

def validate_all(obj):
    errs = schema_errors(obj, SCHEMA)
    if errs: return Reject(errs, 'critical')
    errs = rule_errors(obj)
    if errs: return Reject(errs, max_severity(errs))
    if not order_exists(obj): return Reject(['order_id'], 'critical')
    return Accept()

أدوات التحقق تقود ملاحظات الإصلاح

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

{'errors': [
  {'path': 'discount', 'rule': 'discount_le_subtotal',
   'got': 120, 'limit': 100}
]}

اختبر أدوات التحقق نفسها

قد تمرّر أداة تحقق بها خلل مخرجات سيئة بصمت، أو تمنع مخرجات سليمة. اختبر كل قاعدة وحديًا باستخدام حالات اختبار موجبة وسالبة، وأضف اختبارات قائمة على الخصائص للثوابت الرقمية. فمجموعة أدوات التحقق شيفرة حرجة للإنتاج، وليست مجرد نص برمجي.

def test_discount_rule():
    assert rule_errors({'discount':10,'subtotal':100,'total':90}) == []
    assert 'discount_le_subtotal' in rule_errors(
        {'discount':120,'subtotal':100,'total':-20})

أدوات التحقق مقابل فك الترميز المقيّد

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

تحقق سريع

يحدد مخطط JSON أن discount وsubtotal رقمان. يعيد النموذج discount بقيمة 120 مع subtotal بقيمة 100. أي طبقة ينبغي أن تلتقط ذلك؟

خلاصة

أدوات التحقق من المخطط والقواعد:

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

التالي: التحقق بالنقد الذاتي، حيث يفحص النموذج مخرجاته بنفسه.

الأسئلة الشائعة

هل درس «مدققات المخططات والقواعد» مجاني؟

نعم — نص درس «مدققات المخططات والقواعد» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة AI Prompt Engineering، انتقل إلى CoddyKit PRO. تتضمن دورة AI Prompt Engineering 4 دروس في المجموع.

ماذا ستتعلم في «مدققات المخططات والقواعد»؟

فرض القيود. تتمرن على AI Prompt Engineering مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ AI Prompt Engineering؟

لا تُشترط خبرة سابقة. AI Prompt Engineering على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «مدققات المخططات والقواعد»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس AI Prompt Engineering هذا؟

نعم. كل درس في AI Prompt Engineering يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. ما هي الحواجز الوقائية
  2. تصفية المدخلات والمخرجات
  3. مدققات المخططات والقواعد
  4. التحقق بالنقد الذاتي
← العودة إلى AI Prompt Engineering