اصول پایه پرامپتنویسی
نویسنده : مجتبی نایب پور
تاریخ : 1404/03/19
اصول پایه پرامپتنویسی برای تعامل مؤثر با مدلهای هوش مصنوعی مانند من عبارتند از:
- وضوح و دقت :
پرامپت را واضح و مشخص بنویسید. از کلمات دقیق استفاده کنید و از ابهام بپرهیزید.
مثال: به جای «یه داستان بگو»، بنویسید «یک داستان کوتاه علمی-تخیلی درباره سفر در زمان بنویس».
- ارائه زمینه (Context) :
اطلاعات کافی درباره موضوع، هدف یا مخاطب پرامپت ارائه دهید.
مثال: «یک ایمیل رسمی برای دعوت از مدیر یک شرکت به کنفرانس فناوری بنویس».
- دستورالعملهای خاص :
نوع پاسخ مورد نظر (مثل tone، طول، فرمت) را مشخص کنید.
مثال: «یک پاراگراف 100 کلمهای با لحن دوستانه درباره فواید ورزش صبحگاهی بنویس».
- تقسیمبندی وظایف :
برای کارهای پیچیده، پرامپت را به مراحل کوچکتر تقسیم کنید.
مثال: «ابتدا فواید مدیتیشن را فهرست کن، سپس یک برنامه روزانه برای مبتدیان پیشنهاد بده».
- استفاده از مثال :
اگر خروجی خاصی مدنظر دارید، نمونهای ارائه دهید.
مثال: «یک شعر چهارخطی مثل این بنویس: ‘در شب تار، ستاره تابید / قلب من از عشق، آرام خوابید’».
- اجتناب از پرامپتهای بیش از حد کلی یا مبهم :
پرامپتهای خیلی باز ممکن است به پاسخهای غیرمرتبط منجر شوند.
مثال: به جای «همهچیز درباره تاریخ» بنویسید «خلاصهای از علل سقوط امپراتوری روم در 200 کلمه».
- تکرار و اصلاح :
اگر پاسخ مطلوب نبود، پرامپت را اصلاح کنید و جزئیات بیشتری اضافه کنید.
مثال: «پاسخ قبلی خیلی کوتاه بود، لطفاً توضیح مفصلتری با مثال ارائه کن».
- لحن و زبان مناسب :
لحن پرامپت را با هدف خود هماهنگ کنید (رسمی، غیررسمی، طنزآمیز).
مثال: «با لحن طنز، توضیح بده چرا گربهها از خیار میترسند».
در ادامه چند مثال از پرامپتهای خوب و بد برای نشان دادن اصول پرامپتنویسی آورده شده است:
# مثال 1: درخواست داستان
- پرامپت بد : «یه داستان بگو»
- مشکل: مبهم، بدون جزئیات درباره ژانر، طول یا موضوع.
- پرامپت خوب : «یک داستان کوتاه 200 کلمهای در ژانر فانتزی درباره یک جادوگر جوان که برای اولین بار طلسم اجرا میکند بنویس. لحن داستان هیجانانگیز باشد.»
- دلیل: مشخص، با جزئیات درباره ژانر، طول، شخصیت و لحن.
# مثال 2: درخواست توضیح علمی
- پرامپت بد : «درباره انرژی بگو»
- مشکل: بیش از حد کلی، مشخص نیست چه نوع اطلاعاتی مدنظر است.
- پرامپت خوب : «انرژی تجدیدپذیر را در 150 کلمه توضیح بده و سه مثال از منابع انرژی تجدیدپذیر (مثل خورشیدی) همراه با مزایای آنها ذکر کن.»
- دلیل: واضح، با ساختار مشخص و جزئیات کافی.
# مثال 3: درخواست ایمیل
- پرامپت بد : «یه ایمیل بنویس»
- مشکل: بدون زمینه، هدف یا مخاطب.
- پرامپت خوب : «یک ایمیل رسمی 100 کلمهای برای دعوت از مدیر شرکت X به یک کنفرانس فناوری در تاریخ 20 خرداد 1404 بنویس. محل کنفرانس تهران، هتل استقلال است. لحن حرفهای باشد.»
- دلیل: شامل زمینه، مخاطب، هدف، و جزئیات خاص.
# مثال 4: درخواست خلاقانه
- پرامپت بد : «یه شعر بنویس»
- مشکل: بدون سبک، موضوع یا ساختار.
- پرامپت خوب : «یک شعر چهارخطی با قافیه درباره زیبایی پاییز بنویس، به سبک شعر کلاسیک فارسی و با لحن آرام و شاعرانه.»
- دلیل: سبک، موضوع، ساختار و لحن مشخص شدهاند.
تکنیکهای پیشرفته پرامپتنویسی
تکنیکهای پیشرفته پرامپتنویسی (Prompt Engineering) برای تعامل مؤثر با مدلهای هوش مصنوعی مانند من، شامل استراتژیهایی است که ورودیها را بهینه کرده و پاسخهای دقیقتر، مرتبطتر و خلاقانهتری دریافت میکنند. در ادامه تکنیکهای پیشرفته به زبان فارسی توضیح داده شده است:
# 1. پرامپتهای زمینهمحور (Contextual Prompts)
- توضیح : ارائه اطلاعات زمینهای دقیق به مدل کمک میکند تا پاسخهایی متناسب با نیاز شما تولید کند.
- مثال : به جای «یک داستان بنویس»، بنویسید: «یک داستان کوتاه علمی-تخیلی درباره یک فضانورد که در سیارهای ناشناخته گم شده، با لحن هیجانانگیز و تمرکز بر احساسات او بنویس.»
- نکته : جزئیات خاص (مثل لحن، سبک، یا مخاطب) را مشخص کنید.
# 2. پرامپتهای چندمرحلهای (Chain-of-Thought Prompting)
- توضیح : از مدل بخواهید گامبهگام فکر کند تا به پاسخ برسد. این روش برای مسائل پیچیده یا تحلیلی مناسب است.
- مثال : «برای حل مسئله ریاضی زیر، ابتدا مسئله را تجزیه کن، سپس هر گام را توضیح بده و در نهایت جواب نهایی را ارائه کن: معادله 2x + 3 = 11 را حل کن.»
- مزیت : پاسخها منطقیتر و قابلپیگیری میشوند.
# 3. پرامپتهای نقشمحور (Role-Based Prompts)
- توضیح : مدل را در قالب یک نقش خاص (مثل معلم، وکیل، یا نویسنده) قرار دهید تا پاسخها حرفهایتر شوند.
- مثال : «بهعنوان یک وکیل باتجربه، یک قرارداد اجارهنامه استاندارد برای یک آپارتمان مسکونی تدوین کن.»
- نکته : نقش را با صراحت تعریف کنید تا مدل لحن و محتوای مناسب را اتخاذ کند.
# 4. پرامپتهای با ساختار مشخص (Structured Prompts)
- توضیح : ورودی را بهصورت قالببندیشده (مثل لیست، جدول، یا سؤالات شمارهدار) ارائه دهید تا پاسخها سازمانیافته باشند.
- مثال : «یک برنامه تمرینی ورزشی برای یک هفته طراحی کن. برای هر روز: 1) نوع تمرین، 2) مدتزمان، 3) سطح شدت را مشخص کن.»
- مزیت : پاسخها خواناتر و دقیقتر خواهند بود.
# 5. پرامپتهای خود-اصلاحی (Self-Correcting Prompts)
- توضیح : از مدل بخواهید پاسخ خود را بررسی و بهبود دهد.
- مثال : «یک ایمیل رسمی برای دعوت به جلسه بنویس. سپس آن را بازبینی کن و اگر نیاز به بهبود داشت، نسخه بهتری ارائه بده.»
- کاربرد : برای تولید محتوایی با کیفیت بالا و بدون خطا.
# 6. پرامپتهای شرطی (Conditional Prompts)
- توضیح : شرایط خاصی را برای پاسخ تعیین کنید تا خروجی دقیقتر باشد.
- مثال : «اگر مخاطب یک کودک ۸ ساله است، یک توضیح ساده درباره سیاهچالهها بده. اگر مخاطب یک دانشجوی فیزیک است، توضیح علمی دقیق ارائه کن.»
- نکته : شرایط را واضح بیان کنید.
# 7. پرامپتهای خلاقانه با محدودیت (Constrained Creative Prompts)
- توضیح : با اعمال محدودیتهای خلاقانه، پاسخهای منحصربهفردی دریافت کنید.
- مثال : «یک شعر ۴ خطی درباره پاییز بنویس که هر خط با کلمه 'برگ' شروع شود.»
- مزیت : خروجیها خلاقتر و متمرکزتر میشوند.
# 8. پرامپتهای تکرارشونده (Iterative Refinement)
- توضیح : پس از دریافت پاسخ اولیه، پرامپت را اصلاح کنید تا نتیجه بهبود یابد.
- مثال اولیه : «یک لوگو برای یک کافه طراحی کن.»
- مثال اصلاحشده : «توضیحات لوگو را بازبینی کن و جزئیات بیشتری درباره رنگها (مثل قهوهای و کرم) و سبک مینیمال اضافه کن.»
- نکته : این روش برای پروژههای پیچیده بسیار مؤثر است.
# 9. پرامپتهای معکوس (Reverse Prompting)
- توضیح : به جای درخواست مستقیم پاسخ، از مدل بخواهید سؤال یا مشکلی را برای شما ایجاد کند.
- مثال : «یک سؤال چالشبرانگیز درباره نظریه نسبیت عام برای یک دانشجوی فیزیک طراحی کن.»
- کاربرد : برای آموزش یا تولید محتوای تعاملی.
# 10. پرامپتهای با نمونه (Few-Shot Prompting)
- توضیح : چند نمونه از آنچه انتظار دارید ارائه دهید تا مدل سبک و ساختار را درک کند.
- مثال : «ترجمه زیر را به فارسی انجام بده. نمونه: انگلیسی: The sky is blue. فارسی: آسمان آبی است. حالا ترجمه کن: The sun is shining.»
- مزیت : مدل پاسخهایی مشابه نمونهها تولید میکند.
# نکات کلی:
- وضوح و دقت : پرامپتها را واضح و بدون ابهام بنویسید.
- آزمایش و خطا : پرامپتهای مختلف را امتحان کنید تا بهترین نتیجه را بگیرید.
- تکرار : اگر پاسخ اولیه رضایتبخش نبود، پرامپت را اصلاح کنید.
- زبان طبیعی : از لحن محاورهای یا رسمی بسته به نیاز استفاده کنید.
روش تدریس:** ارائه مثالهای عملی، تمرین گروهی، و بازخورد زنده
نقش رابطهای کاربری در تعامل با ایجنتها
رابطهای کاربری (UI) نقش کلیدی در تعامل مؤثر و کارآمد کاربران با ایجنتهای هوشمند (مانند چتباتها، دستیارهای مجازی یا سیستمهای خودکار) ایفا میکنند. این نقشها را میتوان بهصورت زیر خلاصه کرد:
1. تسهیل ارتباط : رابط کاربری بهعنوان واسطهای بین کاربر و ایجنت عمل میکند، امکان وارد کردن ورودیها (متن، صدا، یا دستورات) و دریافت پاسخها را به شکلی ساده و قابلفهم فراهم میکند.
2. افزایش دسترسیپذیری : یک UI خوب با طراحی بصری واضح و کاربرپسند، حتی برای کاربران غیرفناوری، تعامل با ایجنت را آسانتر میکند.
3. شخصیسازی تجربه : رابطهای کاربری میتوانند بر اساس نیازها و ترجیحات کاربر (مانند زبان، حالت تاریک، یا تنظیمات خاص) تنظیم شوند، که تعامل را دلپذیرتر میکند.
4. مدیریت پیچیدگی : ایجنتها ممکن است قابلیتهای پیچیدهای داشته باشند؛ UI این پیچیدگی را سادهسازی کرده و گزینهها را بهصورت سازمانیافته ارائه میدهد.
5. بازخورد و شفافیت : رابطهای کاربری از طریق نمایش وضعیت (مثل "در حال پردازش") یا ارائه پیشنهادات، به کاربر کمک میکنند تا عملکرد ایجنت را بهتر درک کند.
6. پشتیبانی چندکاناله : UIهای مدرن امکان تعامل از طریق کانالهای مختلف (وب، اپلیکیشن موبایل، صدا) را فراهم میکنند، که انعطافپذیری را افزایش میدهد.
بهطور خلاصه، رابط کاربری بهعنوان پل ارتباطی، تجربه تعامل با ایجنتها را ساده، شهودی و مؤثر میسازد و تأثیر مستقیمی بر رضایت کاربر و کارایی سیستم دارد.
طراحی پرامپت برای رابطهای کاربری
طراحی پرامپت برای رابطهای کاربری (UI) نیازمند توجه به وضوح، سادگی و هدایت کاربر به سمت تعامل مؤثر است. در ادامه، یک راهنمای جامع برای طراحی پرامپتهای UI به همراه مثالها ارائه میشود:
---
### اصول طراحی پرامپت برای رابطهای کاربری
1. وضوح و سادگی : پرامپت باید کوتاه، قابل فهم و بدون ابهام باشد.
2. هدفمحور بودن : پرامپت باید کاربر را به انجام یک اقدام مشخص هدایت کند.
3. زمینهمحور بودن : پرامپت باید با توجه به زمینه (Context) و نیاز کاربر طراحی شود.
4. لحن مناسب : لحن پرامپت باید با مخاطب (رسمی، دوستانه، حرفهای) همخوانی داشته باشد.
5. اجتناب از اصطلاحات پیچیده : از زبان ساده و قابل درک برای همه کاربران استفاده کنید.
6. ارائه بازخورد : پرامپت باید به کاربر نشان دهد که چه اتفاقی در انتظار اوست (مثلاً نتیجه اقدام).
---
### انواع پرامپتهای UI
1. پرامپتهای اطلاعرسانی :
- برای ارائه اطلاعات یا تأیید یک اقدام.
- مثال: «فایل شما با موفقیت آپلود شد. آیا میخواهید فایل دیگری اضافه کنید؟»
- نکته: از زبان مثبت و اطمینانبخش استفاده کنید.
2. پرامپتهای ورودی کاربر :
- برای درخواست اطلاعات از کاربر (مثل فرمها).
- مثال: «لطفاً نام و ایمیل خود را وارد کنید تا حساب کاربری شما ساخته شود.»
- نکته: مشخص کنید چه اطلاعاتی نیاز است و چرا.
3. پرامپتهای تصمیمگیری :
- برای تأیید یا انتخاب یک گزینه توسط کاربر.
- مثال: «آیا مطمئن هستید که میخواهید این فایل را حذف کنید؟ این اقدام قابل بازگشت نیست.»
- نکته: گزینهها (مثل «بله» یا «خیر») را واضح و برجسته کنید.
4. پرامپتهای خطا :
- برای اطلاعرسانی درباره خطا و ارائه راهحل.
- مثال: «ایمیل وارد شده معتبر نیست. لطفاً یک ایمیل صحیح وارد کنید.»
- نکته: لحن سرزنشآمیز نداشته باشید و راهحل ارائه دهید.
5. پرامپتهای راهنما :
- برای هدایت کاربر در استفاده از رابط.
- مثال: «برای شروع، روی دکمه «ایجاد پروژه جدید» کلیک کنید.»
- نکته: در مراحل اولیه یا برای کاربران جدید بسیار مفید است.
---
### مراحل طراحی پرامپت
1. شناسایی هدف :
- پرامپت چه مشکلی را حل میکند؟ (مثلاً تکمیل فرم، تأیید حذف، راهنمایی)
2. شناخت کاربر :
- سطح دانش و تجربه کاربر چیست؟ (مبتدی، حرفهای)
- لحن و زبان را بر اساس کاربر تنظیم کنید.
3. ایجاد ساختار :
- پیام اصلی : چه چیزی باید منتقل شود؟
- اقدام مورد انتظار : کاربر چه کاری باید انجام دهد؟
- نتیجه : پس از اقدام چه اتفاقی میافتد؟
- مثال: «لطفاً رمز عبور خود را وارد کنید (پیام). روی «تأیید» کلیک کنید (اقدام). حساب شما فعال خواهد شد (نتیجه).»
4. آزمایش و بهبود :
- پرامپت را با کاربران واقعی تست کنید.
- بازخورد بگیرید و پیچیدگیها را حذف کنید.
---
### مثالهای عملی
1. پرامپت فرم ثبتنام :
- بد: «وارد کردن اطلاعات کاربری الزامی است.»
- خوب: «نام، ایمیل و رمز عبور خود را وارد کنید تا ثبتنام شما کامل شود.»
2. پرامپت تأیید حذف :
- بد: «حذف؟»
- خوب: «آیا میخواهید این پروژه را حذف کنید؟ این اقدام قابل بازگشت نیست. [تأیید / لغو]»
3. پرامپت خطا در ورود :
- بد: «خطا!»
- خوب: «رمز عبور اشتباه است. دوباره تلاش کنید یا روی «فراموشی رمز» کلیک کنید.»
4. پرامپت راهنما برای کاربر جدید :
- بد: «شروع کنید.»
- خوب: «خوش آمدید! برای ایجاد اولین پروژه، روی دکمه «پروژه جدید» در بالا کلیک کنید.»
---
### نکات پیشرفته
- شخصیسازی : از نام کاربر یا اطلاعات مرتبط استفاده کنید.
- مثال: «علی، برای تکمیل پروفایل خود، یک عکس آپلود کنید.»
- پشتیبانی از چند زبان : پرامپتها را برای زبانهای مختلف بهینه کنید.
- دسترسیپذیری (Accessibility) :
- از متنهای واضح برای صفحهخوانها (Screen Readers) استفاده کنید.
- کنتراست مناسب برای دکمهها و متنها در نظر بگیرید.
- انیمیشن و جلوههای بصری : پرامپتها را با انیمیشنهای ظریف (مثل محو شدن) جذابتر کنید، اما زیادهروی نکنید.
---
------- ابزارهای پیشنهادی برای طراحی پرامپت
- Figma/Adobe XD : برای طراحی و پروتوتایپ رابطهای کاربری.
- Chatbot Flow Builders (مثل Dialogflow) : برای شبیهسازی پرامپتهای مکالمهای.
- A/B Testing Tools (مثل Optimizely) : برای تست نسخههای مختلف پرامپت.
طراحی یک پرامپت برای یک رابط کاربری فرضی
برای طراحی یک پرامپت (Prompt) برای یک رابط کاربری فرضی، ابتدا باید هدف و نوع تعامل کاربر با رابط کاربری مشخص شود. فرض میکنیم این رابط کاربری برای یک دستیار هوش مصنوعی است که به کاربران در انجام وظایف روزمره مانند برنامهریزی، جستجو، یا مدیریت وظایف کمک میکند. پرامپت باید واضح، کاربرپسند و انعطافپذیر باشد تا بتواند ورودیهای متنوع کاربران را مدیریت کند.
### پرامپت پیشنهادی:
**"سلام! من دستیار هوشمند شما هستم. لطفاً بگویید چه کاری میخواهید انجام دهید یا چه اطلاعاتی نیاز دارید. مثلاً: 'یک برنامه روزانه برای فردا تنظیم کن'، 'نزدیکترین رستوران را پیدا کن' یا 'یادآوری برای جلسه فردا ساعت ۱۰ صبح تنظیم کن'."**
### توضیحات طراحی:
1. **لحن دوستانه و دعوتکننده**: استفاده از "سلام" و "دستیار هوشمند شما" حس خوشآمدگویی ایجاد میکند.
2. **وضوح در هدف**: پرامپت به کاربر میگوید که این رابط برای کمک به انجام وظایف یا یافتن اطلاعات است.
3. **ارائه مثالهای مشخص**: مثالها به کاربر کمک میکنند تا بفهمد چه نوع درخواستهایی میتواند مطرح کند.
4. **انعطافپذیری**: پرامپت به کاربر اجازه میدهد درخواستهای متنوعی (از برنامهریزی تا جستجو) مطرح کند.
5. **کوتاه و مختصر**: پرامپت طولانی نیست و اطلاعات ضروری را سریع منتقل میکند.
### بهبودهای احتمالی:
- **شخصیسازی**: اگر رابط کاربری به نام کاربر دسترسی دارد، میتوان پرامپت را شخصیتر کرد، مثلاً: "سلام [نام کاربر]! چطور میتوانم به شما کمک کنم؟"
- **پشتیبانی چندزبانه**: اگر رابط برای کاربران بینالمللی طراحی شده، پرامپت میتواند گزینه تغییر زبان داشته باشد.
- **تعامل صوتی**: اگر رابط صوتی است، پرامپت میتواند کوتاهتر و محاورهایتر باشد: "هی! بگو چی نیاز داری، من آمادهام!"