XML टैग के साथ प्रॉम्प्ट संरचित करना
जब कोई प्रॉम्प्ट निर्देश, एक दस्तावेज़, उदाहरण और एक प्रश्न को मिला देता है, तो मॉडल उन्हें आपस में धुंधला कर सकता है। XML-शैली के टैग हर हिस्से को लेबल करने का एक साफ़ तरीका हैं — और Claude इन पर खासतौर पर अच्छी प्रतिक्रिया देता है।
विचार
हर अनुभाग को एक नामित टैग में लपेटें ताकि यह स्पष्ट हो कि क्या क्या है:
<instructions>
Summarize the document for a busy executive. Use only the document; if a fact
isn't there, say so.
</instructions>
<document>
{paste the long document here}
</document>
<format>
3 bullet points, then a one-line "decision needed".
</format>
टैग बस वह टेक्स्ट हैं जो आप ख़ुद गढ़ते हैं — <document>, <example>, <context>, <rules> — पर ये मॉडल को स्पष्ट सीमाएँ देते हैं।
यह मदद क्यों करता है
- डेटा को निर्देशों से अलग करता है — मॉडल के पेस्ट किए गए दस्तावेज़ के अंदर के भटके हुए टेक्स्ट का पालन करने की संभावना कम होती है (prompt injection के खिलाफ़ एक हल्का बचाव)।
- "इसने मेरे प्रॉम्प्ट का हिस्सा नज़रअंदाज़ कर दिया" को कम करता है। हर हिस्सा स्पष्ट रूप से सीमांकित होता है।
- आउटपुट को पार्स करना आसान बनाता है — आप Claude से अपना उत्तर
<answer>टैग में रखने को कह सकते हैं और इसे विश्वसनीय रूप से निकाल सकते हैं। - few-shot के साथ जुड़ता है — हर उदाहरण को
<example>में लपेटें।
टैग किया हुआ आउटपुट माँगना
Put your reasoning in <thinking> tags and your final answer in <answer> tags.
फिर आपका कोड सिर्फ़ <answer> की सामग्री पकड़ सकता है। जब आपको मशीन-पठनीय परिणाम चाहिए, तो यह structured output के साथ अच्छी तरह जुड़ता है।
सुझाव
- एक समान रहें — हर टैग को खोलें और बंद करें; वही नाम दोबारा इस्तेमाल करें।
- टैग को सार्थक नाम दें (
<contract>, न कि<x>)। - साधारण प्रॉम्प्ट पर ज़रूरत से ज़्यादा टैग न लगाएँ — इसका उपयोग तब करें जब वास्तव में कई अलग-अलग हिस्से हों।