تقنية "Prompt Engineering" (هندسة التعليمات) يبدو اسمها أبهى من حقيقتها. هي ببساطة: كيف تكتب تعليمات واضحة لنموذج لغوي كبير للحصول على نتيجة مفيدة. لا تحتاج شهادة، لا تحتاج أدوات خاصة، تحتاج تفكير وتجربة.
المبدأ الأوّل: كن محدّدًا لا عامًا
ضعيف:
"اكتب شيئًا عن Python."
أفضل:
"اشرح متى يُفضّل استخدام list بدل tuple في Python،
بثلاث جمل، بأسلوب بسيط للمبتدئين."
الفرق: الثاني يحدّد ماذا، كم، لمن. النموذج ليس "يقرأ ذهنك" — يطابق تعليماتك مع أنماط من تدريبه. كلما كنت محدّدًا، زاد التطابق.
مكوّنات الـ Prompt الفعّال
1. المهمة (Task)
ماذا تريد منه أن يفعل؟
"صنّف هذه المراجعة..."
"لخّص النصّ التالي..."
"استخرج البريد الإلكتروني من النصّ..."
2. السياق (Context)
أيّ معلومات يحتاجها؟
"الجمهور المستهدف: طلاب ثانوي."
"اللغة: عربية فصحى."
"الحدّ الأقصى للطول: 100 كلمة."
3. القيود (Constraints)
ما المسموح والممنوع؟
"استخدم أمثلة فقط من Python 3.10+."
"تجنّب المصطلحات الإنجليزية."
"لا تخترع أرقامًا — إذا لم تكن متأكّدًا، قل غير متأكّد."
4. صيغة المخرج (Output Format)
كيف تريد النتيجة؟
"أعِد JSON بمفتاح وحيد: { 'answer': '...' }."
"أعِد قائمة من 3 نقاط، كل نقطة بجملة واحدة."
"ابدأ بـ'نعم' أو'لا'، ثم اشرح بجملة."
5. الأمثلة (Few-shot)
أعطه نموذجًا لما تريد:
صنّف المراجعة.
مثال:
"التطبيق رائع" → إيجابية
الآن صنّف:
"خدمة سيئة" →
6. معايير النجاح
ما الذي يجعل النتيجة "صحيحة"؟
"إذا كانت المراجعة تحتوي على شكوى، صنّفها سلبية."
"إذا لم تجد بريدًا، أعِد null."
ستّة أنماط عملية جاهزة
النمط 1: التصنيف
صنّف الجملة التالية إلى: bug / billing / account / other.
أمثلة:
"نسيت كلمة المرور" → account
"التطبيق يتعطّل" → bug
"كيف ألغي الاشتراك؟" → billing
الجملة:
{user_input}
التصنيف (كلمة واحدة فقط):
النمط 2: الاستخراج
استخرج من السيرة الذاتية: الاسم، البريد، سنوات الخبرة، المهارات.
أعِد JSON فقط.
السيرة:
{cv_text}
JSON:
النمط 3: التلخيص
لخّص النصّ التالي في جملتين موجّهتين لمطوّر مبتدئ.
النصّ:
{long_text}
الملخّص:
النمط 4: التحويل
أعد كتابة الجملة بأسلوب أبسط.
"يتعيّن على المستخدم أن يقوم بإدخال البيانات بشكل دقيق."
النسخة المبسّطة:
النمط 5: التقييم
قيّم الكود التالي على معايير: accuracy, clarity, completeness (1-5).
السؤال:
{question}
الإجابة:
{answer}
التقييم (JSON):
{
"accuracy": {"score": 0, "reason": ""},
"clarity": {"score": 0, "reason": ""},
"completeness": {"score": 0, "reason": ""}
}
النمط 6: التوليد المقيد
اكتب رسالة بريد احترافية بالشروط:
- الطول: 80-120 كلمة.
- اللهجة: فصحى.
- الهيكل: تحيّة، موضوع، طلب، ختام.
- بدون ذكر أسماء وهمية.
البريد:
Zero-shot / One-shot / Few-shot
Zero-shot: بدون أمثلة. للنماذج القوية والمهام الواضحة.
One-shot: مثال واحد. لتوضيح الصياغة.
Few-shot: 2-5 أمثلة. للحالات الحدّية والمهام الدقيقة.
⚠️ أمثلة كثيرة تستهلك context وتبطئ. أمثلة خاطئة توجّه النموذج خطأً.
أخطاء شائعة
1. طلب سلسلة الاستدلال
❌ "اشرح خطوة بخطوة كيف حللت المسألة، ثم أعطني الإجابة"
→ سلسلة استدلال طويلة، قد تكشف معلومات حسّاسة.
✅ "احسب في ذهنك، ثم أعِد رقمًا واحدًا فقط"
→ نتيجة مختصرة، تحقّق منها برمجيًا.
2. الخلط بين التعليمات والبيانات
❌ "هذا مقال عن الذكاء الاصطناعي. لخّصه. لا تتجاوز 3 جمل. ابدأ بـ'الذكاء'..."
✅ فاصل واضح:
### التعليمات ###
لخّص النصّ التالي. الطول: 3 جمل. ابدأ بـ'الذكاء الاصطناعي'.
### النصّ ###
{article}
3. افتراض النموذج يعرف ما تريد
❌ "اشرح الكود"
✅ "اشرح الكود التالي سطرًا بسطر، مع التركيز على الجزء بين السطور 5-15، موجّهًا لمبتدئ"
4. تجاهل معيار الفشل
❌ "أعطني إجابة دقيقة"
✅ "إذا لم تكن متأكّدًا من الإجابة، قل 'غير متأكّد' بدلًا من التخمين"
5. الثقة العمياء
- النموذج قد يقول كلامًا بثقة وهو خاطئ (hallucination).
- تحقّق من المعلومات الحسّاسة.
- لا تستخدمه للقرارات الطبية/القانونية/المالية بدون إشراف.
تحذير من "الوصفات السحرية"
ستجد لا محالة على الإنترنت:
- "ابدأ دائمًا بـ'You are an expert in...'"
- "اطلب من النموذج أن يكون خبيرًا في X"
- "اكتب 'Let's think step by step' لتحسين النتائج"
- "اكتب 'I will tip you $200' للحصول على نتائج أفضل"
ما ينفع:
بعض هذه الأنماط أعطت نتائج إيجابية في تجارب معيّنة على نماذج معيّنة.
ما ينسى:
- لا ضمان أنّها تنفع لمهمتك.
- قد تكون ناجحة لأن النموذج تدرّب على تفضيلها (RLHF)،
وليست خاصية جوهرية.
- لا تنسخها دون اختبار.
نصيحة عملية
1. ابدأ بـ prompt بسيط.
2. جرّب.
3. لاحظ أين يخطئ النموذج.
4. عدّل الـ prompt: أضف أمثلة، أضف قيودًا، أضف معايير نجاح.
5. اختبر مع عدّة مدخلات، ليس واحدًا فقط.
6. وثّق الـ prompt النهائي (في تعليق بالكود).
متى لا يكفي Prompt Engineering؟
- مهام تتطلّب معلومات محدّثة (أسعار، أخبار) → الـ prompt لا يحلّها. استخدم RAG.
- مخرجات يجب أن تكون 100% متّسقة → استخدم Structured Outputs (تغطّى في الدرس 110).
- مهام معقّدة جدًا تتطلّب تفكير طويل → استخدم agent أو multi-step reasoning.
- مهام حسّاسة (مالية/طبية/قانونية) → إشراف بشري إجباري.
الخطوات التالية
- درس 106: Prompting Fundamentals — شرح أعمق في سياق الـ AI/ML track.
- درس 107: Prompt Patterns — أنماط أكثر تقدّمًا.
- درس 110: Structured Outputs — ضمان بنية المخرج بـ JSON Schema.
الـ TL;DR: prompt engineering = تعليمات واضحة + قيود + أمثلة + معيار فشل + اختبار. لا أوصاف سحرية، لا ضمانات مطلقة.