কীভাবে একটি ভালো প্রম্পট লিখবেন: ৫টি অংশ এবং একটি আগে/পরে উদাহরণ
একটি অস্পষ্ট এক-লাইনের অনুরোধকে টাস্ক, প্রসঙ্গ, ফরম্যাট, উদাহরণ এবং নিয়ম সহ একটি প্রম্পটে পরিণত করুন, তারপর এটি একটি OpenAI-সামঞ্জস্যপূর্ণ API এর মাধ্যমে পাঠান।

এই পৃষ্ঠায়
আপনার মডেল সোমবার একটি গ্রাহকের ইমেইল তিনটি অনুচ্ছেদে সারসংক্ষেপ করে এবং মঙ্গলবার দুটি বুলেট পয়েন্টে। একই প্রম্পট, একই মডেল। এক-লাইনের অনুরোধ ঠিক এটাই করে: এটি প্রতিটি সিদ্ধান্ত মডেলের উপর ছেড়ে দেয়, এবং মডেল প্রতিবার ভিন্নভাবে সিদ্ধান্ত নেয়।
একটি ভালো প্রম্পট পাঁচটি প্রশ্নের উত্তর দেয়: কী করতে হবে (টাস্ক), কী নিয়ে কাজ করতে হবে (প্রসঙ্গ), উত্তরটি কেমন হওয়া উচিত (ফরম্যাট), একটি ভালো উত্তর কেমন দেখায় (উদাহরণ) এবং কী এড়াতে হবে (সীমাবদ্ধতা)। নিচে, একটি অস্পষ্ট অনুরোধ একটি কাঠামোবদ্ধ অনুরোধে পরিণত হয়, OpenAI-সামঞ্জস্যপূর্ণ CheapTokens API এর মধ্য দিয়ে যায়, এবং আপনি দেখতে পান দীর্ঘ প্রম্পট বিলে কী যোগ করে।
কেন "এই ইমেইলটি সারসংক্ষেপ করুন" একটি জুয়া#
যখন আপনি "এই ইমেইলটি সারসংক্ষেপ করুন" টাইপ করেন, আপনার মাথায় ইতিমধ্যেই একটি উত্তর থাকে: একটি বাক্য, এটি কতটা জরুরি, এরপর কী করতে হবে। মডেল সেই ছবিটি দেখতে পায় না। তাই এটি অনুমান করে, এবং প্রতিটি অনুমান যুক্তিসঙ্গত। একসাথে তারা আপনাকে প্রতিটি রানে একটি ভিন্ন উত্তর দেয়, এবং যে স্ক্রিপ্ট উত্তরটি পড়ে তার পার্স করার জন্য স্থিতিশীল কিছু থাকে না।
OpenAI-এর প্রম্পট-ইঞ্জিনিয়ারিং গাইড (২৭ অক্টোবর ২০২৬ পড়া) ধারণাটি স্পষ্টভাবে বলে: প্রম্পট ইঞ্জিনিয়ারিং হলো কার্যকর নির্দেশনা লেখা, এবং GPT মডেলগুলি আরও ভালো করে যখন আপনি স্পষ্টভাবে তাদের বলেন কীভাবে একটি কাজ সম্পন্ন করতে হয়। অভ্যাসটি শুধু টেক্সটে সীমাবদ্ধ নয়। ২৬ অক্টোবর ২০২৬-এ একটি টেলিগ্রাম চ্যানেল একটি ৩০-সেকেন্ডের জেনারেট করা ভিডিওর জন্য একটি প্রম্পট শেয়ার করেছিল যা ব্লকে বিভক্ত ছিল: দৃশ্য, ভিজ্যুয়াল স্টাইল, সংলাপ, অডিও এবং বাদ দেওয়া বিষয়, প্রযুক্তিগত স্পেসিফিকেশন। ভিন্ন কাজ, একই পদক্ষেপ। লেখক প্রতিটি সিদ্ধান্ত আগেই নামকরণ করেছিলেন মডেলের উপর ছেড়ে দেওয়ার পরিবর্তে।
নিজে চেষ্টা করুনচেষ্টা করুন: "এই ইমেইলটি সারসংক্ষেপ করুন" থেকে একটি মডেলকে কী অনুমান করতে হবে?উত্তর দেখান
দৈর্ঘ্য (এক লাইন বা একটি পৃষ্ঠা), শ্রোতা (আপনি বা গ্রাহক), উত্তরের আকার (গদ্য, বুলেট, JSON), কী গুরুত্বপূর্ণ বলে গণ্য হয়, এবং ইমেইলে না থাকলে কী করতে হবে। এর প্রত্যেকটি এমন কিছু যা একটি প্রম্পট স্থির করতে পারে।
পাঁচটি অংশ, সহজ ভাষায়#
প্রথম দিনে একজন নতুন সহকর্মীকে ব্রিফিং করার কথা ভাবুন। "এটি সামলাও" আপনাকে একটি অনুমান দেয়। কাজ, উপাদান, আপনি যে ফরম্যাট চান, একটি নমুনা এবং একটি "করবেন না" সহ একটি স্টিকি নোট আপনাকে আপনার উদ্দেশ্য দেয়।
টাস্ক হলো একটি ক্রিয়া এবং একটি বস্তু: "ইমেইলটি সারসংক্ষেপ করুন এবং এর জরুরি অবস্থা রেট করুন।" আক্ষরিক হোন। "এই ইমেইলটি নিয়ে সাহায্য করুন" একটি টাস্ক নয়।
প্রসঙ্গ হলো সেই উপাদান যার উপর মডেল কাজ করে: ইমেইল, একটি পণ্যের বিবরণ, একটি নীতি। মডেল শুধু জানে যা এটি প্রশিক্ষণে শিখেছে এবং যা আপনি পেস্ট করেন। পেস্ট করা টেক্সট ডেলিমিটারে মুড়ে দিন, যেমন XML-স্টাইলের ট্যাগ <email>…</email> বা মার্কডাউন হেডার, যাতে আপনার নির্দেশনা টেক্সটের সাথে মিশে না যায়। OpenAI-এর গাইড উভয়ের পরামর্শ দেয়।
ফরম্যাট হলো উত্তরটি কেমন দেখায়: "summary, urgency, next_step কী সহ JSON" বা "তিনটি বুলেট, প্রতিটি সর্বোচ্চ ১২ শব্দ"। এটি সবচেয়ে বেশি গুরুত্বপূর্ণ যখন কোড উত্তরটি পড়ে।
উদাহরণ হলো একটি ইনপুট যার সাথে আপনি চান এমন আউটপুট। গাইডটি কয়েক-শট উদাহরণের সুপারিশ করে যা বিভিন্ন ধরনের ইনপুট কভার করে পছন্দসই আউটপুট সহ। একটি উদাহরণ একটি ভালো শুরু; আপনার ইনপুটগুলি অনেক ভিন্ন হলে একটি দ্বিতীয় যোগ করুন।
সীমাবদ্ধতা হলো "করবেন না"গুলি: শুধুমাত্র ইমেইলের তথ্য ব্যবহার করুন, কিছু অনুপস্থিত থাকলে "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 ডকস থেকে বেস 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)যদি ফরম্যাট লাইনটি তার কাজ করে, উত্তরটি summary, urgency এবং next_step সহ একটি JSON অবজেক্ট, এবং json.loads এটিকে একটি ডিকশনারিতে পরিণত করে। যদি এটি একটি ত্রুটি উত্থাপন করে, মডেল JSON-কে অতিরিক্ত টেক্সটে মুড়ে দিয়েছে: শেষ নিয়মটি কঠোর করুন বা একটি দ্বিতীয় উদাহরণ যোগ করুন। শেষ লাইনটি প্রিন্ট করে কতগুলি টোকেন ভিতরে এবং বাইরে গেছে, যা পরবর্তী বিভাগের বিষয়।
অতিরিক্ত শব্দের খরচ কত#
একটি টোকেন একটি শব্দের একটি অংশ। আপনি যা পাঠান (ইনপুট) এবং মডেল যা লেখে (আউটপুট) তার জন্য প্রতি টোকেনে অর্থ প্রদান করেন, এবং আউটপুট হল দামি দিক। আরও জানতে ইনপুট বনাম আউটপুট টোকেন দেখুন।
ধরুন আপনি প্রতিদিন ১,০০০ ইমেইল সহ একটি সাপোর্ট বট চালান, এবং ইমেইলটি প্রায় ৩০০ টোকেন। এক-লাইনেরটি প্রায় ১০ টোকেন নির্দেশনা যোগ করে, তাই প্রায় ৩১০ ভিতরে যায়; আমরা ধরে নিই এটি প্রায় ২৫০ টোকেনের একটি মুক্ত-ফর্ম সারসংক্ষেপ পায়। উপরের সিস্টেম প্রম্পটটি প্রায় ২০০ টোকেন, প্লাস <email> ট্যাগের জন্য প্রায় ১০, তাই প্রায় ৫০০ ভিতরে যায়; আমরা ধরে নিই ফরম্যাট লাইনটি উত্তরটিকে প্রায় ৮০ টোকেনের JSON-এ ধরে রাখে। DeepSeek-V4-Flash-এ এটি এক-লাইনের জন্য প্রতি ইমেইলে $0.00003 এবং কাঠামোবদ্ধ প্রম্পটের জন্য $0.000016। প্রম্পট দীর্ঘ হয়েছে, কিন্তু অনুরোধ সস্তা হয়েছে, কারণ দীর্ঘ অংশটি ইনপুট এবং আপনি যে অংশটি ছোট করেছেন তা আউটপুট। স্ক্রিপ্টটি চালান এবং এই অনুমানগুলিকে আপনার নিজের prompt_tokens এবং completion_ দিয়ে প্রতিস্থাপন করুন।
এখানে মডেলগুলির মধ্যে প্রতিদিন ১,০০০ ইমেইলে কাঠামোবদ্ধ প্রম্পট। মোট, ইনপুট এবং আউটপুট একসাথে গণনা করে, এই কাজের চাপে CheapTokens OpenRouter-এর রেফারেন্স মূল্যের চেয়ে সস্তা আসে; বর্তমান মূল্যগুলি মূল্য পৃষ্ঠায় রয়েছে।
| মডেল | ইনপুট $/১ মিলিয়ন | আউটপুট $/১ মিলিয়ন | প্রতি অনুরোধে | ১,০০০টি অনুরোধ | OpenRouter, ১,০০০টি অনুরোধ |
|---|---|---|---|---|---|
| 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 |
প্রতি অনুরোধে ৫০০ ইনপুট এবং ৮০ আউটপুট টোকেন। প্রতি 1M টোকেনের দাম বর্তমান এবং আমাদের ট্যারিফের সাথে পরিবর্তিত হয়; OpenRouter কলামটি একই ওয়ার্কলোডের জন্য রেফারেন্স মূল্য দেখায়।
নিজেকে পরীক্ষা করুন#
অভ্যাস সম্পর্কে একটি প্রশ্ন যা সবচেয়ে বেশি লাভজনক যখন একটি স্ক্রিপ্ট একটি প্রম্পট পুনরায় ব্যবহার করে। একবার কাঠামো কাজ করলে, পরবর্তী নবগুলি হল সিস্টেম বার্তা এবং তাপমাত্রা, যা সিস্টেম প্রম্পট এবং তাপমাত্রা এ কভার করা হয়েছে।
দ্রুত যাচাই
আপনার স্ক্রিপ্ট প্রতিবার একটি নতুন ইমেইল সহ একই নির্দেশনা পাঠায়। ইমেইলটি কোথায় যাওয়া উচিত?
উত্তর দেখান
উত্তর: শেষে, নির্দেশনা এবং উদাহরণের পরে
নির্দেশনাগুলি অনুরোধের মধ্যে একই থাকে এবং ইমেইলটি পরিবর্তিত হয়। OpenAI-এর গাইড প্রম্পটের শেষের দিকে পরিবর্তনশীল প্রসঙ্গ রাখার পরামর্শ দেয়।



