تكرار Prompts وتصحيح أخطائها
أنشئوا سير عمل منهجيًا لاختبار prompts وتحسينها، وحدّدوا أنماط الفشل، واستخدموا OpenAI Playground للتكرار السريع قبل كتابة شيفرة الإنتاج.
تكرار Prompts وتصحيح أخطائها درس مجاني في AI Engineering Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في AI Engineering Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة AI Engineering Academy 4 دروس في المجموع.
هندسة المطالبات منهج تجريبي
لا تتمحور هندسة المطالبات الفعالة حول العثور على صيغة سحرية — بل هي عملية تجريبية تكرارية تشبه تصحيح الأخطاء أكثر مما تشبه الكتابة. تكتب مطالبة، وتشغلها باستخدام مدخلات اختبار، وتلاحظ مواضع فشلها، وتضع فرضية تفسر سبب الفشل، ثم تعدّل المطالبة لإصلاحه. فالحدس وحده غير موثوق؛ بل تحتاج إلى بيانات.
يخطئ كثير من المطورين باختبار المطالبة على مثال أو مثالين أُعدّا يدويًا، ثم رؤية نتائج جيدة ونشرها في بيئة الإنتاج — ليكتشفوا بعد ذلك أن المطالبة تفشل في 30% من المدخلات الفعلية. ويمنع سير عمل التقييم المنهجي ذلك من خلال تعريض المطالبة لأمثلة متنوعة وممثلة للواقع قبل إطلاقها.
بناء مجموعة الاختبار أولًا
قبل كتابة مطالبتك، أنشئ مجموعة اختبار مرجعية: مجموعة من 20 إلى 100 مثال تمثيلي للمدخلات، مقترنة بالمخرجات المتوقعة أو بمعايير النجاح. وتصبح مجموعة الاختبار هذه مرجعك الأساسي لتقييم أي تغيير في المطالبة.
تتضمن مجموعات الاختبار الجيدة: المدخلات المعتادة، والحالات الحدية (السلاسل الفارغة، والمدخلات الطويلة جدًا، والحالات الملتبسة)، والمدخلات العدائية المصممة لكسر المطالبة، ومدخلات من شرائح مختلفة من قاعدة مستخدميك. وكلما زاد تنوع مجموعة الاختبار، زادت ثقتك بأن تغيير المطالبة يمثل تحسنًا حقيقيًا وليس مجرد مواءمة مفرطة مع الأمثلة القليلة التي كانت في ذهنك.
أداة تقييم بسيطة
تستغرق كتابة سكربت تقييم بسيط ساعة واحدة، لكنها توفر عليك أيامًا من تصحيح مشكلات الإنتاج. يشغّل السكربت مطالبتك باستخدام كل حالة اختبار، ويقارن المخرجات بالنتيجة المتوقعة، ويُصدر معدل النجاح. ويمكنك بعد ذلك تكرار التعديلات على المطالبة ومعرفة ما إذا كانت تغييراتك قد حسّنت النتيجة الإجمالية فورًا.
import openai
client = openai.OpenAI()
# Golden test set: (input, expected_output)
test_cases = [
('The product is excellent and very fast.', 'Positive'),
('Arrived damaged and customer service ignored me.', 'Negative'),
('Delivery was on time.', 'Neutral'),
('Worst purchase of my life. Never again!', 'Negative'),
('Good value for the price.', 'Positive'),
]
def evaluate_prompt(system_prompt):
correct = 0
for text, expected in test_cases:
resp = client.chat.completions.create(
model='gpt-4o-mini',
messages=[
{'role': 'system', 'content': system_prompt},
{'role': 'user', 'content': text}
],
max_tokens=10
)
prediction = resp.choices[0].message.content.strip()
if expected.lower() in prediction.lower():
correct += 1
else:
print(f'FAIL: "{text}" -> got "{prediction}", expected "{expected}"')
return correct / len(test_cases)
score = evaluate_prompt('Classify sentiment as Positive, Negative, or Neutral. Reply with one word only.')
print(f'Score: {score:.0%}')تصنيف أنماط الفشل
عندما تفشل مطالبتك في حالات الاختبار، جمّع حالات الفشل حسب النوع للتعرف على الأنماط. تشمل أنماط الفشل الشائعة ما يلي:
- أخطاء التنسيق: ينتج النموذج الإجابة الصحيحة ولكن بتنسيق خاطئ
- أخطاء الغموض: يفسر النموذج المهمة بطريقة تختلف عما قصدته
- أخطاء الحالات الحدية: يعمل النموذج مع المدخلات المعتادة لكنه يفشل مع المدخلات غير المألوفة
- أخطاء الهلوسة: ينتج النموذج بثقة محتوى واقعيًا خاطئًا
- تجاهل التعليمات: يتبع النموذج التعليمات جزئيًا لكنه يفوّت قيودًا محددة
يتطلب كل نوع من الفشل إصلاحًا مختلفًا. فأخطاء التنسيق تتطلب تعليمات أوضح للمخرجات، بينما تتطلب أخطاء الغموض تعريفًا أوضح للمهمة أو تقديم أمثلة.
OpenAI Playground للتكرار السريع
يُعد OpenAI Playground (platform.openai.com/playground) أسرع أداة لإجراء التكرارات على المطالبات من دون كتابة أي شيفرة. فهو يتيح لك التبديل بين النماذج، وضبط المعلمات باستخدام أشرطة التمرير، وحفظ إصدارات المطالبات، ومقارنة المخرجات جنبًا إلى جنب.
استخدم Playground في مرحلة الاستكشاف من تطوير المطالبة: لتجربة صيغ مختلفة، واختبار الحالات الحدية تفاعليًا، وبناء حدس حول ما ينجح. وبعد الوصول إلى مطالبة واعدة، انقلها إلى الشيفرة باستخدام أداة تقييم للتحقق منها منهجيًا عبر مجموعة الاختبار الكاملة قبل إطلاقها.
إدارة إصدارات المطالبات
المطالبات شيفرة. وينبغي وضعها تحت إدارة الإصدارات ومراجعتها ونشرها بالصرامة نفسها المطبقة على شيفرة التطبيق. ويتمثل النهج الأساسي في تخزين قوالب المطالبات كسلاسل نصية في ملف ثوابت داخل مستودعك، بحيث تُتتبع التغييرات في git وتتطلب مراجعة للشيفرة.
وتشمل الأساليب الأكثر تطورًا تخزين المطالبات في قاعدة بيانات مخصصة لإدارة المطالبات (LangSmith أو PromptLayer أو جدول Supabase بسيط)، ووضع وسوم للإصدارات، وإجراء اختبارات A/B بين إصدارات المطالبات في بيئة الإنتاج. ويكتسب ذلك أهمية خاصة عندما يعمل عدة أعضاء في الفريق على المطالبات نفسها، أو عندما تحتاج إلى التراجع عن تغيير في مطالبة أدى إلى تراجع الجودة في بيئة الإنتاج.
# prompts/sentiment.py
# Version 2.1 - Added explicit tie-breaking rule for mixed reviews
SENTIMENT_V2_1 = '''You are a sentiment classification assistant.
Classify the customer review sentiment as exactly one of: Positive, Negative, or Neutral.
Rules:
- Positive: overall satisfaction, praise, or recommendation
- Negative: disappointment, complaint, or warning to others
- Neutral: factual statements without strong sentiment, or equal positive and negative content
- If the review contains both positive and negative elements, choose based on the DOMINANT tone
Respond with ONLY the single word classification. No explanation.'''
# Usage:
# from prompts.sentiment import SENTIMENT_V2_1مقارنة بدائل المطالبات بطريقة منهجية
عندما يكون لديك إصداران متنافسان من المطالبة، شغّلهما على مجموعة الاختبار الكاملة وقارن الدرجات. حتى تحسّن الدقة بنسبة 5% في نظام إنتاج يعالج آلاف الطلبات يوميًا يستحق الجهد المبذول في التقييم. لا تختر مطالبة بناءً على مثال واحد أو مثالين اختبرتهما يدويًا — قارن دائمًا باستخدام مجموعة الاختبار الكاملة.
بالنسبة إلى مقاييس الجودة الذاتية التي لا توجد لها إجابة صحيحة واحدة، مثل النبرة أو مدى الإفادة أو الإبداع، يمكنك استخدام LLM-as-judge: اطلب من نموذج قوي مثل GPT-4o تقييم أي الاستجابتين تستوفي معايير الجودة لديك بشكل أفضل. يتيح ذلك توسيع نطاق التقييم إلى ما يتجاوز قدرة المراجعة البشرية.
تصحيح المخرجات غير المتسقة
مخرجات LLM غير حتمية افتراضيًا. يجعل ضبط temperature=0 المخرجات حتمية تقريبًا (إذ يختار الرمز المميز الأكثر احتمالًا في كل خطوة)، وهذا ضروري لتصحيح الأخطاء لأنه يتيح لك تشغيل المطالبة نفسها مرتين والحصول على المخرج نفسه. عند تصحيح الأخطاء، اضبط temperature دائمًا على 0 حتى تتمكن من تحديد ما إذا كان التغيير في المطالبة هو الذي تسبب في تغيّر المخرج أم أن السبب مجرد اختلاف عشوائي.
بعد إصلاح المطالبة، أعد تفعيل بعض قيمة temperature في بيئة الإنتاج إذا كانت حالة الاستخدام لديك تستفيد من التنوع، مثل الكتابة الإبداعية والعصف الذهني، ولكن أبقِ temperature عند 0 لمهام الاستخراج المنظم والتصنيف التي تحتاج فيها إلى مخرجات متسقة وقابلة للتكرار.
import openai
client = openai.OpenAI()
# Deterministic mode for debugging
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=[
{'role': 'system', 'content': 'Classify sentiment: Positive, Negative, or Neutral.'},
{'role': 'user', 'content': 'The product looks nice but broke after two days.'}
],
temperature=0, # deterministic
seed=42 # optional reproducibility seed
)
print(response.choices[0].message.content)تصحيح الهلوسات
إذا كانت مطالبتك تنتج حقائق مختلقة، فأضف قيودًا تجعل الهلوسة أكثر صعوبة. تشمل الأساليب الفعالة للحد من الهلوسات ما يلي:
- الاستشهاد بالمصادر: 'أجب فقط استنادًا إلى السياق المقدم. إذا لم تكن الإجابة موجودة في السياق، فقل لا أعرف.'
- تحديد مستوى الثقة: 'قيّم مدى ثقتك على مقياس من 1 إلى 5. إذا كانت الدرجة أقل من 3، فلا تجب.'
- خطوة التحقق: 'قبل الإجابة، تحقّق من وجود كل حقيقة تخطط لاستخدامها في المستند المقدم.'
لا توجد تقنية تقضي على الهلوسات تمامًا، لكن الجمع بين الاسترجاع (RAG) والقيود القوية على المطالبات يقللها بدرجة كبيرة في التطبيقات التي تعتمد على المعرفة.
طول المطالبة وموضع التعليمات
أظهرت الأبحاث أن LLMs تولي اهتمامًا أكبر للتعليمات الموجودة في بداية المطالبة ونهايتها مقارنةً بتلك الموجودة في المنتصف. تُسمى هذه المشكلة الضياع في المنتصف. إذا كانت لديك مطالبة طويلة تحتوي على تعليمات مهمة مدفونة في المنتصف ومحاطة بالسياق، فقد لا يتبعها النموذج بشكل موثوق.
أفضل ممارسة هي وضع أهم تعليماتك (تعريف المهمة والقيود الحرجة) في بداية مطالبة النظام تمامًا، وإعادة ذكر القيود الأساسية في النهاية. أما في المستندات الطويلة التي تُدرج كسياق، فضَع سؤال المستخدم بعد المستند بدلًا من وضعه قبله، لأن النموذج يمنح المحتوى الأحدث وزنًا أكبر.
من الاستكشاف إلى الإنتاج
تمر دورة حياة تطوير المطالبة بثلاث مراحل:
- الاستكشاف: استخدم Playground للتجربة بحرية. ركّز على فهم ما ينجح من الناحية المفاهيمية، لا على الوصول إلى مخرج مثالي.
- التقييم: أنشئ مجموعة اختبار وإطارًا للتقييم. شغّل المطالبات المرشحة على مجموعة الاختبار الكاملة وقِس معدلات النجاح. كرر العملية حتى تبلغ حد الجودة المطلوب.
- الإنتاج: استخدم التحكم في إصدارات المطالبة النهائية، وأضف المراقبة لتتبع مقاييس الجودة في بيئة الإنتاج، وأنشئ تنبيهات عند تدهور الجودة. خطط للتكرارات المستقبلية عند تغير إصدارات النموذج.
يُعد تخطي مرحلة التقييم السبب الأكثر شيوعًا لتراجع جودة المطالبات في بيئة الإنتاج. فالوقت المستثمر في إعداد مجموعة اختبار مناسبة سيعوّض تكلفته أضعافًا كثيرة.
تحقق سريع
اختبر مدى فهمك لمفاهيم هندسة الذكاء الاصطناعي التي تناولها هذا الدرس.
مراجعة الدرس
تعلمت في هذا الدرس أن: هندسة المطالبات تتطلب مجموعة اختبار مرجعية وإطارًا للتقييم لقياس التحسينات بشكل موثوق، وأن أنماط الإخفاق يجب تصنيفها لتحديد الإصلاح المناسب لكل نوع، وأن ضبط temperature على 0 ضروري لتصحيح الأخطاء، بينما يساهم استخدام إصدارات للمطالبات ومراقبة الإنتاج في إغلاق حلقة الجودة. سنتناول بعد ذلك كيفية معالجة LLMs للنص عبر الرموز المميزة، ولماذا تؤثر أعداد الرموز المميزة في التكلفة والسياق.
الأسئلة الشائعة
هل درس «تكرار Prompts وتصحيح أخطائها» مجاني؟
نعم — نص درس «تكرار Prompts وتصحيح أخطائها» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة AI Engineering Academy، انتقل إلى CoddyKit PRO. تتضمن دورة AI Engineering Academy 4 دروس في المجموع.
ماذا ستتعلم في «تكرار Prompts وتصحيح أخطائها»؟
أنشئوا سير عمل منهجيًا لاختبار prompts وتحسينها، وحدّدوا أنماط الفشل، واستخدموا OpenAI Playground للتكرار السريع قبل كتابة شيفرة الإنتاج. تتمرن على AI Engineering Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ AI Engineering Academy؟
لا تُشترط خبرة سابقة. AI Engineering Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «تكرار Prompts وتصحيح أخطائها»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس AI Engineering Academy هذا؟
نعم. كل درس في AI Engineering Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- التلقين صفري الأمثلة وقليل الأمثلة
- سلسلة الأفكار والاستدلال خطوة بخطوة
- Prompts النظام وتعريف الشخصية
- تكرار Prompts وتصحيح أخطائها