प्रॉम्प्ट में टैग एक ही वजह से होते हैं: यह सीमा बिना किसी संदेह के तय करना कि निर्देश कहाँ ख़त्म होते हैं और सामग्री कहाँ शुरू होती है। यह सीमा तब सबसे ज़्यादा मायने रखती है जब सामग्री आपकी नहीं है — चिपकाया हुआ दस्तावेज़, कोई सपोर्ट टिकट, कुछ भी जो उपयोगकर्ता ने दिया — क्योंकि जो पाठ अपने ही खंड को बंद कर देता है, वह निर्देश की तरह पढ़ा जाता है। सामग्री एस्केप करना यही रोकता है, और हाथ से बने प्रॉम्प्ट में यही क़दम सबसे ज़्यादा छूटता है। यहाँ खंड लपेटे जाते हैं, भीतर की सामग्री एस्केप होती है, नाम वैध टैग में बदलते हैं — और उल्टा भी चलता है: टैग वाला प्रॉम्प्ट चिपकाइए और खंड निकालकर उनमें से एक अलग से संपादित कीजिए।
विशेषताएँ
सामग्री एस्केप, ताकि वह अपना ही खंड बंद न कर सके
टैग नाम सुधरे हुए और टाइप करते ही दिखाए जाते हैं
ब्लॉक या पंक्ति के भीतर लपेटना
पहले से टैग वाले प्रॉम्प्ट से खंड निकालता है
खुले पर कभी बंद न हुए टैग ढूँढ़ता है
निकाले गए खंड सीधे संपादक में लोड करता है
ख़ाली खंड छोड़ दिए जाते हैं, लिखे नहीं जाते
पूरा चक्र: लपेटिए, निकालिए, बदलिए, फिर लपेटिए
XML प्रॉम्प्ट खंड बिल्डर का उपयोग कैसे करें
हर खंड का नाम रखिए और उसकी सामग्री चिपकाइए
जो आपने नहीं लिखा उसके लिए एस्केप चालू रहने दीजिए
टैग वाला प्रॉम्प्ट कॉपी कीजिए
या पहले से मौजूद प्रॉम्प्ट चिपकाकर उसके खंड अलग कीजिए
उदाहरण
इनपुट
Customer Ticket
आउटपुट
<customer-ticket>…</customer-ticket>
नाम सुधारे जाते हैं — टैग में स्पेस और बड़े अक्षर नहीं चलते।
सामान्य त्रुटियाँ और समस्या निवारण
मेरा टैग नाम बदल जाता है। — टैग में स्पेस या बड़े अक्षर नहीं हो सकते और वे अंक से शुरू नहीं हो सकते। सुधरा हुआ रूप फ़ील्ड के बग़ल में दिखता रहता है।
कोई खंड निकल नहीं रहा। — निकालने के लिए मिलता-जुलता बंद करने वाला टैग चाहिए। बिना बंद हुए टैग अलग से सूचीबद्ध होते हैं, क्योंकि असली गड़बड़ अक्सर वही होती है।
क्या अपने ही निर्देश एस्केप करूँ? — आपके लिखे पाठ में यह कम ही मायने रखता है और दूसरों के पाठ में हमेशा। चालू रहने देना सुरक्षित डिफ़ॉल्ट है।
क्या टैग सचमुच मदद करते हैं? — सबसे ज़्यादा वहाँ जहाँ सामग्री और निर्देश मिलते हैं। बिना अंतर्निहित सामग्री वाले छोटे प्रॉम्प्ट के लिए शीर्षक भी उतने ही साफ़ हैं और कम टोकन लेते हैं।
अक्सर पूछे जाने वाले प्रश्न
शीर्षकों के बजाय टैग क्यों?
शीर्षक पाठक के लिए ढाँचा दिखाते हैं; टैग वह सीमा दिखाते हैं जिसे सामग्री पार नहीं कर सकती। जब आप कोई दस्तावेज़ या उपयोगकर्ता का दिया पाठ भीतर रखते हैं, तब दूसरा गुण ही मायने रखता है।
क्या इससे प्रॉम्प्ट इंजेक्शन रुक जाता है?
यह एक ख़ास रास्ता बंद करता है: वह सामग्री जो अपना खंड बंद करके निर्देश के रूप में आगे बढ़ जाए। जो सामग्री खंड के भीतर ही लुभावने निर्देश रखती है, उस पर इसका कोई असर नहीं।
क्या यह XML है?
दिखता वैसा है और XML की तरह पार्स नहीं होता। इसीलिए सिर्फ़ वे तीन अक्षर एस्केप होते हैं जो सीमा तोड़ देते, कोई पूरी तरह शुद्ध दस्तावेज़ बनाने की कोशिश नहीं की जाती।
क्या खंड वापस मिल सकते हैं?
हाँ — टैग वाला प्रॉम्प्ट चिपकाइए, खंड निकल आएँगे, और चाहें तो संपादक में लोड करके एक बदलकर दोबारा जोड़ लीजिए।
क्या टैग के नाम मायने रखते हैं?
बताने वाले नाम मदद करते हैं। <customer-ticket> पाठक को <data> से कहीं बेहतर बताता है कि भीतर क्या है, और क़ीमत उतनी ही है।