एक अच्छा प्रॉम्प्ट कैसे लिखें: 5 भाग और पहले/बाद का उदाहरण
एक अस्पष्ट एक-पंक्ति अनुरोध को कार्य, संदर्भ, प्रारूप, उदाहरण और नियमों वाले प्रॉम्प्ट में बदलें, फिर इसे OpenAI-संगत API के माध्यम से भेजें।

इस पृष्ठ पर
आपका मॉडल सोमवार को एक ग्राहक ईमेल को तीन पैराग्राफों में सारांशित करता है और मंगलवार को दो बुलेट पॉइंट्स में। वही प्रॉम्प्ट, वही मॉडल। यही एक-पंक्ति अनुरोध करता है: यह हर निर्णय मॉडल पर छोड़ देता है, और मॉडल हर बार अलग निर्णय लेता है।
एक अच्छा प्रॉम्प्ट पाँच प्रश्नों का उत्तर देता है: क्या करना है (कार्य), किसके साथ काम करना है (संदर्भ), उत्तर कैसा दिखना चाहिए (प्रारूप), एक अच्छा उत्तर कैसा दिखता है (उदाहरण) और क्या टालना है (बाधाएँ)। नीचे, एक अस्पष्ट अनुरोध एक संरचित अनुरोध बन जाता है, OpenAI-संगत CheapTokens API से गुज़रता है, और आप देखते हैं कि लंबा प्रॉम्प्ट बिल में क्या जोड़ता है।
"इस ईमेल को सारांशित करें" एक जुआ क्यों है#
जब आप "इस ईमेल को सारांशित करें" टाइप करते हैं, तो आपके मन में पहले से एक उत्तर होता है: एक वाक्य, यह कितना जरूरी है, आगे क्या करना है। मॉडल वह चित्र नहीं देख सकता। इसलिए यह अनुमान लगाता है, और हर अनुमान उचित होता है। मिलकर वे आपको हर रन पर एक अलग उत्तर देते हैं, और उत्तर पढ़ने वाली स्क्रिप्ट के पास पार्स करने के लिए कुछ स्थिर नहीं होता।
OpenAI की प्रॉम्प्ट-इंजीनियरिंग गाइड (27 अक्टूबर 2026 को पढ़ी गई) विचार को स्पष्ट रूप से रखती है: प्रॉम्प्ट इंजीनियरिंग प्रभावी निर्देश लिखना है, और GPT मॉडल बेहतर करते हैं जब आप उन्हें स्पष्ट रूप से बताते हैं कि कार्य कैसे पूरा करना है। यह आदत केवल टेक्स्ट तक सीमित नहीं है। 26 अक्टूबर 2026 को एक Telegram चैनल ने 30-सेकंड के जनरेट किए गए वीडियो के लिए एक प्रॉम्प्ट साझा किया जो ब्लॉकों में विभाजित था: दृश्य, दृश्य शैली, संवाद, ऑडियो और बहिष्करण, तकनीकी विशिष्टताएँ। अलग कार्य, वही चाल। लेखक ने हर निर्णय को पहले से नाम दिया, बजाय मॉडल पर छोड़ने के।
स्वयं आज़माएँइसे आज़माएँ: "इस ईमेल को सारांशित करें" से मॉडल को क्या अनुमान लगाना होगा?उत्तर दिखाएँ
लंबाई (एक पंक्ति या एक पृष्ठ), दर्शक (आप या ग्राहक), उत्तर का आकार (गद्य, बुलेट, JSON), क्या महत्वपूर्ण माना जाता है, और जब ईमेल में न कहा गया हो तो क्या करना है। इनमें से हर एक ऐसी चीज़ है जिसे एक प्रॉम्प्ट तय कर सकता है।
पाँच भाग, सरल शब्दों में#
किसी नए सहकर्मी को उनके पहले दिन ब्रीफ करने के बारे में सोचें। "इससे निपटो" आपको एक अनुमान देता है। काम, सामग्री, आप जो प्रारूप चाहते हैं, एक नमूना और एक "न करें" वाली स्टिकी नोट आपको वह देती है जो आपका मतलब था।
कार्य एक क्रिया और एक वस्तु है: "ईमेल को सारांशित करें और इसकी तात्कालिकता को रेट करें।" शाब्दिक रहें। "इस ईमेल में मदद करें" एक कार्य नहीं है।
संदर्भ वह सामग्री है जिस पर मॉडल काम करता है: ईमेल, उत्पाद विवरण, एक नीति। मॉडल केवल वही जानता है जो उसने प्रशिक्षण में सीखा और जो आप पेस्ट करते हैं। पेस्ट किए गए टेक्स्ट को डेलिमीटर में लपेटें, जैसे <email>…</email> जैसे XML-शैली टैग या मार्कडाउन हेडर, ताकि आपके निर्देश टेक्स्ट के साथ मिल न जाएँ। OpenAI की गाइड दोनों का सुझाव देती है।
प्रारूप वह है जो उत्तर जैसा दिखता है: "JSON जिसमें keys summary, urgency, next_step हों" या "तीन बुलेट, प्रत्येक अधिकतम 12 शब्द"। यह सबसे ज्यादा मायने रखता है जब कोड उत्तर पढ़ता है।
उदाहरण एक इनपुट है जिसके साथ आप चाहते हैं आउटपुट। गाइड कुछ-शॉट उदाहरणों की सिफारिश करती है जो विविध प्रकार के इनपुट को वांछित आउटपुट के साथ कवर करते हैं। एक उदाहरण अच्छी शुरुआत है; जब आपके इनपुट बहुत भिन्न हों तो दूसरा जोड़ें।
बाधाएँ "न करें" हैं: केवल ईमेल के तथ्यों का उपयोग करें, जब कुछ गायब हो तो "unknown" लिखें, कोई रिफंड या छूट नहीं।

क्रम भी थोड़ा मायने रखता है। वही गाइड कहती है कि डेवलपर या सिस्टम संदेश आमतौर पर पहचान, निर्देश, उदाहरण, संदर्भ के क्रम में जाता है, और संदर्भ अंत के पास होना चाहिए क्योंकि यह अनुरोधों के बीच बदलता है। नियम सिस्टम संदेश में जाते हैं; इनपुट उपयोगकर्ता संदेश में जाता है।
जोड़े मिलाएँ
प्रॉम्प्ट के प्रत्येक भाग को उस प्रश्न से मिलाएँ जिसका वह उत्तर देता है
बाईं ओर एक आइटम पर टैप करें, फिर उसका जोड़ा
- कार्यमॉडल को क्या करना चाहिए?
- संदर्भयह किस सामग्री पर काम करता है?
- प्रारूपउत्तर कैसा दिखना चाहिए?
- उदाहरणएक अच्छा उत्तर कैसा दिखता है?
- बाधाएँइसे क्या नहीं करना चाहिए?
पहले और बाद: एक ग्राहक ईमेल#
यहाँ एक-पंक्ति वाला अनुरोध उसी अनुरोध के बगल में है जिसमें सभी पाँच भाग हैं। ईमेल स्वयं संदर्भ है, और यह उपयोगकर्ता संदेश में जाता है, <email> टैग में लपेटा हुआ।
तुलना करें
एक अनुरोध, दो प्रॉम्प्ट
पहले
Summarize this email.बाद
You summarize customer emails for a support team.
Task: Summarize the email in the <email> tags and rate how urgent it is.
Format: Reply with JSON only, using the keys "summary" (one sentence), "urgency" ("low", "medium" or "high") and "next_step" (one short sentence).
Example:
<email>Hi, order 1042 was due Monday and it's Thursday. Where is it?</email>
{"summary": "Order 1042 is three days late and the customer asks where it is.", "urgency": "medium", "next_step": "Check the carrier tracking for order 1042 and reply with the status."}
Rules:
- Use only what the email says. If something is missing, write "unknown".
- Don't offer refunds or discounts.
- Output nothing outside the JSON."बाद" को ऊपर से नीचे पढ़ें और आप प्रत्येक भाग की ओर इशारा कर सकते हैं: शुरुआती पंक्ति और कार्य, प्रारूप पंक्ति, उदाहरण, नियम। ईमेल जानबूझकर टेक्स्ट से गायब है। यह हर अनुरोध के साथ बदलता है, इसलिए यह अलग से यात्रा करता है।

इसे API के माध्यम से भेजें#
निर्देश कभी नहीं बदलते, इसलिए वे एक स्थिरांक में रहते हैं और पहले जाते हैं। ईमेल बदलता है, इसलिए यह अंत में जाता है। यह पूरी स्क्रिप्ट है, OpenAI Python SDK का उपयोग करते हुए CheapTokens की ओर इंगित। मॉडल DeepSeek-V4-Flash है: 380K संदर्भ, प्रति उत्तर अधिकतम 32,768 आउटपुट टोकन, किसी भी घंटे एक मूल्य। CheapTokens docs से बेस URL और मॉडल आईडी लें; यदि आपके पास अभी तक कुंजी नहीं है, तो आपका पहला API अनुरोध इसे समझाता है।
import json
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.cheaptokens.dev/v1",
api_key=os.environ["CHEAPTOKENS_API_KEY"],
)
SYSTEM_PROMPT = """You summarize customer emails for a support team.
Task: Summarize the email in the <email> tags and rate how urgent it is.
Format: Reply with JSON only, using the keys "summary" (one sentence), "urgency" ("low", "medium" or "high") and "next_step" (one short sentence).
Example:
<email>Hi, order 1042 was due Monday and it's Thursday. Where is it?</email>
{"summary": "Order 1042 is three days late and the customer asks where it is.", "urgency": "medium", "next_step": "Check the carrier tracking for order 1042 and reply with the status."}
Rules:
- Use only what the email says. If something is missing, write "unknown".
- Don't offer refunds or discounts.
- Output nothing outside the JSON.
"""
email = "Hello, I was charged twice for my subscription this month. Please fix it before Friday, my card is almost at its limit."
response = client.chat.completions.create(
model="deepseek-ai/DeepSeek-V4-Flash-0731",
messages=[
{"role": "system", "content": SYSTEM_PROMPT},
{"role": "user", "content": f"<email>\n{email}\n</email>"},
],
)
reply = response.choices[0].message.content
print(json.loads(reply))
print(response.usage.prompt_tokens, response.usage.completion_tokens)यदि प्रारूप पंक्ति ने अपना काम किया, तो उत्तर एक JSON ऑब्जेक्ट है जिसमें summary, urgency और next_step हैं, और json.loads इसे एक डिक्शनरी में बदल देता है। यदि यह त्रुटि उठाता है, तो मॉडल ने JSON को अतिरिक्त टेक्स्ट में लपेट दिया: अंतिम नियम को कसें या दूसरा उदाहरण जोड़ें। अंतिम पंक्ति प्रिंट करती है कि कितने टोकन अंदर और बाहर गए, जो अगले अनुभाग का विषय है।
अतिरिक्त शब्दों की लागत#
एक टोकन एक शब्द का एक टुकड़ा है। आप जो भेजते हैं (इनपुट) और जो मॉडल लिखता है (आउटपुट) के लिए प्रति टोकन भुगतान करते हैं, और आउटपुट अधिक महंगा पक्ष है। इस पर अधिक इनपुट बनाम आउटपुट टोकन में।
मान लें कि आप एक सपोर्ट बॉट चलाते हैं जिसमें प्रति दिन 1,000 ईमेल हैं, और ईमेल लगभग 300 टोकन है। एक-पंक्ति वाला लगभग 10 टोकन निर्देश जोड़ता है, इसलिए लगभग 310 अंदर जाते हैं; हम मानते हैं कि यह लगभग 250 टोकन का मुक्त-रूप सारांश प्राप्त करता है। ऊपर दिया गया सिस्टम प्रॉम्प्ट लगभग 200 टोकन है, साथ ही <email> टैग के लिए लगभग 10, इसलिए लगभग 500 अंदर जाते हैं; हम मानते हैं कि प्रारूप पंक्ति उत्तर को लगभग 80 टोकन के JSON तक सीमित रखती है। DeepSeek-V4-Flash पर यह एक-पंक्ति वाले के लिए प्रति ईमेल $0.00003 है और संरचित प्रॉम्प्ट के लिए $0.000016। प्रॉम्प्ट लंबा हो गया, लेकिन अनुरोध सस्ता हो गया, क्योंकि लंबा हिस्सा इनपुट है और जिसे आपने छोटा किया वह आउटपुट है। स्क्रिप्ट चलाएँ और इन मान्यताओं को अपने prompt_tokens और completion_ से बदलें।
यहाँ संरचित प्रॉम्प्ट प्रति दिन 1,000 ईमेल पर मॉडलों में है। कुल मिलाकर, इनपुट और आउटपुट को एक साथ गिनते हुए, इस कार्यभार पर CheapTokens OpenRouter के संदर्भ मूल्य से सस्ता निकलता है; वर्तमान मूल्य मूल्य निर्धारण पृष्ठ पर हैं।
| मॉडल | इनपुट $/1M | आउटपुट $/1M | प्रति अनुरोध | 1,000 अनुरोध | OpenRouter, 1,000 अनुरोध |
|---|---|---|---|---|---|
| GLM-5.3-Flash | $0.02 | $0.04 | $0.000013 | $0.0132 | $0.0234 |
| DeepSeek-V4-Flash | $0.015 | $0.10 | $0.000016 | $0.0155 | $0.0462 |
| MiniMax-M2.7 | $0.05 | $0.15 | $0.000037 | $0.037 | $0.444 |
प्रति अनुरोध 500 इनपुट और 80 आउटपुट टोकन। प्रति 1M टोकन की कीमतें वर्तमान हैं और हमारे टैरिफ के साथ बदलती रहती हैं; OpenRouter कॉलम समान कार्यभार के लिए संदर्भ कीमतें दिखाता है।
स्वयं जाँचें#
उस आदत के बारे में एक प्रश्न जो सबसे अधिक लाभ देती है जब कोई स्क्रिप्ट प्रॉम्प्ट का पुन: उपयोग करती है। एक बार संरचना काम करने लगे, तो अगले नॉब्स सिस्टम संदेश और तापमान हैं, जिन्हें सिस्टम प्रॉम्प्ट और तापमान में कवर किया गया है।
त्वरित जाँच
आपकी स्क्रिप्ट हर बार नए ईमेल के साथ वही निर्देश भेजती है। ईमेल कहाँ जाना चाहिए?
उत्तर दिखाएँ
उत्तर: अंत में, निर्देशों और उदाहरण के बाद
निर्देश अनुरोधों के बीच समान रहते हैं और ईमेल बदलता है। OpenAI की गाइड सुझाव देती है कि बदलने वाला संदर्भ प्रॉम्प्ट के अंत के पास रखें।



