نُشر في ٢٢ سبتمبر ٢٠٢٦
كيفية اختبار برومبت الذكاء الاصطناعي: منهج عملي متقدم من V1 إلى V2
لا يكفي أن يعطيك البرومبت نتيجة جيدة لمرة واحدة. تعلّم كيف تختبر الأوامر، تفحص مطابقة الـ Schema وصحة البيانات، وتطور النسخة V2 بطريقة منهجية قابلة للتكرار.

محتويات المقال
- ما هو اختبار البرومبت؟
- لماذا لا تكفي نتيجة واحدة جيدة؟
- منهج V1 → الاختبار → V2 لاختبار البرومبت
- الخطوة 1: ابدأ بالنسخة V1
- الخطوة 2: حدّد شكل النتيجة الناجحة (معايير الجودة التقنية)
- الخطوة 3: بناء Test Dataset لاختبار البرومبت
- مثال عملي متماسك: استخراج معلومات المنتجات بـ JSON Schema
- الخطوة 4: تسجيل النتائج وتصنيف الأخطاء
- الخطوة 5: تطوير النسخة V2 وعلاج الأسباب الجذرية
- الخطوة 6: إعادة الاختبار، قياس التحسن، واختبار الانحدار
- الخلاصة: نحو أتمتة تقييم الـ LLM
كتابة Prompt احترافي ليست نهاية المطاف في هندسة الأوامر؛ بل هي نقطة البداية الحقيقية للاختبار والقياس. قد يمنحك البرومبت نتيجة ممتازة مع مثال واحد، ثم يتراجع أداؤه فور تغير المدخلات أو ظهور حالات غير متوقعة. لذلك، فإن السؤال الأهم ليس «هل أعطاني الذكاء الاصطناعي إجابة جيدة؟»، بل «هل يحافظ هذا البرومبت على السلوك المتوقع والدقة عبر مختلف حالات الاستخدام؟». من خلال هذا الدليل الشامل، سنأخذك في رحلة منهجية لتحويل اختبار الأوامر إلى عملية ذكية وقابلة للتكرار وفق الآتي: V1 ← تحديد معايير النجاح ← حالات الاختبار ← تحليل الأخطاء ← V2 ← إعادة الاختبار ← المقارنة.
ما هو اختبار البرومبت؟
يُعرف اختبار البرومبت بأنه عملية منهجية لتشغيل أمر ذكاء اصطناعي (Prompt) عبر مجموعة متنوعة من المدخلات تُعرف بـ (Test Dataset)، ومقارنة المخرجات الفعلية بمعايير نجاح موضوعية مسبقًا. الهدف الجوهري ليس الحصول على مخرج مذهل لمرة واحدة، بل ضمان أداء موثوق ومستقر يتعامل بكفاءة مع الحالات الطبيعية، المعقدة، والحدية على حد سواء.
الاعتماد على محادثة واحدة ناجحة لا يعد اختبارًا حقيقيًا. فالنتائج الفردية تعجز غالبًا عن كشف مشكلات الاتساق، أو الثغرات في التنسيق، أو العجز في الالتزام بالتعليمات عند إدخال بيانات جديدة أو مختلفة.
لماذا لا تكفي نتيجة واحدة جيدة؟
قد تُخفي المدخلات البسيطة عيوبًا خفية في تصميم التعليمات. فقد ينجح البرومبت مع النصوص القصيرة ويفشل مع الطويلة، أو يتصرف بشكل صحيح عند اكتمال البيانات وينهار عند غياب قيمة أساسية. علاوة على ذلك، فإن تعديل أي جزء لإصلاح خطأ معين قد يتسبب في كسر سلوك آخر سليم؛ ولهذا تصبح عملية تحسين الأوامر مرهونة بالاختبار التكراري الموثق لا بالانطباعات الشخصية العابرة.
منهج V1 → الاختبار → V2 لاختبار البرومبت
يمكنك التعامل مع هندسة الأوامر كدورة حياة تطوير برمجيات مصغرة. ابدأ بنسخة أولية (V1)، ضع معايير دقيقة للنجاح، ابنِ حزمة اختبار شاملة (Test Dataset)، نفّذ التشغيل وسجّل النتائج، ثم حلل الأخطاء الكامنة وراء الفشل لتصميم النسخة (V2) التي تعالج تلك الثغرات، وأخيرًا أعد تشغيل نفس الاختبارات لمقارنة الأداء بدقة.
V1 ← تحديد معايير النجاح ← بناء Test Dataset ← تشغيل الاختبارات ← تسجيل النتائج ← تحليل الأخطاء ← تطوير V2 ← إعادة الاختبار ← المقارنة النهائية
الخطوة 1: ابدأ بالنسخة V1
تجنب إضاعة الوقت في محاولة صياغة «البرومبت المثالي» قبل الشروع في أي اختبار. الهدف الأساسي من النسخة الأولى (V1) هو إرساء خط أساس مرجعي يمكن قياسه وتطويره. إذا أعدت كتابة البرومبت عشوائيًا دون توثيق الأداء، فلن تتمكن أبدًا من معرفة التعديل الحقيقي الذي جلب التحسن.
استخرج اسم المنتج، السعر، الفئة، وحالة التوفر من النص التالي.
هذا النموذج أولي وقابل للاستخدام، لكنه يعاني من ضبابية في المعايير؛ فهو لا يحدد طريقة التعامل مع الحقول المفقودة، أو معالجة المنتجات المتعددة، أو هيكل الإخراج المطلوب. (تعريف أساسي: حالة الاختبار (Test Case) هي سيناريو فردي يحتوي على مدخل وسلوك متوقع، بينما مجموعة الاختبار (Test Dataset) هي مجموعة منظمة وشاملة من حالات الاختبار).
الخطوة 2: حدّد شكل النتيجة الناجحة (معايير الجودة التقنية)
عند تقييم المخرجات، خصوصاً في البرومبتات المتقدمة أو عند التعامل مع المخرجات المهيكلة، يجب أن نميز بدقة بين معايير الجودة التقنية التالية:
| المعيار | السؤال الذي نختبره |
|---|---|
| صحة الصيغة (Syntax) | هل النص الناتج صالح برمجياً (مثل كود JSON خالي من الأخطاء الإملائية أو الأقواس الناقصة)؟ |
| توافق الـ Schema | هل تلتزم المخرجات بالحقول والأنواع المحددة في المخطط البرمجي دون زيادة أو نقصان؟ |
| الارتباط بالمصدر (Source-groundedness) | هل المخرج مدعوم بالكامل من النص المدخل دون اختلاق أو هلوسة معلومات خارجية؟ |
| الصحة الدلالية والواقعية | الدلالية (Semantic): هل يعكس المخرج المعنى المطلوب؟ الواقعية (Factual): هل المعلومات صحيحة وفق مصادر خارجية عند الحاجة؟ |
| الاتساق (Consistency) | هل يعطي البرومبت نتائج متقاربة عند تكرار التجربة تحت نفس بيئة العمل والتحكم في إعدادات النموذج؟ |
الخطوة 3: بناء Test Dataset لاختبار البرومبت
تختلف حالات الاختبار المناسبة باختلاف طبيعة المهمة، سواء كانت استخراج بيانات، أو تلخيصاً، أو تصنيفاً، أو توليد كود. لضمان تغطية شاملة، نبدأ عادة بخمس فئات أساسية من الحالات ضمن الـ Test Dataset:
| فئة حالة الاختبار | الغرض |
|---|---|
| حالة عادية (Normal) | تمثل الاستخدام الشائع والمتوقع للبرومبت. |
| حالة بسيطة (Simple) | تتحقق من أن البرومبت يتعامل مع الحد الأدنى من البيانات دون تعقيد. |
| حالة معقدة (Complex) | تختبر أداء البرومبت عند وجود تفاصيل متشعبة أو متداخلة. |
| حالة حدية (Edge Case) | تختبر مدخلات غير معتادة ولكنها ما تزال ضمن الحالات التي يجب أن يتعامل معها النظام. |
| حالة معرضة للفشل (Failure-prone) | تستهدف عمداً نقاط ضعف معروفة أو ثغرات محتملة (مثل غياب حقل أساسي). |
مثال عملي متماسك: استخراج معلومات المنتجات بـ JSON Schema
لنفترض أننا نطلب مخرجات مهيكلة تطابق المخطط البرمجي (JSON Schema) التالي: json { "type": "object", "properties": { "products": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "price": { "type": ["string", "null"] }, "category": { "type": ["string", "null"] }, "availability": { "type": ["string", "null"] } }, "required": ["name", "price", "category", "availability"], "additionalProperties": false } } }, "required": ["products"], "additionalProperties": false } (ملاحظة هامة: تم اختيار نوع string لحقل السعر والبيانات النصية بدلاً من number، لكي يتحمل النموذج رموز العملات مثل $699، أو النطاقات السعرية، أو القيم النصية المرنة عند اللزوم، بينما استخدام null عند غياب القيمة هو الخيار الأنظف دلالياً في Structured Outputs). سنطبق الآن حالات الاختبار الخمسة لتقييم النسخة V1:
| الاختبار | المدخل في Test Dataset | السلوك المتوقع |
|---|---|---|
| T1 - عادي | Apple iPhone 15، فئة الهواتف الذكية، سعة 128GB، بسعر $699. متوفر الآن. | استخراج الحقول الأربعة بدقة مطابقة للنص ودون تغيير الحقائق. |
| T2 - قيمة مفقودة | Apple iPhone 15، فئة الهواتف الذكية، سعة 128GB. متوفر حاليًا. | إرجاع null لحقل السعر وعدم اختلاق أي سعر غير موجود. |
| T3 - منتجات متعددة | iPhone 15 بسعر $699. Samsung Galaxy S25 بسعر $799. | التعامل مع المنتجين وإرجاعهما كعنصرين منفصلين داخل مصفوفة products. |
| T4 - توفر غامض | iPhone 15 مدرج حاليًا، لكن معلومات المخزون غير مؤكدة. | إرجاع availability: null لعدم وجود تأكيد صريح لحالة التوفر. |
| T5 - إدخال غير مناسب | للمزيد من المعلومات عن أحدث الهواتف، تواصل مع قسم المبيعات. | عدم اختراع منتج أو تسعير غير موجود في المدخل. |
الخطوة 4: تسجيل النتائج وتصنيف الأخطاء
بعد تشغيل V1، نسجل النتائج ونحدد أنواع الأخطاء بدقة. الجدول التالي يوضح مثالاً توضيحياً لنتائج V1 والخطأ المرصود في كل حالة:
| الاختبار | مثال على نتيجة V1 (توضيحي) | الحالة | نوع الخطأ الرئيسي |
|---|---|---|---|
| T1 | استخراج البيانات الأساسية بنجاح | ناجح | — |
| T2 | اختلق سعراً غير موجود في النص | فاشل | فقدان الارتباط بالمصدر (Source-groundedness) |
| T3 | دمج المنتجين في عنصر واحد وتجاهل الـ Schema | فاشل | خطأ في هيكلة الـ Schema (Multiple Products) |
| T4 | فسر الغموض على أنه متاح مؤكداً | فاشل | خطأ دلالي (Semantic error) |
| T5 | اخترع منتجاً وهمياً من نص المبيعات | فاشل | هلوسة وخروج عن السياق |
الخطوة 5: تطوير النسخة V2 وعلاج الأسباب الجذرية
بناءً على الأخطاء المرصودة، نقوم بتعديل الأوامر لاستهداف السبب الجذري بدلاً من الاعتماد على توجيهات فضفاضة مثل «كن دقيقاً». إليك صياغة النسخة المحسنة (V2):
استخرج اسم المنتج، السعر، الفئة، وحالة التوفر من النص المقدم حصرياً بصيغة JSON تطابق الـ Schema المحددة بدقة. القواعد الصارمة: - استخدم فقط المعلومات المذكورة صراحة في الإدخال (Source-groundedness). - إذا كانت أي قيمة مفقودة أو غير مؤكدة، ضع القيمة null تماماً ولا تخمن شيئاً. - في حال وجود عدة منتجات، أنشئ عنصراً مستقلاً لكل منتج داخل مصفوفة products. - لا تضف أي حقول أو مفاتيح خارج الـ Schema المحددة نهائياً (additionalProperties: false). - لا تعتبر المنتج متاحاً إلا إذا نص المدخل على ذلك صراحة.
الخطوة 6: إعادة الاختبار، قياس التحسن، واختبار الانحدار
لتقييم تحسن الأداء بشكل كمي، نستخدم مقاييس رياضية واضحة: - **Pass Rate** = (عدد الحالات الناجحة ÷ إجمالي حالات الاختبار) × 100 - **Schema Compliance Rate** = (المخرجات المطابقة للـ Schema ÷ إجمالي المخرجات) × 100 (ملاحظة هامة: النتائج الرقمية التالية هي محاكاة تعليمية وتوضيحية لشرح منهجية القياس ضمن هذا الـ Test Dataset فقط، وليست تقييماً معيارياً لنموذج تجاري محدد): $$\text{Pass Rate} = \frac{\text{Passed Test Cases}}{\text{Total Test Cases}} \times 100$$
| مقياس الأداء (Metric) | النسخة V1 (توضيحي) | النسخة V2 (توضيحي) |
|---|---|---|
| معدل النجاح الإجمالي (Pass Rate) | 20% (1/5 حالات ناجحة) | 100% (5/5 حالات ناجحة) |
| توافق الـ Schema (Schema Compliance) | 60% (3/5 مخرجات تطابق الهيكل) | 100% (5/5 مخرجات تطابق الهيكل) |
| معدل هلوسة البيانات ضمن الـ Test Dataset | مرتفع (4 أخطاء في الـ Dataset) | صفر (0/5 حالات ضمن الـ Dataset) |
**كيف تجعل عملية الاختبار قابلة للتكرار (Reproducible)؟** 1. ثبّت إصدار النموذج وإعدادات التوليد (مثل التحكم بدرجة الحرارة قدر الإمكان مع إدراك أن النتائج لا تكون حتمية بنسبة 100%). 2. استخدم نفس الـ Test Dataset دائماً عند المقارنة بين الإصدارات. 3. وثّق نسخة البرومبت بدقة. 4. **اختبار الانحدار (Regression Testing):** قد يؤدي تعديل البرومبت لإصلاح حالة معينة (مثل T2) إلى إفساد حالة أخرى كانت تعمل بنجاح مسبقاً (مثل T1). لتجنب هذا التخصيص الزائد أو الـ (Prompt Overfitting)، احرص دائماً على إعادة تشغيل الـ Test Dataset بالكامل بعد كل تعديل جوهري.
الخلاصة: نحو أتمتة تقييم الـ LLM
البرومبت الجيد ليس الذي ينجح في حالة واحدة، بل الذي يمكنك قياس سلوكه، اكتشاف نقاط ضعفه، تحسينه، ثم إعادة اختباره بثقة. ومع نمو تطبيقاتك وزيادة حجم حالات الاختبار، ستنتقل تدريجياً من الاختبار اليدوي إلى بناء **Evaluation Dataset** وأتمتة عملية التقييم بالكامل ضمن خط الأنابيب (CI/CD Pipeline) الخاص بك.
اقرأ أيضًا

ChatGPT JSON: كيف تحصل على مخرجات JSON منظمة وموثوقة
دليل عملي لصياغة برومبت يجعل ChatGPT يرجع JSON صالحًا ومنظمًا بشكل ثابت، مع شرح الـ schema وJSON Mode وStructured Outputs وقوالب جاهزة.

كيف تكتب برومبت احترافي للذكاء الاصطناعي: الدليل الشامل لهندسة الأوامر
دليل عملي شامل لاحتراف هندسة الأوامر. تعرّف على كيفية كتابة برومبت واضح ودقيق، واستخدام Zero-Shot وOne-Shot وFew-Shot، وتقسيم المهام المعقدة باستخدام Prompt Chaining، مع قوالب وأمثلة عملية.

Negative Prompting خارج الصور: كيف تخبر أي أداة ذكاء اصطناعي بما لا يجب أن يفعله
البرومبت السلبي معروف في توليد الصور بذكر ما تريد استبعاده. الفكرة نفسها تعمل بفعالية أكبر مما يتوقع كثيرون في النصوص، الكود، وحتى الوكلاء الذكية.