البرومبت الجيد ينجز المهمة. البرومبت المُحسَّن ينجز المهمة بكفاءة—أسرع وأرخص وأكثر اتساقاً. يعلمك هذا الفصل كيفية تحسين البرومبتات بشكل منهجي عبر أبعاد متعددة.

<Callout type="tip" title="جرّب محسّن البرومبتات">
هل تريد تحسين برومبتاتك تلقائياً؟ استخدم أداة [محسّن البرومبتات](/developers#enhancer). تحلل برومبتك وتطبق تقنيات التحسين وتعرض لك برومبتات مجتمعية مشابهة للإلهام.
</Callout>

## المفاضلات في التحسين

كل تحسين يتضمن مفاضلات. فهم هذه المفاضلات يساعدك على اتخاذ قرارات واعية:

<InfoGrid items={[
  { label: "الجودة مقابل التكلفة", description: "الجودة الأعلى غالباً تتطلب المزيد من التوكنات أو نماذج أفضل", example: "إضافة أمثلة تحسن الدقة لكنها تزيد عدد التوكنات", exampleType: "text", color: "blue" },
  { label: "السرعة مقابل الجودة", description: "النماذج الأسرع قد تضحي ببعض القدرات", example: "GPT-4 أذكى لكنه أبطأ من GPT-4o-mini", exampleType: "text", color: "purple" },
  { label: "الاتساق مقابل الإبداع", description: "درجة حرارة أقل = أكثر قابلية للتنبؤ لكن أقل إبداعاً", example: "درجة حرارة 0.2 للحقائق، 0.8 للعصف الذهني", exampleType: "text", color: "green" },
  { label: "البساطة مقابل المتانة", description: "التعامل مع الحالات الاستثنائية يضيف تعقيداً", example: "البرومبتات البسيطة تفشل مع المدخلات غير المعتادة", exampleType: "text", color: "amber" }
]} />

## قياس ما يهم

قبل التحسين، حدد النجاح. ماذا يعني "أفضل" لحالة استخدامك؟

<InfoGrid items={[
  { label: "الدقة", description: "كم مرة يكون المخرج صحيحاً؟", example: "90% من اقتراحات الكود تُترجم بدون أخطاء", exampleType: "text", color: "blue" },
  { label: "الصلة", description: "هل تعالج ما طُلب فعلاً؟", example: "الرد يجيب مباشرة على السؤال مقابل الخروج عن الموضوع", exampleType: "text", color: "blue" },
  { label: "الاكتمال", description: "هل تمت تغطية جميع المتطلبات؟", example: "جميع الأقسام الخمسة المطلوبة مضمنة في المخرج", exampleType: "text", color: "blue" },
  { label: "زمن الاستجابة", description: "كم من الوقت حتى يصل الرد؟", example: "p50 < 2 ثانية، p95 < 5 ثواني لتطبيقات الدردشة", exampleType: "text", color: "purple" },
  { label: "كفاءة التوكنات", description: "كم توكن للنتيجة نفسها؟", example: "500 توكن مقابل 1500 توكن لمخرج مكافئ", exampleType: "text", color: "purple" },
  { label: "الاتساق", description: "ما مدى تشابه المخرجات للمدخلات المتشابهة؟", example: "السؤال نفسه يحصل على إجابات متشابهة البنية", exampleType: "text", color: "green" }
]} />

<Callout type="info" title="ماذا يعني p50 و p95؟">
مقاييس النسب المئوية تُظهر توزيع زمن الاستجابة. **p50** (الوسيط) يعني أن 50% من الطلبات أسرع من هذه القيمة. **p95** يعني أن 95% أسرع—وهو يلتقط القيم المتطرفة البطيئة. إذا كان p50 الخاص بك هو 1 ثانية لكن p95 هو 10 ثواني، فإن معظم المستخدمين سعداء لكن 5% يعانون من تأخيرات محبطة.
</Callout>

<TryIt 
  title="حدد مقاييس نجاحك"
  description="استخدم هذا القالب لتوضيح ما تقوم بتحسينه قبل إجراء التغييرات."
  prompt={`ساعدني في تحديد مقاييس النجاح لتحسين البرومبت الخاص بي.

**حالة الاستخدام الخاصة بي**: \${useCase}
**نقاط الألم الحالية**: \${painPoints}

لحالة الاستخدام هذه، ساعدني في تحديد:

1. **المقياس الأساسي**: ما المقياس الوحيد الأكثر أهمية؟
2. **المقاييس الثانوية**: ماذا أيضاً يجب أن أتتبع؟
3. **المفاضلات المقبولة**: ما الذي يمكنني التضحية به من أجل المقياس الأساسي؟
4. **الخطوط الحمراء**: ما مستوى الجودة غير المقبول؟
5. **كيفية القياس**: طرق عملية لتقييم كل مقياس`}
/>

## تحسين التوكنات

التوكنات تكلف مالاً وتضيف زمن استجابة. إليك كيفية قول الشيء نفسه بتوكنات أقل.

### مبدأ الضغط

<Compare 
  before={{ label: "مطوّل (67 توكن)", content: "I would like you to please help me with the following task. I need you to take the text that I'm going to provide below and create a summary of it. The summary should capture the main points and be concise. Please make sure to include all the important information. Here is the text:\n\n[text]" }}
  after={{ label: "موجز (12 توكن)", content: "Summarize this text, capturing main points concisely:\n\n[text]" }}
/>

**نفس النتيجة، توكنات أقل بنسبة 82%.**

### تقنيات توفير التوكنات

<InfoGrid items={[
  { label: "احذف المجاملات", description: "\"من فضلك\" و\"شكراً\" تضيف توكنات دون تحسين المخرج", example: "\"Please summarize\" → \"Summarize\"", color: "green" },
  { label: "تخلص من التكرار", description: "لا تكرر نفسك أو تذكر الواضح", example: "\"Write a summary that summarizes\" → \"Summarize\"", color: "green" },
  { label: "استخدم الاختصارات", description: "حيث يكون المعنى واضحاً، اختصر", example: "\"for example\" → \"e.g.\"", color: "green" },
  { label: "أشر بالموضع", description: "أشر إلى المحتوى بدلاً من تكراره", example: "\"the text above\" بدلاً من إعادة الاقتباس", color: "green" }
]} />

<TryIt 
  title="ضاغط البرومبتات"
  description="الصق برومبت مطولاً للحصول على نسخة محسّنة من حيث التوكنات."
  prompt={`اضغط هذا البرومبت مع الحفاظ على معناه وفعاليته:

البرومبت الأصلي:
"\${verbosePrompt}"

التعليمات:
1. أزل المجاملات غير الضرورية والكلمات الحشو
2. تخلص من التكرار
3. استخدم صياغة موجزة
4. احتفظ بجميع التعليمات والقيود الأساسية
5. حافظ على الوضوح—لا تضحي بالفهم من أجل الإيجاز

قدم:
- **النسخة المضغوطة**: البرومبت المحسّن
- **تقليل التوكنات**: النسبة المئوية المقدرة للتوفير
- **ما تم حذفه**: شرح مختصر لما تم إزالته ولماذا كان آمناً إزالته`}
/>

## تحسين الجودة

أحياناً تحتاج مخرجات أفضل، وليس أرخص. إليك كيفية تحسين الجودة.

### معززات الدقة

<InfoGrid items={[
  { label: "أضف التحقق", description: "اطلب من النموذج فحص عمله الخاص", example: "\"...then verify your answer is correct\"", color: "blue" },
  { label: "اطلب مستوى الثقة", description: "اجعل عدم اليقين صريحاً", example: "\"Rate your confidence 1-10 and explain any uncertainty\"", color: "blue" },
  { label: "مناهج متعددة", description: "احصل على وجهات نظر مختلفة، ثم اختر", example: "\"Provide 3 approaches and recommend the best one\"", color: "blue" },
  { label: "التفكير الصريح", description: "فرض التفكير خطوة بخطوة", example: "\"Think step by step and show your reasoning\"", color: "blue" }
]} />

### معززات الاتساق

<InfoGrid items={[
  { label: "مواصفات تنسيق مفصلة", description: "أظهر بالضبط كيف يجب أن يبدو المخرج", example: "ضمّن قالباً أو مخططاً", exampleType: "text", color: "purple" },
  { label: "أمثلة القليل من اللقطات", description: "قدم 2-3 أمثلة للمخرج المثالي", example: "\"Here's what good looks like: [examples]\"", color: "purple" },
  { label: "درجة حرارة أقل", description: "قلل العشوائية لمخرج أكثر قابلية للتنبؤ", example: "درجة حرارة 0.3-0.5 لنتائج متسقة", exampleType: "text", color: "purple" },
  { label: "التحقق من المخرجات", description: "أضف خطوة تحقق للحقول الحرجة", example: "\"Verify all required fields are present\"", color: "purple" }
]} />

<TryIt 
  title="محسّن الجودة"
  description="أضف عناصر تحسين الجودة إلى برومبتك."
  prompt={`حسّن هذا البرومبت للحصول على مخرجات ذات جودة أعلى:

البرومبت الأصلي:
"\${originalPrompt}"

**مشكلة الجودة التي أراها**: \${qualityIssue}

أضف معززات الجودة المناسبة:
1. إذا كانت الدقة هي المشكلة ← أضف خطوات التحقق
2. إذا كان الاتساق هو المشكلة ← أضف مواصفات التنسيق أو أمثلة
3. إذا كانت الصلة هي المشكلة ← أضف السياق والقيود
4. إذا كان الاكتمال هو المشكلة ← أضف متطلبات صريحة

قدم البرومبت المحسّن مع شرح لكل إضافة.`}
/>

## تحسين زمن الاستجابة

عندما تكون السرعة مهمة، كل ميلي ثانية تُحسب.

### اختيار النموذج حسب الحاجة للسرعة

<InfoGrid items={[
  { label: "الوقت الفعلي (< 500 ميلي ثانية)", description: "استخدم أصغر نموذج فعال + تخزين مؤقت مكثف", example: "GPT-4o-mini، Claude Haiku، استجابات مخزنة مؤقتاً", exampleType: "text", color: "red" },
  { label: "تفاعلي (< 2 ثانية)", description: "نماذج سريعة، البث مُفعّل", example: "GPT-4o-mini مع البث", exampleType: "text", color: "amber" },
  { label: "متسامح (< 10 ثواني)", description: "نماذج متوسطة المستوى، توازن الجودة/السرعة", example: "GPT-4o، Claude Sonnet", exampleType: "text", color: "green" },
  { label: "غير متزامن/دفعي", description: "استخدم أفضل نموذج، عالج في الخلفية", example: "GPT-4، Claude Opus للمعالجة دون اتصال", exampleType: "text", color: "blue" }
]} />

### تقنيات السرعة

<InfoGrid items={[
  { label: "برومبتات أقصر", description: "توكنات إدخال أقل = معالجة أسرع", example: "اضغط البرومبتات، أزل السياق غير الضروري", exampleType: "text", color: "cyan" },
  { label: "حدد المخرجات", description: "عيّن max_tokens لمنع الاستجابات الطويلة", example: "max_tokens: 500 للملخصات", exampleType: "text", color: "cyan" },
  { label: "استخدم البث", description: "احصل على التوكنات الأولى بشكل أسرع، تجربة مستخدم أفضل", example: "البث لأي استجابة > 100 توكن", exampleType: "text", color: "cyan" },
  { label: "خزّن مؤقتاً بقوة", description: "لا تعيد حساب الاستعلامات المتطابقة", example: "خزّن الأسئلة الشائعة مؤقتاً، مخرجات القوالب", exampleType: "text", color: "cyan" }
]} />

## تحسين التكلفة

على نطاق واسع، التوفير الصغير يتضاعف إلى تأثير كبير على الميزانية.

### فهم التكاليف

استخدم هذه الحاسبة لتقدير تكاليف API الخاصة بك عبر نماذج مختلفة:

<CostCalculatorDemo />

### استراتيجيات خفض التكلفة

<InfoGrid items={[
  { label: "توجيه النماذج", description: "استخدم النماذج المكلفة فقط عند الحاجة", example: "أسئلة بسيطة → GPT-4o-mini، معقدة → GPT-4", exampleType: "text", color: "green" },
  { label: "كفاءة البرومبت", description: "برومبتات أقصر = تكلفة أقل لكل طلب", example: "قطع 50% من التوكنات = توفير 50% في تكلفة الإدخال", exampleType: "text", color: "green" },
  { label: "التحكم في المخرجات", description: "حدد طول الاستجابة عندما لا تحتاج التفاصيل الكاملة", example: "\"أجب في 2-3 جمل\" مقابل غير محدود", color: "green" },
  { label: "التجميع", description: "ادمج الاستعلامات ذات الصلة في طلبات فردية", example: "حلل 10 عناصر في برومبت واحد مقابل 10 مكالمات منفصلة", exampleType: "text", color: "green" },
  { label: "الفلترة المسبقة", description: "لا ترسل طلبات لا تحتاج الذكاء الاصطناعي", example: "مطابقة الكلمات المفتاحية قبل التصنيف المكلف", exampleType: "text", color: "green" }
]} />

## حلقة التحسين

التحسين تكراري. إليك عملية منهجية:

### الخطوة 1: إنشاء خط الأساس

لا يمكنك تحسين ما لا تقيسه. قبل تغيير أي شيء، وثّق نقطة البداية بدقة.

<InfoGrid items={[
  { label: "توثيق البرومبت", description: "احفظ نص البرومبت بالضبط، بما في ذلك برومبتات النظام وأي قوالب", example: "تحكم في إصدارات برومبتاتك مثل الكود", exampleType: "text", color: "blue" },
  { label: "مجموعة الاختبار", description: "أنشئ 20-50 مدخلاً تمثيلياً يغطي الحالات الشائعة والاستثنائية", example: "ضمّن أمثلة سهلة ومتوسطة وصعبة", exampleType: "text", color: "blue" },
  { label: "مقاييس الجودة", description: "قيّم كل مخرج وفقاً لمعايير نجاحك", example: "نسبة الدقة %، درجة الصلة، الامتثال للتنسيق", exampleType: "text", color: "purple" },
  { label: "مقاييس الأداء", description: "قس التوكنات والتوقيت لكل حالة اختبار", example: "متوسط الإدخال: 450 توكن، متوسط المخرج: 200 توكن، زمن استجابة p50: 1.2 ثانية", exampleType: "text", color: "purple" }
]} />

<TryIt 
  title="قالب توثيق خط الأساس"
  description="استخدم هذا لإنشاء توثيق شامل لخط الأساس قبل التحسين."
  prompt={`أنشئ توثيق خط أساس لمشروع تحسين البرومبت الخاص بي.

**البرومبت الحالي**:
"\${currentPrompt}"

**ما يفعله البرومبت**: \${promptPurpose}

**المشاكل الحالية التي أراها**: \${currentIssues}

أنشئ قالب توثيق خط الأساس مع:

1. **لقطة البرومبت**: نص البرومبت بالضبط (للتحكم في الإصدارات)

2. **حالات الاختبار**: اقترح 10 مدخلات اختبار تمثيلية يجب أن أستخدمها، تغطي:
   - 3 حالات نموذجية/سهلة
   - 4 حالات متوسطة التعقيد  
   - 3 حالات استثنائية أو مدخلات صعبة

3. **المقاييس للتتبع**:
   - مقاييس الجودة الخاصة بحالة الاستخدام هذه
   - مقاييس الكفاءة (التوكنات، زمن الاستجابة)
   - كيفية تقييم كل مقياس

4. **فرضية خط الأساس**: ما الأداء المتوقع حالياً؟

5. **معايير النجاح**: ما الأرقام التي ستجعلني راضياً عن التحسين؟`}
/>

### الخطوة 2: صياغة فرضية

<Compare 
  before={{ label: "هدف غامض", content: "أريد أن أجعل برومبتي أفضل." }}
  after={{ label: "فرضية قابلة للاختبار", content: "إذا أضفت مثالين من نوع few-shot، ستتحسن الدقة من 75% إلى 85% لأن النموذج سيتعلم النمط المتوقع." }}
/>

### الخطوة 3: اختبر تغييراً واحداً

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

### الخطوة 4: حلل وقرر

هل نجح؟ احتفظ بالتغيير. هل أضر؟ ارجع. هل كان محايداً؟ ارجع (الأبسط أفضل).

### الخطوة 5: كرر

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

## قائمة مراجعة التحسين

<Checklist 
  title="قبل نشر برومبت محسّن"
  items={[
    { text: "حددت مقاييس نجاح واضحة" },
    { text: "قست أداء خط الأساس" },
    { text: "اختبرت التغييرات على مدخلات تمثيلية" },
    { text: "تحققت من أن الجودة لم تتراجع" },
    { text: "فحصت التعامل مع الحالات الاستثنائية" },
    { text: "حسبت التكلفة على النطاق المتوقع" },
    { text: "اختبرت زمن الاستجابة تحت الحمل" },
    { text: "وثّقت ما تغير ولماذا" }
  ]}
/>

<Quiz 
  question="لديك برومبت يعمل جيداً لكنه يكلف كثيراً على نطاق واسع. ما أول شيء يجب أن تفعله؟"
  options={[
    "انتقل إلى نموذج أرخص فوراً",
    "أزل كلمات من البرومبت لتقليل التوكنات",
    "قس أي جزء من البرومبت يستخدم أكثر التوكنات",
    "أضف التخزين المؤقت لجميع الطلبات"
  ]}
  correctIndex={2}
  explanation="قبل التحسين، قِس. تحتاج أن تفهم أين تذهب التوكنات قبل أن تتمكن من تقليلها بفعالية. قد يحتوي البرومبت على سياق غير ضروري، أو تعليمات مطولة، أو ينتج مخرجات أطول من اللازم. القياس يخبرك أين تركز جهود التحسين."
/>
