ساختار یک درخواست خوب
در فصل ۲.۴ spec نوشتی — آن برای خودت بود. prompt آن است که به ایجنت میدهی. و نکته این است که یک prompt خوب معمولاً ترجمهی مستقیم همان spec است.
چهار تکه دارد:
- کار — دقیقاً چه میخواهی. با فعل، مشخص.
- context — چه چیزی باید بداند تا بتواند انجامش دهد. چرا این کار را میکنی، برای چه کسی، چه محدودیتی هست.
- قالب خروجی — نتیجه چه شکلی باشد. فهرست؟ جدول؟ چند خط؟
- مثال — یک نمونه از خروجیِ درست، اگر داری.
مقایسه کن. ضعیف: «این فایل را خلاصه کن.» قوی: «این فایل فروش را برای جلسهی مدیران خلاصه کن. آنها فقط سه چیز میخواهند: جمع فروش، بهترین محصول، و هر چیزی که غیرعادی است. حداکثر پنج خط، بدون مقدمه. اگر عددی مشکوک بود، بهجای حدسزدن جدا بنویسش.»
دومی طولانیتر است، ولی طولانیبودن مزیتش نیست — مشخصبودنش است. هر جملهی اضافه یک ابهام را میبندد.
مثال دادن
قویترین ابزارِ کماستفاده. اگر یک نمونه از خروجیِ دلخواهت داری، دادنش از هر توضیحی مؤثرتر است.
چرا؟ چون خیلی از چیزهایی که میخواهی را نمیشود توصیف کرد ولی میشود نشان داد: لحن، سطح جزئیات، اینکه چقدر رسمی باشد، اینکه عددها چطور نوشته شوند.
سه شکل که خوب جواب میدهند:
- یک خروجی کامل از دفعهی قبل — «مثل این، برای این ماه».
- یک نمونهی کوچک ساختگی — اگر خروجی واقعی نداری، خودت پنج خط بنویس که نشان دهد شکلش چه باشد.
- نمونهی بد در کنار خوب — «اینطور نه، اینطور بله». مرزها را خیلی سریع روشن میکند.
و اگر خروجیِ اولی که گرفتی تقریباً درست بود، همان را اصلاح کن و بهعنوان مثال برگردانش: «مثل این، ولی…».
نقش و لحن و قالب خروجی
سه تنظیم کوچک که اثر بزرگ دارند:
نقش. «تو یک حسابدار باتجربهای» یا «تو ویراستار یک مجلهی فنی هستی». این کار سطح جزئیات و واژگان را جابهجا میکند. مفید است — ولی جادویی نیست و جای context مشخص را نمیگیرد.
لحن و مخاطب. بگو برای چه کسی است: «برای مدیری که وقت ندارد» با «برای همکاری که باید بتواند تکرارش کند» دو متن کاملاً متفاوت میسازند.
قالب خروجی. صریح بگو. «فهرست نقطهای»، «جدول با این سه ستون»، «حداکثر پنج خط»، «بدون مقدمه و نتیجهگیری». آن آخری مخصوصاً وقت زیادی نجات میدهد.
و یک تکنیک ساختاری که در متنهای بلند خیلی کمک میکند: تکههای مختلفِ درخواستت را با برچسب از هم جدا کن. مثلاً متنِ اصلی را بین دو خط بگذار و بالایش بنویس «متن:» و پایینتر «کاری که میخواهم:». وقتی درخواست طولانی میشود، این مرزبندی جلوی قاطیشدنِ دستور با داده را میگیرد.
تکرار و اصلاح، بهجای یک ضرب
تصور غلط رایج: prompt خوب یعنی یک متن طولانیِ بینقص که در یک ضرب نوشته شود.
بهخاطر بسپار prompt خوب ساخته میشود، نه نوشته. با یک درخواست ساده شروع کن، خروجی را ببین، و فقط همان چیزی را که کم بود اضافه کن. سه دور کوتاه تقریباً همیشه از یک متن طولانیِ حدسی بهتر جواب میدهد.
دلیلش این است که تا خروجی را ندیدهای، نمیدانی کجا را بد فهمیده. نصف جملههایی که «برای اطمینان» مینویسی، اصلاً لازم نبودند — و context را بیدلیل بزرگ میکنند (فصل ۱.۳).
روشِ عملی: بعد از هر خروجی، یک جمله بپرس از خودت — «چه چیزی کم بود؟» — و فقط همان یک چیز را اضافه کن. بعد دوباره.
کارگاه: از ضعیف تا قوی
یک درخواست واقعی را قدمبهقدم قوی میکنیم. کار: خلاصهی فایل فروش.
دور ۰: «این فایل را خلاصه کن.»
نتیجه: یک متن عمومی که توضیح میدهد CSV چیست و چند عدد پراکنده میدهد.
دور ۱ — کار را مشخص کن: «جمع فروش هر محصول را بده.»
بهتر شد، ولی مرجوعیها را هم حساب کرده.
دور ۲ — قاعده اضافه کن: «…فقط ردیفهای تحویلشده. مرجوعیها
را کم کن.»
درست شد، ولی ردیفهای خرابِ فایل را بیصدا رد کرده.
دور ۳ — ابهام را ببند: «…و هر ردیفی که تاریخ یا تعدادش
خوانده نمیشود را جدا فهرست کن، حدس نزن.»
حالا همان چیزی است که میخواستم.
دور ۴ — قالب: «خروجی: یک جدول با ستون محصول و جمع، و زیرش فهرست ردیفهای مشکوک. بدون مقدمه.»
نگاه کن به مسیر: هر دور یک چیز اضافه شد، و هر کدام جوابِ یک مشکلِ دیدهشده بود، نه یک حدس. اگر میخواستی این چهار تا را از اول بنویسی، احتمالاً دو تایشان به ذهنت نمیرسید و دو تای دیگر لازم نبودند.
ضدالگوهای رایج
- ادب اضافه. «لطفاً اگر ممکن است زحمت بکشید…» جای context را میگیرد و هیچ اثری ندارد. مستقیم بگو چه میخواهی.
- چند کار در یک درخواست. «خلاصه کن و ترجمه کن و یک ایمیل هم بنویس» معمولاً هر سه را متوسط انجام میدهد. جدا بخواه.
- صفت بهجای معیار. «حرفهای بنویس»، «خلاصهی خوب بده». اینها بررسیپذیر نیستند — همان مشکل «تمام شد» در فصل ۲.۴.
- فقط گفتن اینکه چه نکند. «رسمی ننویس» بهتر است به «محاورهای و کوتاه بنویس» تبدیل شود. جهت بده، نه فقط منع.
- دادن همهچیز برای اطمینان. این را در فصل بعد کامل میبینیم — context شلوغ، نتیجه را بدتر میکند نه بهتر.
و قالبهایی که در طول دوره ساخته میشوند — «اول طرح بعد اجرا»، «نقش مخالف»، «تست ابهام» — یکجا در کتابخانهی الگو جمع شدهاند؛ فرقشان با prompt جادویی این است که هر کدام به روش و درسِ خودش وصل است.
تمرین (ساختنی + توضیحی)
این prompt خراب را درست کن و بنویس هر تغییر چه اثری داشت.
لطفاً اگر امکانش هست این فایل رو یه نگاه بنداز و یه گزارش حرفهای و کامل ازش بده که همهچیز توش باشه، ممنون.
روی فایل نمونهها/داده/فروش-۱۴۰۵.csv اجرایش کن، بعد
در چهار دور بهترش کن — هر دور فقط یک تغییر. بعد از هر دور
بنویس چه چیزی در خروجی عوض شد.
حداقل سه ضدالگوی بخش ۲.۶.۶ در این متن هست. کدامها؟
پاسخنامه — یک نمونهی خوب را ببین
ضدالگوها: ادب اضافه («لطفاً اگر امکانش هست»، «ممنون») · صفت بهجای معیار («حرفهای»، «کامل») · و «همهچیز توش باشه» که در واقع یعنی هیچچیز مشخص نیست.
دور ۱: «جمع فروش هر محصول را از این فایل بده.» ← از یک متن پراکنده به سه عدد مشخص رسید.
دور ۲: «فقط ردیفهای تحویلشده.» ← دیدم مرجوعیها را هم حساب کرده بود؛ عددها کم شدند و درست شدند.
دور ۳: «ردیفهایی که تاریخ یا تعدادشان خوانده نمیشود را جدا فهرست کن، حدس نزن.» ← سه ردیف بیرون آمد که در دو دور قبل بیصدا رد شده بودند. این را در خروجی ندیده بودم — با مقایسهی تعداد ردیفها فهمیدم.
دور ۴: «خروجی: جدول محصول/جمع، زیرش فهرست مشکوکها، بدون مقدمه.» ← دیگر لازم نبود از لای متن عددها را دربیاورم.
چرا این جواب خوب است: دور سوم از یک مشاهده آمده (تعداد ردیفها نمیخواند)، نه از حدس. همان چیزی که بخش ۲.۶.۴ میگوید.
برای عمق بیشتر
- Prompting best practices — مستندات رسمی (انگلیسی). خلاصهی فارسی: بخش «General principles» همان ترتیبی را دارد که این فصل دنبال کرده، و ترتیبش تصادفی نیست: روشن و مستقیم بودن اول · بعد افزودن context · بعد استفادهی مؤثر از مثال · بعد ساختاردادن با برچسب · و بعد دادن نقش. یعنی همانطور که در ۲.۶.۱ گفتیم، مؤثرترین تکنیک عجیبترینشان نیست. صفحه بخش جداگانهای هم برای شکستن کارهای پیچیده به چند درخواست پشتسرهم دارد — همان چیزی که در فصل ۲.۵ به آن رسیدیم.