تقنية سلسلة التفكير (Chain of Thought - CoT) هي أسلوب يُحسّن بشكل كبير أداء الذكاء الاصطناعي في مهام الاستدلال المعقدة من خلال مطالبة النموذج بإظهار عمله خطوة بخطوة.

<Callout type="info" title="أظهر عملك">
تماماً كما يطلب معلم الرياضيات من الطلاب إظهار عملهم، تطلب تقنية CoT من الذكاء الاصطناعي جعل استدلاله مرئياً.
</Callout>

## المشكلة التي تحلها CoT

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

<Compare 
  before={{ label: "إجابة مباشرة (غالباً خاطئة)", content: "Question: A store sells apples for $2 each. If you buy 5 or more, you get 20% off. How much do 7 apples cost?\n\nAnswer: $14 ❌" }}
  after={{ label: "سلسلة التفكير (صحيحة)", content: "Question: A store sells apples for $2 each. If you buy 5 or more, you get 20% off. How much do 7 apples cost?\n\nLet's work through this step by step:\n1. Regular price per apple: $2\n2. Number of apples: 7\n3. Since 7 ≥ 5, the discount applies\n4. Regular total: 7 × $2 = $14\n5. Discount: 20% of $14 = $2.80\n6. Final price: $14 - $2.80 = $11.20\n\nAnswer: $11.20 ✓" }}
/>

## موجهات CoT الأساسية

### عبارات التحفيز البسيطة

أضف إحدى هذه العبارات إلى موجهاتك:

<div className="my-4 grid gap-2">
  <div className="p-3 bg-muted/50 rounded-lg font-mono text-sm">"Let's think step by step."</div>
  <div className="p-3 bg-muted/50 rounded-lg font-mono text-sm">"Think through this carefully."</div>
  <div className="p-3 bg-muted/50 rounded-lg font-mono text-sm">"Work through this problem methodically."</div>
  <div className="p-3 bg-muted/50 rounded-lg font-mono text-sm">"Show your reasoning at each step."</div>
  <div className="p-3 bg-muted/50 rounded-lg font-mono text-sm">"Explain your thought process."</div>
</div>

### طلب الخطوات بشكل صريح

<TryIt 
  title="جرّب سلسلة التفكير"
  description="اطلب من الذكاء الاصطناعي حل مشكلة خطوة بخطوة."
  prompt={`Solve this problem:

A car rental costs $40 per day plus $0.25 per mile. If someone rents a car for 3 days and drives 200 miles, what is the total cost?

Before giving your final answer:
1. Identify what information is given
2. Determine what we need to find
3. Plan your approach
4. Execute each step, showing work
5. Verify your answer`}
/>

## CoT بدون أمثلة مقابل CoT بأمثلة قليلة

هناك نهجان رئيسيان لتقنية سلسلة التفكير، لكل منهما مقايضات مختلفة بين البساطة والتحكم.

### CoT بدون أمثلة (Zero-Shot)

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

<TryIt 
  compact
  title="CoT بدون أمثلة"
  prompt={`If John has 3 apples and gives half to Mary, then buys 4 more, how many does he have?

Let's think step by step.`}
/>

**مثال على المخرجات:**
```
Let's think step by step.
- John starts with 3 apples
- Half of 3 is 1.5, but we can't split apples
- If we round down: John gives 1 apple, keeps 2
- After buying 4 more: 2 + 4 = 6 apples

Answer: 6 apples
```

### CoT بأمثلة قليلة (Few-Shot)

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

<TryIt 
  compact
  title="CoT بأمثلة قليلة"
  prompt={`Example 1:
Q: A baker has 24 cupcakes. She puts them equally into 4 boxes. Then she eats 2 cupcakes from one box. How many cupcakes total remain?

A: Let's work through this:
- Total cupcakes: 24
- Cupcakes per box: 24 ÷ 4 = 6
- After eating 2 from one box: 6 - 2 = 4 cupcakes in that box
- Total remaining: (3 boxes × 6) + 4 = 18 + 4 = 22 cupcakes

Example 2:
Q: A train travels at 60 mph for 2 hours, then 40 mph for 3 hours. What is its average speed?

A: Let's work through this:
- Distance at 60 mph: 60 × 2 = 120 miles
- Distance at 40 mph: 40 × 3 = 120 miles
- Total distance: 120 + 120 = 240 miles
- Total time: 2 + 3 = 5 hours
- Average speed: 240 ÷ 5 = 48 mph

Now solve:
Q: A store sells notebooks for $3 each. If you buy 10 or more, you get 25% off. How much do 12 notebooks cost?`}
/>

**مثال على المخرجات:**
```
A: Let's work through this:
- Regular price: $3, Quantity: 12
- Since 12 ≥ 10, the 25% discount applies
- Regular total: 12 × $3 = $36
- Discount: 25% of $36 = $9
- Final price: $36 - $9 = $27
```

## تنسيقات CoT المنظمة

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

### تنسيق BREAK

اختصار سهل التذكر يوجه النموذج خلال دورة حل مشاكل كاملة، من الفهم إلى التحقق.

<BREAKFramework />

### قالب الاستدلال

هيكل أكثر رسمية يفصل المدخلات والأهداف والتنفيذ. ممتاز للمشاكل التقنية حيث تحتاج توثيقاً واضحاً لعملية الحل.

<TryIt 
  compact
  title="قالب الاستدلال"
  prompt={`Use this template to solve the problem:

GIVEN: [List known information]
GOAL: [What we need to find]
APPROACH: [Strategy we'll use]
STEPS:
  1. [First step with reasoning]
  2. [Second step with reasoning]
  ...
VERIFICATION: [Check the answer]
ANSWER: [Final answer]

Problem: A car uses 8 liters of fuel per 100 km. If the tank holds 45 liters and fuel costs $1.50 per liter, how much does it cost to drive 300 km?`}
/>

**مثال على المخرجات:**
```
GIVEN: 8L/100km, tank 45L, $1.50/L, drive 300km
GOAL: Calculate fuel cost
APPROACH: Fuel needed × cost per liter
STEPS:
1. Fuel = (300 ÷ 100) × 8 = 24 liters
2. Cost = 24 × $1.50 = $36
VERIFICATION: 24L < 45L tank ✓
ANSWER: $36
```

## CoT لأنواع مختلفة من المشاكل

تستفيد أنواع المشاكل المختلفة من أساليب CoT مختلفة. إليك أنماط محسّنة للسيناريوهات الشائعة.

### الاستدلال الرياضي

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

<TryIt 
  compact
  title="الرياضيات مع CoT"
  prompt={`A company's revenue was $1.2M in Q1. It grew 15% in Q2, declined 10% in Q3, and grew 25% in Q4. What was the total annual revenue?

Think through each quarter, showing your calculations clearly.`}
/>

**مثال على المخرجات:**
```
Q1: $1,200,000 (given)
Q2: $1,200,000 × 1.15 = $1,380,000
Q3: $1,380,000 × 0.90 = $1,242,000
Q4: $1,242,000 × 1.25 = $1,552,500

Total: $5,374,500
```

### الاستدلال المنطقي

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

<TryIt 
  compact
  title="لغز منطقي"
  prompt={`Three friends—Alice, Bob, and Carol—each have different pets (cat, dog, fish) and different jobs (teacher, engineer, doctor).

Clues:
1. Alice doesn't have a cat
2. The engineer has a dog
3. Bob is a teacher
4. Carol doesn't have a fish

Who has which pet and job? Reason through this systematically, testing hypotheses and verifying against all clues.`}
/>

**مثال على المخرجات:**
```
From clue 3: Bob = teacher
→ Alice and Carol are engineer/doctor

If Carol = engineer:
- Carol has dog (clue 2)
- Alice = doctor, has fish (clue 1)
- Bob has cat

Verify: All 4 clues satisfied ✓
Answer: Alice (doctor, fish), Bob (teacher, cat), Carol (engineer, dog)
```

### تصحيح الأخطاء البرمجية

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

<TryIt 
  compact
  title="التصحيح مع CoT"
  prompt={`This function should return the sum of even numbers in a list, but it's returning wrong values. Debug step by step by tracing through with the input [2, 3, 4, 6]:

def sum_evens(numbers):
    total = 0
    for n in numbers:
        if n % 2 == 0:
            total += 1
    return total

Trace each step, find the bug, and provide the fix.`}
/>

**مثال على المخرجات:**
```
Trace [2, 3, 4, 6]:
n=2: total += 1 → 1 (wait, adding 1 not n!)
n=3: skip (odd)
n=4: total = 2
n=6: total = 3

BUG: "total += 1" should be "total += n"
Expected: 12, Got: 3
Fix: Change to "total += n"
```

## الاتساق الذاتي مع CoT

للمشاكل الحرجة، لا تعتمد على مسار استدلال واحد. أنشئ حلولاً مستقلة متعددة وقارن النتائج. إذا تقاربت الأساليب المختلفة على نفس الإجابة، تكون الثقة عالية. الاختلاف يشير إلى الحاجة لمراجعة دقيقة.

<TryIt 
  compact
  title="الاتساق الذاتي"
  prompt={`Solve this problem 3 different ways, then give your final answer based on which solution appears most correct:

Problem: A farmer has chickens and cows. Together they have 30 heads and 74 legs. How many chickens and how many cows does the farmer have?

Approach 1: Algebra
Approach 2: Guess and check
Approach 3: Logical reasoning

Then compare and give your final answer.`}
/>

**مثال على المخرجات:**
```
Approach 1 (Algebra): c + w = 30, 2c + 4w = 74 → c=23, w=7
Approach 2 (Guess): Try 23/7 → 46 + 28 = 74 ✓
Approach 3 (Logic): 30 chickens = 60 legs, need 14 more → 7 cows

All agree: 23 chickens, 7 cows
```

## CoT لاتخاذ القرارات

تتضمن القرارات موازنة المقايضات عبر أبعاد متعددة. تضمن CoT النظر في جميع العوامل ذات الصلة بشكل منهجي بدلاً من القفز إلى استنتاجات. هذا النهج المنظم يوثق أيضاً الاستدلال للرجوع إليه مستقبلاً.

<TryIt 
  compact
  title="تحليل القرار"
  prompt={`Should we adopt microservices architecture for our application?

Context:
- Monolithic application with 50,000 lines of code
- Team of 5 developers
- 100 daily active users
- Planning for 10x growth in 2 years

Think through this systematically:
1. List the current state
2. Identify factors to consider (team size, scale, velocity, future growth)
3. Weigh each factor as for/against
4. Give a recommendation with reasoning`}
/>

**مثال على المخرجات:**
```
FACTORS:
- Team size (5): Too small for microservices ❌
- Scale (100 DAU): No scaling need ❌  
- Velocity: Monolith = faster iteration ❌
- Future growth: Uncertain timeline ⚠️

WEIGHING: 3 strong against, 1 weak for

RECOMMENDATION: Stay monolith, use clear module 
boundaries to ease future transition.
```

## متى تستخدم CoT

<div className="my-6 grid md:grid-cols-2 gap-4">
  <div className="border rounded-lg bg-green-50/50 dark:bg-green-950/20 border-green-200 dark:border-green-900">
    <p className="text-sm font-semibold text-green-700 dark:text-green-400 px-4 pt-3 flex items-center gap-2 m-0!"><IconCheck className="h-4 w-4" /> استخدم CoT لـ</p>
    <div className="text-sm p-4 pt-2 space-y-1">
      <p className="m-0!">**المشاكل الرياضية** — تقلل أخطاء الحساب</p>
      <p className="m-0!">**الألغاز المنطقية** — تمنع تخطي الخطوات</p>
      <p className="m-0!">**التحليل المعقد** — تنظم التفكير</p>
      <p className="m-0!">**تصحيح الأخطاء البرمجية** — تتبع التنفيذ</p>
      <p className="m-0!">**اتخاذ القرارات** — توازن المقايضات</p>
    </div>
  </div>
  <div className="border rounded-lg bg-red-50/50 dark:bg-red-950/20 border-red-200 dark:border-red-900">
    <p className="text-sm font-semibold text-red-700 dark:text-red-400 px-4 pt-3 flex items-center gap-2 m-0!"><IconX className="h-4 w-4" /> تجنب CoT لـ</p>
    <div className="text-sm p-4 pt-2 space-y-1">
      <p className="m-0!">**الأسئلة البسيطة** — عبء غير ضروري</p>
      <p className="m-0!">**الكتابة الإبداعية** — قد تقيد الإبداع</p>
      <p className="m-0!">**البحث عن حقائق** — لا حاجة للاستدلال</p>
      <p className="m-0!">**الترجمة** — مهمة مباشرة</p>
      <p className="m-0!">**التلخيص** — عادةً واضح ومباشر</p>
    </div>
  </div>
</div>

## قيود CoT

على الرغم من قوتها، سلسلة التفكير ليست حلاً سحرياً. فهم قيودها يساعدك على تطبيقها بشكل مناسب.

1. **زيادة استخدام الرموز** — المزيد من المخرجات يعني تكاليف أعلى
2. **ليست ضرورية دائماً** — المهام البسيطة لا تستفيد منها
3. **يمكن أن تكون مطولة** — قد تحتاج لطلب الإيجاز
4. **الاستدلال قد يكون خاطئاً** — CoT لا تضمن الصحة

## الملخص

<Callout type="tip" title="النقاط الرئيسية">
تُحسّن CoT الاستدلال المعقد بشكل كبير من خلال جعل الخطوات الضمنية صريحة. استخدمها للرياضيات والمنطق والتحليل وتصحيح الأخطاء. المقايضة: دقة أفضل مقابل المزيد من الرموز.
</Callout>

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

في الفصل التالي، سنستكشف التعلم بأمثلة قليلة—تعليم النموذج من خلال الأمثلة.
