ساختار یک پرامپت خوب
خیلی ها وقتی درباره پرامپت نویسی می شنوند، تصور می کنند باید یک فرمول پیچیده، چند ده خط دستور یا مجموعه ای از کلمات جادویی بلد باشند.
در عمل، بخش زیادی از کیفیت یک پرامپت به یک موضوع ساده برمی گردد:
آیا مدل دقیقا می فهمد شما چه می خواهید، در چه شرایطی می خواهید، چه محدودیت هایی دارید و خروجی باید چه شکلی باشد؟
برای بیشتر کارهای روزمره، همین چهار بخش کافی است:
- هدف
- زمینه
- محدودیت
- شکل خروجی
اگر این چهار مورد را خوب مشخص کنید، معمولا کیفیت پاسخ به شکل محسوسی بهتر می شود.
1. هدف: دقیقا چه می خواهید؟
اولین بخش پرامپت باید جواب یک سوال ساده را بدهد:
مدل باید چه کاری برای من انجام دهد؟
مثلا این درخواست خیلی مبهم است:
درباره هوش مصنوعی بنویس.
مدل نمی داند مقاله می خواهید، کپشن اینستاگرام می خواهید، توضیح آموزشی می خواهید یا یک متن تبلیغاتی.
نسخه بهتر:
یک توضیح ساده درباره هوش مصنوعی برای فردی بنویس که هیچ پیش زمینه فنی ندارد.
حالا هدف واضح تر شده است.
هرچه فعل اصلی درخواست دقیق تر باشد، مدل بهتر می تواند مسیر پاسخ را انتخاب کند.
به جای «کمکم کن»، بگویید:
- مقایسه کن
- خلاصه کن
- نقد کن
- بازنویسی کن
- ایده بده
- دسته بندی کن
- برنامه بساز
- ایرادها را پیدا کن
- متن را کوتاه کن
- از روی این اطلاعات تصمیم پیشنهادی بده
2. زمینه: مدل چه چیزی باید بداند؟
مدل ذهن شما را نمی خواند.
ممکن است شما اطلاعاتی را کاملا بدیهی بدانید، اما مدل هیچ اطلاعی از آن نداشته باشد.
فرض کنید می نویسید:
برای من یک متن معرفی بنویس.
معرفی چه چیزی؟ برای چه کسی؟ در چه فضایی؟ با چه هدفی؟
اگر کمی زمینه اضافه کنیم، درخواست بسیار بهتر می شود:
من یک مدرس هوش مصنوعی هستم و مخاطب من افراد غیر برنامه نویس هستند. می خواهم برای صفحه معرفی یک وبینار رایگان، یک متن کوتاه و قابل فهم بنویسی که مخاطب را با موضوع وبینار آشنا کند.
این اطلاعات به مدل کمک می کند بفهمد:
- شما چه کسی هستید
- مخاطب چه کسی است
- متن کجا استفاده می شود
- هدف تجاری یا آموزشی چیست
چه نوع زمینه ای مفید است؟
بسته به کار، زمینه می تواند شامل این موارد باشد:
- مخاطب
- سطح دانش مخاطب
- صنعت یا حوزه کاری
- هدف نهایی
- اطلاعات قبلی
- نمونه های موجود
- شرایط پروژه
- لحن برند
- ابزار یا پلتفرمی که خروجی در آن استفاده می شود
لازم نیست همیشه همه اینها را بنویسید. فقط اطلاعاتی را بدهید که روی جواب اثر می گذارند.
3. محدودیت: چه چیزهایی نباید اتفاق بیفتد؟
گاهی مهم ترین بخش یک پرامپت چیزی است که نمی خواهید.
مثلا:
یک کپشن برای اینستاگرام بنویس.
ممکن است مدل یک کپشن طولانی با ده هشتگ و لحن تبلیغاتی تولید کند.
اما اگر بگویید:
کپشن حداکثر 120 کلمه باشد، لحن حرفه ای و طبیعی داشته باشد، از عبارت های کلیشه ای مثل «تا آخر ببین» استفاده نکن و هشتگ اضافه نکن.
خروجی خیلی نزدیک تر به چیزی می شود که می خواهید.
محدودیت می تواند درباره هر چیزی باشد:
- طول متن
- لحن
- زبان
- تعداد گزینه ها
- بودجه
- زمان
- فرمت
- سطح فنی
- چیزهایی که نباید گفته شوند
- اطلاعاتی که نباید حدس زده شوند
یک محدودیت بسیار مهم: حدس نزن
برای کارهای حساس می توانید صریحا بنویسید:
اگر اطلاعات کافی نداری، حدس نزن. مشخص کن چه اطلاعاتی کم است.
این جمله جلوی همه خطاها را نمی گیرد، اما رفتار مدل را بهتر جهت می دهد.
4. شکل خروجی: جواب را در چه قالبی می خواهید؟
گاهی پاسخ مدل از نظر محتوا خوب است، اما قابل استفاده نیست.
مثلا شما برای یک جلسه به یک چک لیست نیاز دارید، ولی مدل سه پاراگراف توضیح می دهد.
پس شکل خروجی را از قبل مشخص کنید.
مثلا:
خروجی را در یک جدول با ستون های «کار»، «اولویت» و «زمان تقریبی» بده.
یا:
فقط 5 پیشنهاد بده. برای هر پیشنهاد یک عنوان و یک توضیح یک جمله ای بنویس.
یا:
پاسخ را در سه بخش مشکل، علت و راه حل بنویس.
این کار دو مزیت دارد:
اول اینکه خروجی سریع تر قابل استفاده می شود.
دوم اینکه مدل مجبور می شود اطلاعات را در ساختاری که شما می خواهید مرتب کند.
فرمول ساده
برای بسیاری از درخواست ها می توانید از این الگو استفاده کنید:
هدف: چه کاری انجام بده.
زمینه: این اطلاعات را درباره شرایط من بدان.
محدودیت: این قوانین را رعایت کن.
خروجی: جواب را با این ساختار ارائه کن.
این الگو قرار نیست همیشه چهار خط جدا باشد. می توانید آن را کاملا طبیعی در یک پاراگراف بنویسید.
یک مثال واقعی
فرض کنید درخواست اولیه این است:
برای من یک ایمیل بنویس.
این درخواست تقریبا هیچ اطلاعاتی ندارد.
نسخه بهتر:
برای یکی از مشتریانم یک ایمیل پیگیری بنویس. سه روز پیش پیشنهاد قیمت برایش ارسال کرده ام و هنوز پاسخی نداده است. لحن محترمانه و حرفه ای باشد اما بیش از حد رسمی نباشد. نمی خواهم فشار فروش ایجاد کند. ایمیل حداکثر 120 کلمه باشد و در پایان فقط یک سوال برای گرفتن پاسخ داشته باشد.
بیایید چهار بخش را جدا کنیم:
هدف: نوشتن ایمیل پیگیری
زمینه: پیشنهاد قیمت سه روز قبل ارسال شده و پاسخی نیامده
محدودیت: محترمانه، بدون فشار فروش، حداکثر 120 کلمه
خروجی: ایمیل کامل با یک سوال در پایان
این همان چیزی است که یک پرامپت خوب را از یک درخواست مبهم جدا می کند.
مثال دوم: استفاده از AI برای یادگیری
پرامپت ضعیف:
Docker را به من یاد بده.
پرامپت بهتر:
Docker را برای من توضیح بده. من با Linux آشنا هستم اما تا حالا با Container کار نکرده ام. ابتدا تفاوت Container و Virtual Machine را با یک مثال ساده توضیح بده، بعد مفاهیم Image، Container و Volume را آموزش بده. وارد Kubernetes نشو. پاسخ را مرحله به مرحله و همراه با یک تمرین کوتاه در پایان هر بخش بنویس.
باز هم همان چهار قسمت را می بینیم:
- هدف: آموزش Docker
- زمینه: آشنایی با Linux، ناآشنا با Container
- محدودیت: فعلا Kubernetes نه
- خروجی: آموزش مرحله ای همراه تمرین
آیا باید همیشه پرامپت طولانی بنویسیم؟
خیر.
پرامپت خوب الزاما پرامپت طولانی نیست.
اگر درخواست ساده باشد، یک جمله می تواند کافی باشد:
این متن را بدون تغییر معنی، حدود 30 درصد کوتاه تر کن و لحن حرفه ای آن را حفظ کن.
هدف، محدودیت و خروجی در همان یک جمله مشخص شده است.
مشکل زمانی شروع می شود که یک کار پیچیده را با یک درخواست خیلی کوتاه مطرح می کنیم و انتظار داریم مدل بقیه اطلاعات را خودش حدس بزند.
اصل مهم این است: به اندازه پیچیدگی کار، زمینه و محدودیت اضافه کنید.
اشتباه رایج: نقش بازی کردن را با ساختار اشتباه نگیرید
یکی از توصیه های معروف پرامپت نویسی این است که بنویسید:
تو یک متخصص بازاریابی هستی.
گاهی مشخص کردن نقش مفید است، اما به تنهایی پرامپت را خوب نمی کند.
این پرامپت هنوز ضعیف است:
تو بهترین متخصص بازاریابی دنیا هستی. برای من یک کمپین بساز.
مدل هنوز نمی داند:
- محصول چیست
- مشتری چه کسی است
- بودجه چقدر است
- کانال تبلیغاتی چیست
- موفقیت را با چه معیاری می سنجیم
نقش می تواند کمک کننده باشد، اما جای هدف، زمینه، محدودیت و خروجی را نمی گیرد.
اشتباه رایج دوم: انباشتن دستورهای بی تاثیر
گاهی پرامپت ها تبدیل می شوند به یک دیوار بلند از دستورها:
«خیلی دقیق باش، حرفه ای باش، عمیق فکر کن، بهترین جواب ممکن را بده، خلاق باش، اشتباه نکن...»
بخش زیادی از این جملات اطلاعات واقعی جدیدی به مدل نمی دهند.
به جای اینکه بنویسید «خیلی دقیق باش»، تعریف کنید دقیق بودن یعنی چه:
برای هر ادعا دلیل بیاور و اگر درباره عدد یا واقعیت مطمئن نیستی آن را مشخص کن.
به جای «حرفه ای بنویس»، بگویید:
لحن رسمی اما روان باشد، جمله ها کوتاه باشند و از اصطلاحات تبلیغاتی استفاده نشود.
دستور قابل سنجش از صفت کلی بهتر است.
یک قالب آماده برای استفاده روزمره
می توانید این قالب را ذخیره کنید و هر بار فقط قسمت های داخل کروشه را تغییر دهید:
می خواهم [کار اصلی] را انجام دهی.
زمینه: [اطلاعاتی که برای فهم مسئله لازم است].
مخاطب یا کاربرد خروجی: [مخاطب/محل استفاده].
محدودیت ها: [طول، لحن، زمان، بودجه، موارد ممنوع و ...].
خروجی را به شکل [جدول، لیست، متن، مراحل، JSON و ...] ارائه کن.
اگر اطلاعات مهمی کم است، قبل از نتیجه گیری آن را مشخص کن.
یک تمرین ساده
یک درخواست واقعی که امروز از AI دارید انتخاب کنید.
اول آن را همان طور که معمولا می نویسید ثبت کنید.
بعد چهار سوال زیر را جواب دهید:
- دقیقا چه کاری می خواهم انجام شود؟
- مدل چه اطلاعاتی درباره شرایط من ندارد؟
- چه محدودیت هایی برای جواب مهم هستند؟
- خروجی را دقیقا در چه شکلی می خواهم؟
حالا پرامپت را دوباره بنویسید و دو خروجی را مقایسه کنید.
احتمالا بدون هیچ ترفند عجیب یا «کلمه جادویی»، تفاوت قابل توجهی خواهید دید.
جمع بندی
برای نوشتن یک پرامپت خوب لازم نیست پرامپت نویس حرفه ای باشید.
کافی است قبل از ارسال درخواست، چهار چیز را روشن کنید:
هدف: چه می خواهم؟
زمینه: مدل چه چیزی باید بداند؟
محدودیت: چه قوانینی باید رعایت شوند؟
خروجی: جواب دقیقا چه شکلی باشد؟
اگر پاسخ AI بیش از حد عمومی است، معمولا قبل از اینکه مدل را مقصر بدانید، همین چهار بخش را بررسی کنید.
اغلب مشکل این نیست که مدل «نفهمیده»؛ مشکل این است که ما بخشی از اطلاعاتی را که در ذهنمان بوده، هیچ وقت به آن نگفته ایم.