Menu
flag Ar iconالعربيةdown icon

قوالب البرومبت: أمثلة وكيف تبني قالبك

قالب الموجّه (البرومبت) موجّه اختبرته مسبقًا، فيه فراغات للأجزاء التي تتغير في كل مرة. انسخ قوالب جاهزة بحقول تملؤها، ثم حوّل أفضل موجّه لديك إلى قالب في خمس خطوات.

يمكنك تعديل كل موجّه في هذه الصفحة ثم فتحه في ChatGPT أو Claude أو أي تطبيق ذكاء اصطناعي آخر.

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

القالب التالي يشرح أي مفهوم برمجي بمستواك. اكتب قيمك في الحقول، وأوقف جزءًا لترى ما يضيفه، ثم انسخه أو افتحه في تطبيق محادثة.

اشرح مفهومًا بمستواي
Fill in
Parts
أنت مدرّس صبور للمبرمجين الذين يتعلمون ذاتيًا.
اشرح الإغلاقات (closures) في JavaScript.
أعرف مسبقًا المتغيرات والدوال والمصفوفات. أتعلم أفضل من مثال صغير أستطيع تشغيله بنفسي.
أجب في ثلاثة أجزاء بعناوين عريضة: الفكرة في جملة واحدة، ومثال كود قصير مع تعليق على السطر الأساسي، وخطأ شائع واحد.
لا تتجاوز 150 كلمة. إذا احتجت إلى مصطلح لم أذكر أنني أعرفه، فاشرحه في كلمات قليلة.
Try it
Example replyReplies vary between models and runs.

الفكرة: الإغلاق (closure) دالة تتذكر المتغيرات من المكان الذي أُنشئت فيه، حتى بعد أن تنتهي الدالة الخارجية من التنفيذ.

مثال:

function makeCounter() {
  let count = 0;
  return function () {
    count += 1; // still sees count from makeCounter
    return count;
  };
}

const next = makeCounter();
console.log(next()); // 1
console.log(next()); // 2

خطأ شائع: توقّع أن يتشارك عدّادان مجموعًا واحدًا. كل استدعاء لـ makeCounter() ينشئ count جديدًا، فيحتفظ كل عدّاد بقيمته الخاصة.

ما الذي يجعل القالب جيدًا

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

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

أعطِ كل فراغ اسمًا واضحًا وقيمة افتراضية معقولة. الفراغ {{ما_أعرفه}} يخبرك بما تكتب، أما {{x}} فلا. والقيمة الافتراضية تُظهر نوع القيمة المتوقعة وتتيح لك تشغيل القالب مرة دون كتابة شيء.

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

الأجزاء الستة في كيفية كتابة موجّه قائمة تحقق جيدة للنص الثابت: الدور، والمهمة، والسياق، والمُدخل، والصيغة، والقيود. وتقع الفراغات عادةً في المهمة والسياق والمُدخل.

أمثلة على قوالب الموجّهات

تغطي هذه القوالب الثلاثة مهامًا يومية شائعة. في كل منها حقول مسمّاة تملؤها. ولمجموعة أكبر من الموجّهات الجاهزة، راجع أمثلة على الموجّهات.

لخّص لقارئ محدد
Fill in
لخّص النص الموجود داخل وسوم <text> لـ مدير لديه دقيقتان. استخدم 3 نقاط على الأكثر. ابدأ بأي قرار أو إجراء يجب أن يتخذه القارئ، واحذف الخلفية التي لا يحتاجها. <text> الصق النص هنا </text>
Try it
اكتب دالة صغيرة
Fill in
اكتب دالة بلغة Python تأخذ قائمة أرقام وتُرجع الوسيط. استخدم تلميحات الأنواع (type hints) إن كانت اللغة تدعمها. إذا كان المُدخل فارغًا، أطلق ValueError. بعد الدالة، أضف ثلاثة استدعاءات أمثلة مع نتائجها المتوقعة في تعليقات. أرجِع الكود فقط.
Try it
Example replyReplies vary between models and runs.
def median(numbers: list[float]) -> float:
    if not numbers:
        raise ValueError("median() needs at least one number")
    ordered = sorted(numbers)
    middle = len(ordered) // 2
    if len(ordered) % 2 == 1:
        return ordered[middle]
    return (ordered[middle - 1] + ordered[middle]) / 2


# median([3, 1, 2])     returns 2
# median([4, 1, 3, 2])  returns 2.5
# median([])            raises ValueError
الرد على رسالة
Fill in
اكتب ردًا على الرسالة الموجودة داخل وسوم <message>. الهدف: الاعتذار بلطف واقتراح موعد في الشهر القادم بدلًا من ذلك. النبرة: ودودة وموجزة. لا تتجاوز 80 كلمة، ولا تضف حقائق غير موجودة في الرسالة أو في الهدف. <message> مرحبًا! هل أنت متاح لتقديم حديث قصير عن مشروعك في لقائنا يوم 14؟ </message>
Try it
Example replyReplies vary between models and runs.

مرحبًا، شكرًا على الدعوة، ويسعدني أنكم فكرتم بي! للأسف لن أتمكن من الحضور يوم 14. هل يناسبكم موعد في الشهر القادم بدلًا من ذلك؟ سيسعدني أن أتحدث عن المشروع حينها.

مع التحية، [اسمك]

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

كيف تبني قالبك الخاص

  1. ابدأ بموجّه نجح. خذ محادثة جاءت فيها الإجابة صحيحة، واجمع النسخة النهائية من الموجّه، مع أي تصحيحات اضطررت إلى إضافتها في رسائل لاحقة. هذه التصحيحات هي الجزء الأثمن، لأنها تعالج ما أخطأت فيه النسخة الأولى.
  2. حدّد ما سيتغير في المرة القادمة. اقرأ الموجّه وضع خطًا تحت كل كلمة ستعدّلها في الاستخدام التالي. عادةً تكون من شيئين إلى أربعة: موضوع، أو جمهور، أو طول، أو مُدخل ملصوق.
  3. استبدل كلًا منها بفراغ مسمّى. اكتب الفراغ بالطريقة التي تتوقعها أداتك، مثل [audience] لموجّه تلصقه يدويًا، أو {audience} للكود.
  4. اختبر بثلاث تعبئات مختلفة. استخدم حالة معتادة، ومُدخلًا قصيرًا جدًا أو طويلًا جدًا، وحالة غير مألوفة. إذا فشلت إحداها، فالنص الثابت ما زال يفترض شيئًا عن الاستخدام الأول. غيّر جملة واحدة في كل مرة، كما تشرح صفحة تحسين الموجّهات بالتكرار.
  5. احفظه حيث ستجده. ملف ملاحظات أو أداة توسيع نصوص أو مدير مقتطفات، كلها تصلح. القالب الذي تضطر إلى البحث عنه قالب ستتوقف عن استخدامه.

القوالب في الكود

في البرنامج، القالب نص فيه حقول مسمّاة. وتملؤها الدالة str.format() في Python:

SUMMARY_TEMPLATE = """Summarize the text inside the <text> tags for {audience}.
Use at most {bullets} bullet points and lead with any action the reader must take.

<text>
{text}
</text>"""

with open("notes.txt", encoding="utf-8") as f:
    meeting_notes = f.read()

prompt = SUMMARY_TEMPLATE.format(
    audience="a manager who has two minutes",
    bullets=3,
    text=meeting_notes,
)

مع str.format() يجب مضاعفة كل قوس معقوف حرفي في القالب ({{ و}})، وهذا مهم عندما يتضمن القالب مثال JSON. أما الأقواس داخل القيم التي تمررها، مثل الكود في meeting_notes، فلا تحتاج إلى تهريب. بعض مكتبات بناء تطبيقات الذكاء الاصطناعي لها أصناف قوالب خاصة، لكنها تؤدي عمل نص التنسيق نفسه مع ميزات إضافية حوله.

عندما تأتي القيم من المستخدمين، تذكّر أن القالب يرسل نصهم إلى النموذج. أبقِه داخل فواصل، ولا تعطِ النموذج أدوات أو بيانات يمكن أن يسيء مُدخل خبيث استخدامها.

القالب أم موجّه النظام

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

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

ما هو قالب الموجّه؟

قالب الموجّه موجّه قابل لإعادة الاستخدام فيه عناصر نائبة، مثل [topic] أو {language}، للأجزاء التي تتغير بين الاستخدامات. النص الثابت يحمل التعليمات التي اختبرتها مسبقًا، وأنت تملأ الفراغات في كل مرة بدلًا من كتابة الموجّه من الصفر.

كيف أصنع قالب موجّه خاصًا بي؟

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

أين أحفظ قوالب الموجّهات؟

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

كيف أستخدم قالب موجّه في Python؟

خزّن القالب نصًا فيه حقول مسمّاة واملأه باستخدام str.format() أو f-string. مع str.format() اكتب أي قوس معقوف حرفي في القالب مرتين ({{ و}})، مثلًا عندما يحتوي القالب على مثال JSON. وضع النص الذي يقدّمه المستخدم داخل فواصل حتى يبقى منفصلًا عن التعليمات.

Coddy programming languages illustration

تعلّم البرمجة مع Coddy

ابدأ الآن