তুমি টাইপ করলে «ai roleplay prompts», পেলে পঞ্চাশটার একটা তালিকা, একটা পেস্ট করলে। প্রথম উত্তরটা ভালো ছিল, চতুর্থটা ঘ্যাঁট, আর তুমি আরও ভালো তালিকা খুঁজতে বেরোলে — কারণ সবচেয়ে সহজ ব্যাখ্যা হলো, prompt-টাই ভুল ছিল।
ভুল ছিল না। যে অনুচ্ছেদ এক চরিত্রে টানটান, নির্দিষ্ট একটা দৃশ্য বানায়, সেটাই আরেকটায় বানায় দেয়ালের কাগজ, আর তালিকা-লেখকেরা কেন তা বলতে পারে না — বলতে গেলে prompt ছাড়া অন্য কিছু নিয়ে লিখতে হতো।
prompt হলো model যা দেখে তার মধ্যে সবচেয়ে ছোট জিনিস
প্রতিটা পালায় model-এর কাছে চারটে জিনিস পৌঁছায়: চরিত্রের পারসোনা, এ পর্যন্ত হওয়া কথোপকথন, মেমোরির তথ্য, আর তুমি এইমাত্র যে মেসেজটা লিখলে। তোমারটা সবচেয়ে ছোট আর সবার শেষে আসে। সেটা ঠেলা দেয়; বাতিল করে না।
এ কারণেই prompt প্যাকগুলো রাশিফলের মতো আচরণ করে। «তুমি এমন এক শহরের ক্লান্ত গোয়েন্দা, যে শহর কখনও শুকোয় না» — দু'লাইনের ঝাপসা পারসোনার চরিত্রে এটা অব্যর্থ কাজ করে, কারণ যা অনুপস্থিত ছিল সেটা শেষ পর্যন্ত জোগান দেয়। ভালোভাবে লেখা চরিত্রের ওপর পেস্ট করলে তাকে দিয়ে দেওয়া হয় দ্বিতীয় একটা, পরস্পরবিরোধী পরিচয় — তিন উত্তর পরে সেটা টের পাওয়া যায় এমন এক কণ্ঠ হয়ে, যা ক্রমাগত পিছলে যায়।
তাই একটা ক্রম আছে: পারসোনা, তারপর প্রথম মেসেজ, তারপর মেমোরি, আর তারপরই কেবল তুমি যা লেখো। বেশিরভাগ মানুষ উল্টো দিক থেকে কাজ করে, আর সিদ্ধান্ত নেয় যে AI-টা খারাপ।
চরিত্রের ভেতরে আসলে কী থাকা দরকার
তিনটে জিনিস, আর কোনোটাই দৈর্ঘ্য নয়।
- একটা স্ববিরোধ। যে শুধুই দয়ালু, তার যাওয়ার জায়গা নেই; যে দয়ালু অথচ দয়া করাটা ক্লান্তিকর মনে করে, তার প্রতিটা কথোপকথনেই একটা দৃশ্য আছে।
- নীরবতাগুলো। সে যদি কখনও যুদ্ধের কথা না বলে, বা তার ভাইয়ের কথা, বা কেন চলে এসেছিল — লিখে রাখো। তুমি শুধু কল্পনা করেছ এমন নীরবতা model অনুমান করতে পারে না।
- কথার ধরন, বর্ণনা করে নয়, দেখিয়ে। «ছোট বাক্য, বিদ্রূপের কথা কখনও শেষ করে না» তার ব্যক্তিত্ব নিয়ে পুরো অনুচ্ছেদকে হারায়: এটা কোনো মানুষ সম্পর্কে তথ্য জানায় না, আউটপুটকে নির্দেশ দেয়।
এখানে ক্যাটালগের বিবরণ আর পারসোনা দুটো আলাদা ঘর, আর model-এর কাছে পৌঁছায় কেবল একটা: বিবরণ হলো ব্রাউজ করার সময় মানুষের পড়া পরিচিতি, পারসোনা হলো প্রতিটা উত্তরে তার কাছে যা হওয়ার আশা করা হয়। তোমার সেরা অনুচ্ছেদটা বিবরণে লিখে ফেলা হলো ভালো উপাদান কোথাও না পৌঁছানোর সবচেয়ে চেনা পথ। সঙ্গী লেখা: তুমি আসলে কী নিয়ন্ত্রণ করো।
প্রথম মেসেজ তোমার একমাত্র কাজের উদাহরণ
প্রথম মেসেজ সংরক্ষিত হয় তার প্রথম পালা হিসেবে, তাই সেটা model-এর পড়া কথোপকথনের ভেতরেই থাকে — আর প্রথম মেসেজের সময় তার কণ্ঠের একমাত্র নমুনা ওটাই। দৈর্ঘ্য, কাল, পুরুষ, সে বর্ণনা করে না শুধু কথা বলে: সবই নকল হয়, আর নকল হতেই থাকে, কারণ প্রতিটা উত্তর আগেরটার অনুকরণ।
«হাই! আমি মারা। তোমার নাম কী? আজ কী করতে চাও?» তাকে একটা অকাজের জিনিস শেখায়: যে সে প্রশ্ন করে আর অপেক্ষা করে। তুলনা করো এমন একটার সঙ্গে, যা কাজ করে — «বৃষ্টি শুরু হওয়ার পর থেকে বারটা ফাঁকা। মারা দশ মিনিট আগে মোছা একটা গ্লাস আবার মুছছে, দরজা খুলতেই চোখ তুলে তাকাল। — ওপরের ঘরটা নিয়ে তুমিই ফোন করেছিলে। এটা প্রশ্ন নয়।» একটা জায়গা, একটা সময়, এইমাত্র ঘটা কিছু, তার কণ্ঠে একটা লাইন।
আর তোমার সম্পর্কে তথ্য যেহেতু মেমোরিতে থাকে, সম্ভাষণে নয়, তাই প্রথম মেসেজকে তোমার পরিচয় দিতেই হবে না। প্রতিটা চরিত্র একটা পড়া ও সম্পাদনার মতো মেমোরি রাখে, তাই একবার যা বলেছ তা আবার বলতে হয় না — আর ঠিক সেটাই প্রথম মেসেজকে একটা দৃশ্য হওয়ার স্বাধীনতা দেয়। লম্বা যুক্তিটা এখানে।
যে শুরু প্রশ্ন করে না, জায়গা গড়ে দেয়
তোমার নিজের প্রথম মেসেজ ওই কাজের অন্য অর্ধেক: দাঁড়ানোর একটা জায়গা, খেয়াল করার মতো কিছু, আর একটা জিনিস ব্যাখ্যা না করে রেখে দেওয়া।
- «তোমার শিফটের শেষ ঘণ্টা, আর আমি কাউন্টারের একেবারে শেষ মাথায় বসি এমন একটা ফাইল নিয়ে, যেটা খুলতে যে চাই না তা স্পষ্ট। এখনই আমাকে ওটা নিয়ে জিজ্ঞেস কোরো না।»
- «এক ঘণ্টা ধরে গাড়ি চলছে আর বাঁকটার পর থেকে আমরা কেউ কথা বলিনি। আমিই কারণ না বলে আগেভাগে বেরোনোর পথটা নিই।»
- «রাত দুটোয় তুমি আমাকে ফায়ার এস্কেপে পাও। বলি, ঘুম আসছিল না। আসল কারণটা ওটা নয়।»
লুকিয়ে রাখা জিনিসটাই ইঞ্জিন: সেটা তাকে চাপ দেওয়ার কারণ দেয়, আর তোমাকে পরে খেলার একটা তাস। যে ছাঁচ এড়াতে হবে: «তুমি একজন ভ্যাম্পায়ার লর্ড, আমি তোমার ভৃত্য, শুরু করো» — ওটা একটা ভিত্তি, দৃশ্য নয়।
দৃশ্যের বাইরে না গিয়ে মাঝপথে চালনা করা
কোনো উত্তর সরে গেলে সহজাত প্রবৃত্তি হলো একটা নির্দেশ লেখা। একবার কাজ করে, কিন্তু প্রতিবার দাম দিতে হয়: নির্দেশটা কথোপকথনেই থেকে যায়, আর মঞ্চ-নির্দেশে ভরা context model-কে শেখায় যে এটা একটা দৃশ্য নিয়ে আলোচনা।
- কল্পনার ভেতর থেকেই চালাও। ছোট উত্তর চাও? ছোট লেখো — কয়েকবার আদান-প্রদানের মধ্যেই সে তোমার পালার দৈর্ঘ্য নকল করে। কম সায় দেওয়া চরিত্র চাও? এমন কিছু করো যাতে সে আপত্তি করবে।
- বন্ধনীর মধ্যে মন্তব্য কম ব্যবহার করো: «[চরিত্রের বাইরে: প্রতি উত্তরে একটা ছোট অনুচ্ছেদ।]» একটা কাজ করে; চারটে দৃশ্যটাকে প্রোডাকশন মিটিং বানিয়ে ফেলে।
- উত্তর পুনরায় তৈরি না করে সম্পাদনা করো — যে হাতিয়ার কেউ ব্যবহার করে না, অথচ যার জোর সবচেয়ে বেশি। যা রেখে দাও তা-ই হয়ে ওঠে পরের উত্তরের অনুকরণ করার উদাহরণ: তিন অনুচ্ছেদ ছেঁটে ভালোটুকু রাখো, পরের উত্তর ওই আকারেই আসবে। আর দৃশ্য দু'দিকে যেতে পারলে তর্ক না করে ফর্ক করো।
ম্যাড়ম্যাড়ে হয়ে গেলে, সেটা তিনটের একটা
- কোনো খোলা প্রশ্ন আর বাকি নেই: দু'পালা আগেই টানটা তুমি মিটিয়ে ফেলেছ। ঘরের বাইরে থেকে কিছু আনো — একটা টোকা, একটা মেসেজ, একটা সময়সীমা।
- তুমি সবকিছুতে সায় দিচ্ছ, তাই তার একমাত্র চাল হলো উল্টো সায় দেওয়া। চরিত্রের ভেতর থেকে একবার দ্বিমত করো, আর সত্যিই মন থেকে করো।
- context তোমার নির্দেশে ভরে গেছে। তার সঙ্গে নতুন একটা সূত্র শুরু করো: মেমোরি তথ্যগুলো পার করিয়ে নেয়, মঞ্চ-নির্দেশগুলো নয়।
আর আটবার নয়, দু'বার পুনরায় তৈরি করো। দু'বার ঘুঁটি ফেলেও যদি নিস্তেজ আসে, সমস্যাটা ঘুঁটির উজানে।
স্লাইডারগুলো, সহজ ভাষায়
- Temperature হলো কম স্পষ্ট পরের শব্দটা নিতে model কতটা রাজি। কম হলে সঙ্গতিপূর্ণ আর একটু নিরস; বেশি হলে উদ্ভাবনী মনে হয়, যতক্ষণ না সে এক পাতা আগে বলা একটা নাম ভুলে যায়।
- Top P বাছাইয়ের আগে সম্ভাব্য বিকল্পগুলোর মধ্যে ক্ষেত্রটা সংকীর্ণ করে — জোরে নামালে সে নির্ভরযোগ্য আর সামান্য রোবোটিক হয়, আর এটা temperature-এর চেয়ে পরিষ্কার একটা ব্রেক।
- রিপিটিশন আর ফ্রিকোয়েন্সি পেনাল্টি ইতিমধ্যে ব্যবহার হওয়া শব্দ থেকে দূরে ঠেলে: একটু হলে একটা বিশেষণে আটকে থাকা চরিত্র সেরে যায়, বেশি হলে সে তোমার নাম বলাই ছেড়ে দেয়, কারণ সেটাও একটা পুনরাবৃত্ত শব্দ।
সৎ সারকথা: স্লাইডার বদলায় বুনট, বিচারবুদ্ধি নয় — একটা বাক্য কেমন শোনায়, কিছু বাজি আছে কি না তা নয়। তিনটে বিশেষণে আটকে থাকা চরিত্র বেশি temperature-এ গভীর হয় না।
prompt যা ঠিক করতে পারে না
- সে model-কে মনে রাখাতে পারে না। «মনে রেখো আমি রাতে কাজ করি» এই কথোপকথনটুকু টেকে আর পরের সপ্তাহে চলে যায়, যদি না সেটা লিখে রাখা হয়।
- সে কোনো নিয়ম চিরকাল ধরে রাখতে পারে না: যা তুমি কয়েক পালা পরপর আবার বলো, তা পারসোনায় বা মেমোরিতে থাকার কথা।
- তিনটে বিশেষণে গড়া চরিত্রকে সে বাঁচাতে পারে না, আর কনটেন্টের সীমাও সরায় না: প্রাপ্তবয়স্ক রোলপ্লে bot-এ ১৮+ নিশ্চিতকরণের পেছনে থাকে।
যেখানে প্রতিদ্বন্দ্বী ভালো, সোজাসুজি: শর্তসাপেক্ষ লোরসহ দীর্ঘ কাহিনির জগতের জন্য — এমন এন্ট্রি, যা কেবল কোনো জায়গা বা নাম এলে সক্রিয় হয় — SillyTavern-এ আছে lorebook আর নির্দিষ্ট গভীরতায় ঢোকানো author's note, আমাদের দুটোর একটাও নেই। একটা কার্ড তার পারসোনা, প্রথম মেসেজ আর স্যাম্পলিংসহ ইমপোর্ট হয়; lorebook হয় না। তোমার কাজের ধরন এমন হলে ওটাই ভালো হাতিয়ার, আর Chub ও Janitor-এ আমাদের ক্যাটালগের চেয়ে অনেক বড় কার্ড-সংগ্রহ আছে।
দশ মিনিটের পরীক্ষা
- যে চরিত্র ম্যাড়ম্যাড়ে হয়ে গেছে, তার পারসোনা খোলো। একটা স্ববিরোধ আর একটা জিনিস যা নিয়ে সে কখনও কথা বলে না, যোগ করো — দুটো বাক্য।
- তার প্রথম মেসেজ একটা দৃশ্য হিসেবে নতুন করে লেখো: জায়গা, সময়, এইমাত্র ঘটা কিছু, তার কণ্ঠে একটা লাইন। প্রশ্নচিহ্নগুলো মুছে ফেলো।
- তার মেমোরি খোলো আর যে লাইনটা ভুল সেটা মুছে দাও। সাধারণত একটা থাকেই।
- নতুন একটা সূত্র শুরু করো আর ওপরের শুরুগুলোর একটা পাঠাও।
- কোনো উত্তর আশি শতাংশ ঠিক হলে পুনরায় তৈরি না করে সম্পাদনা করে ছোট করো, আর পরেরটা লক্ষ করো।
দশ মিনিট সম্পাদনার পর, একটাও নতুন টেমপ্লেট ছাড়া, সে যদি ভালো হয়, তাহলে তুমি যা খুঁজছিলে তার উত্তর এটাই। bot-টা @talaforge_bot; এটা Telegram-এ খোলে, ইনস্টল করার কিছু নেই আর সাইন আপ করারও কিছু নেই।