प्रॉम्प्ट सिर्फ "आप जो सवाल टाइप करते हैं" नहीं है। API की दुनिया में, प्रॉम्प्ट संदेशों का एक संरचित क्रम है — आमतौर पर एक system संदेश (मॉडल के व्यवहार को सेट करने वाला), उसके बाद बारी-बारी से user और assistant संदेश जो एक बातचीत बनाते हैं। जब आप Claude.ai जैसे चैट इंटरफ़ेस का उपयोग करते हैं, तो आपको एक साधारण टेक्स्ट बॉक्स दिखता है, लेकिन अंदर आपका संदेश मॉडल तक पहुँचने से पहले इस संरचना में लपेटा जाता है।
प्रभावी प्रॉम्प्ट में कुछ सामान्य विशेषताएँ होती हैं: वे बताते हैं कि आप क्या चाहते हैं (सिर्फ विषय नहीं बल्कि प्रारूप, लंबाई और दर्शक वर्ग), वे मॉडल को आवश्यक संदर्भ प्रदान करते हैं, और वे ऐसी सीमाएँ शामिल करते हैं जो विषय से भटकाव को रोकती हैं। "मुझे Python के बारे में बताओ" से आपको एक सामान्य अवलोकन मिलता है। "Java जानने वाले लेकिन Python नहीं जानने वाले डेवलपर के लिए Python के GIL की 200 शब्दों में व्याख्या लिखो, वेब सर्वर के लिए व्यावहारिक प्रभावों पर ध्यान केंद्रित करते हुए" — इससे आपको कुछ उपयोगी मिलता है। अंतर जादू नहीं है — यह विशिष्टता है।
"प्रॉम्प्ट इंजीनियरिंग" एक विषय क्यों बन गया इसका एक कारण है। API स्तर पर, प्रॉम्प्ट अनिवार्य रूप से प्राकृतिक भाषा में लिखे गए प्रोग्राम हैं। आप उदाहरण शामिल कर सकते हैं (few-shot), मॉडल से कदम-दर-कदम तर्क करने को कह सकते हैं (chain of thought), भूमिकाएँ सौंप सकते हैं ("आप एक वरिष्ठ सुरक्षा ऑडिटर हैं"), या आउटपुट प्रारूप को सीमित कर सकते हैं ("केवल मान्य JSON में उत्तर दें")। ये हैक नहीं हैं — ये ऐसी तकनीकें हैं जो मॉडल के व्यवहार को विश्वसनीय रूप से बदलती हैं क्योंकि वे उस प्रायिकता वितरण को बदलती हैं जिससे मॉडल सैंपल करता है।
एक सामान्य भ्रम यह है कि सही प्रॉम्प्ट किसी भी मॉडल से कुछ भी करवा सकता है। वास्तविकता में, प्रॉम्प्ट मॉडल के प्रशिक्षण डेटा, इसकी alignment ट्यूनिंग, और इसकी आर्किटेक्चरल सीमाओं के साथ इंटरैक्ट करते हैं। प्रॉम्प्ट मॉडल को वह ज्ञान नहीं दे सकता जिस पर उसे कभी प्रशिक्षित नहीं किया गया, इसकी सुरक्षा प्रशिक्षण को विश्वसनीय रूप से बायपास नहीं कर सकता, या इसकी context window से अधिक नहीं कर सकता। प्रॉम्प्ट क्या कर सकते हैं और क्या नहीं, यह समझना समय बचाता है और चतुर शब्दावली से चमत्कार की उम्मीद की निराशा को रोकता है।