# चरण-दर-चरण Reasoning (Chain of Thought) — Prompt Engineering

Source: https://www.geekswithgeeks.com/hi/prompt-engineering/r-cot

> जिन समस्याओं को चाहिए उनमें बीच के चरण माँगें।

## हल करने की जगह

बहु-चरणीय समस्याओं (अंकगणित, तर्क, योजना, कोड विश्लेषण) में उत्तर से पहले मॉडल के **बीच के चरण लिखने** पर सटीकता अक्सर सुधरती है, क्योंकि हर बना चरण अगले के लिए संदर्भ बन जाता है। आम शब्दांकन: "इसे चरण-दर-चरण हल करो, फिर अंतिम उत्तर `Final answer:` से शुरू होने वाली पंक्ति में दो"। उत्तर को निश्चित पंक्ति में रखने से उसे **parse** करना आसान होता है। ध्यान दें कि नए **reasoning models** यह भीतर ही करते हैं, और उनके लिए लंबे दिखाई देने वाले चरण थोपना कुछ नहीं जोड़ सकता; अपने मॉडल का मार्गदर्शन देखें। व्याख्या को प्रमाण न मानें: धाराप्रवाह श्रृंखला में भी ग़लत चरण हो सकता है।

## चरणों में सोचें, नतीजा जाँचें

जटिल कार्य तब सुधरते हैं जब चरणों में बाँटे जाएँ, कई बार sample हों या सत्यापित हों।

![चार औज़ार: चरण-दर-चरण, वोट, chain, verify।](assets/figures/prompt-engineering/section-3-map.svg) — चित्र 3.1 — चरण-दर-चरण, वोट, chain और verify।

## चरण-दर-चरण उत्तर parse करना, चलाकर

मैंने यह सादा-Python (सिर्फ़ standard library) उदाहरण चलाया। उत्तर (format दिखाने को हाथ से लिखा) चरण और `Final answer:` पंक्ति दिखाता है। कोड 54 निकालता है और स्वतंत्र रूप से 12 x 5 घटा 10% = 54.0 दोबारा गणित करता है।

```python
import re

reply = """Step 1: 12 pens at 5 rupees each cost 12 * 5 = 60.
Step 2: A 10 percent discount is 6.
Step 3: 60 - 6 = 54.
Final answer: 54"""

m = re.search(r"Final answer:\s*(\d+)", reply)
print("parsed answer:", int(m.group(1)))
print("check:", 12 * 5 - 0.10 * (12 * 5))

```

Output:

```
parsed answer: 54
check: 54.0
```

## हो सके तो कोड से जाँचें

अंकगणित और तर्क के लिए लिखे चरणों पर भरोसा करने की जगह कोड में उत्तर दोबारा निकालें।

**Quiz:** अंतिम उत्तर निश्चित पंक्ति में क्यों रखें?

- [x] ताकि आपका कोड उसे भरोसे से parse कर सके
- [ ] Reasoning छिपाने के लिए
- [ ] क़ीमत घटाने के लिए
- [ ] चरण छोड़ने के लिए

*Answer:* ताकि आपका कोड उसे भरोसे से parse कर सके. अनुमेय चिह्न निष्कर्षण सरल बनाता है।
