پرامپت نویسی برای چت‌بات‌ها (Chatbot Prompt Engineering)، طراحی پرامپت‌هایی است که به مدل‌های زبانی بزرگ (Large Language Models یا LLM) کمک می‌کند در یک مکالمه چندنوبتی، پاسخ‌های دقیق، منسجم، هماهنگ با برند و ایمن ارائه دهند. در چت‌بات‌ها، پرامپت نه یک دستور واحد، بلکه یک چارچوب است که هویت، لحن، دامنه دانش، رفتار در شرایط مرزی و نحوه مدیریت مکالمه را تعریف می‌کند. اگر این چارچوب ضعیف باشد، چت‌بات پاسخ‌های متناقض، خارج از موضوع یا نامناسب تولید می‌کند. برای درک این حوزه، ابتدا باید با پرامپت نویسی چیست و پرامپت سیستمی چیست آشنا باشیم.

در پروژه‌هایی که چت‌بات‌های پشتیبانی و فروش را پیاده‌سازی کردیم، مشاهده شد که بزرگ‌ترین منبع خطا، نه ضعف مدل، بلکه ضعف طراحی پرامپت بوده است. چت‌باتی که پرامپت آن مبهم باشد، در مکالمه‌های چندنوبتی سرگردان می‌شود؛ چت‌باتی که پرامپت آن دقیق باشد، حتی با یک مدل متوسط می‌تواند مکالمه‌های پیچیده را به‌خوبی مدیریت کند. اگر با ساختار یک پرامپت مؤثر آشنا هستید، آماده‌اید تا به لایه چت‌بات وارد شوید.

پرامپت نویسی برای چت‌بات‌ها را می‌توان با طراحی دستورالعمل یک اپراتور پشتیبانی مقایسه کرد: اپراتور باید بداند نقش او چیست، چه لحنی دارد، چه پاسخ‌هایی باید بدهد و چه زمانی باید موضوع را به مدیر ارجاع دهد. در سامانه‌های LLM، این دستورالعمل همان پرامپت چت‌بات است. برای مطالعه بیشتر درباره مبانی، صفحه Chatbot در ویکی‌پدیا مرور مفیدی ارائه می‌دهد.

پرامپت نویسی برای چت‌بات چیست؟

پرامپت نویسی برای چت‌بات، فرایند طراحی پرامپتی است که رفتار چت‌بات را در طول مکالمه تعریف می‌کند. این پرامپت، در واقع یک چارچوب عملیاتی است که چند لایه دارد.

لایه‌های پرامپت چت‌بات

  • لایه سیستمی: هویت، لحن و قواعد کلی چت‌بات.
  • لایه زمینه: اطلاعات مرتبط با هر درخواست.
  • لایه مکالمه: تاریخچه گفتگو.
  • لایه دستور: درخواست فعلی کاربر.

تفاوت با پرامپت معمولی

پرامپت معمولی یک پاسخ واحد تولید می‌کند. پرامپت چت‌بات باید در طول چندین نوبت مکالمه، رفتار منسجمی حفظ کند.

نقش پرامپت در تجربه کاربری چت‌بات

کیفیت پرامپت، مستقیماً بر تجربه کاربری چت‌بات اثر می‌گذارد. چت‌بات با پرامپت خوب، طبیعی و مفید به‌نظر می‌رسد؛ چت‌بات با پرامپت ضعیف، سرد و بی‌ربط.

پرامپت چت‌بات، نه یک دستور، بلکه یک چارچوب عملیاتی است که رفتار چت‌بات را تعریف می‌کند.

اجزای اصلی پرامپت چت‌بات

یک پرامپت چت‌بات مؤثر، از چند جزء اصلی تشکیل می‌شود:

  1. نقش و هویت: چت‌بات کیست و چه تخصصی دارد.
  2. لحن و سبک: چت‌بات چگونه صحبت می‌کند.
  3. دامنه دانش: چت‌بات درباره چه موضوعاتی پاسخ می‌دهد.
  4. محدودیت‌ها: چت‌بات چه کارهایی را نباید انجام دهد.
  5. قواعد مکالمه: چت‌بات چگونه مکالمه را مدیریت می‌کند.
  6. شرایط ارجاع: چه زمانی به انسان ارجاع دهد.
  7. قالب پاسخ: ساختار پاسخ‌ها.
جزءهدفمثال
نقشتعریف هویت«تو یک دستیار پشتیبانی هستی»
لحنتعریف سبک«دوستانه اما حرفه‌ای»
دامنه دانشمحدودسازی موضوع«فقط درباره محصولات ما»
محدودیتکنترل رفتار«هرگز قیمت را تغییر نده»
مکالمهمدیریت چندنوبت«زمینه مکالمه را حفظ کن»
ارجاعارجاع به انسان«در شرایط خاص به اپراتور ارجاع بده»
قالبساختاردهی«پاسخ‌ها کوتاه و مستقیم»

تعریف نقش و هویت

تعریف نقش، اولین و مهم‌ترین جزء پرامپت چت‌بات است. نقش، به مدل می‌گوید با چه هویتی پاسخ دهد.

اجزای تعریف نقش

  • نام و عنوان: چت‌بات چه نامی دارد و چه عنوانی.
  • تخصص: چت‌بات در چه حوزه‌ای متخصص است.
  • سازمان: چت‌بات نماینده کدام سازمان است.
  • سطح دسترسی: چت‌بات چه اطلاعاتی در اختیار دارد.

نمونه‌ای از تعریف نقش

You are "Sara", a customer support assistant for WordPressKar.ir,
a Persian-language platform specializing in WordPress tutorials.

Your role:
- Answer questions about WordPress, themes, and plugins.
- Guide users to relevant articles and tutorials.
- Escalate technical issues to human support when needed.

You are NOT authorized to:
- Provide legal or financial advice.
- Make promises about product features.
- Share confidential company information.

این تعریف، چت‌بات را در محدوده مشخصی قرار می‌دهد و از پاسخ‌های خارج از دامنه جلوگیری می‌کند.

نقش در چت‌بات‌های چندگانه

در سامانه‌های چندعاملی، هر چت‌بات می‌تواند نقش متفاوتی داشته باشد. برای جزئیات، پست پرامپت نویسی برای عامل‌های هوشمند را ببینید.

تعریف لحن و سبک

لحن و سبک، تعیین می‌کند چت‌بات چگونه صحبت کند. لحن مناسب، تجربه کاربری را بهبود می‌بخشد.

انواع لحن

  • رسمی: مناسب برای سامانه‌های حقوقی و مالی.
  • دوستانه: مناسب برای سامانه‌های عمومی.
  • حرفه‌ای: مناسب برای سامانه‌های B2B.
  • صمیمی: مناسب برای سامانه‌های سرگرمی.
  • آموزشی: مناسب برای سامانه‌های آموزشی.

پرامپت تعریف لحن

Tone and Style:
- Be friendly but professional.
- Use simple, clear Persian.
- Avoid jargon unless the user uses it first.
- Keep responses concise (max 3 paragraphs).
- Use emojis sparingly (max 1 per message).
- Never be condescending or dismissive.
- If the user is frustrated, acknowledge their feelings first.

Examples:
- Instead of "That's wrong", say "Let me clarify that for you."
- Instead of "I don't know", say "Let me find that information for you."

لحن در شرایط مختلف

لحن چت‌بات می‌تواند بر اساس شرایط مکالمه تغییر کند. در شرایط عادی، لحن دوستانه؛ در شرایط شکایت، لحن همدلانه. برای مطالعه بیشتر، پست کنترل لحن و سبک در پرامپت را ببینید.

دامنه دانش و محدودیت‌ها

دامنه دانش، تعیین می‌کند چت‌بات درباره چه موضوعاتی پاسخ دهد. محدودیت‌ها، از پاسخ‌های خارج از دامنه جلوگیری می‌کنند.

تعریف دامنه دانش

Knowledge Domain:
- WordPress core features and best practices.
- WordPress themes and plugins (limited to popular ones).
- Basic SEO and performance optimization.
- Common WordPress errors and fixes.

Out of Scope:
- Legal, medical, or financial advice.
- Competitor products and comparisons.
- Custom development beyond basic examples.
- Personal opinions on WordPress vs other platforms.

برخورد با سؤالات خارج از دامنه

وقتی کاربر سؤالی خارج از دامنه می‌پرسد، چت‌بات باید پاسخ مناسبی بدهد:

If the question is out of scope, respond with:
"این موضوع خارج از حوزه تخصصی من است. می‌توانم شما را به
منابع مناسب ارجاع دهم یا سؤال خود را به شکل دیگری مطرح کنید."

Do NOT attempt to answer questions outside your knowledge domain,
even if you have general knowledge about them.

ترکیب با RAG برای دامنه تخصصی

برای چت‌بات‌های تخصصی، می‌توان از RAG برای تزریق دانش به‌روز استفاده کرد. برای جزئیات، پست RAG چیست را ببینید.

مدیریت مکالمه چندنوبتی

چت‌بات باید بتواند مکالمه چندنوبتی را مدیریت کند. این مدیریت، شامل حفظ زمینه، پیگیری سؤالات و پاسخ‌های منسجم است.

اصول مدیریت مکالمه

  • حفظ زمینه: چت‌بات باید اطلاعات مکالمه قبلی را در نظر بگیرد.
  • پیگیری سؤالات: اگر سؤال ناقص است، چت‌بات باید سؤال روشن‌سازی بپرسد.
  • انسجام: پاسخ‌ها باید با پاسخ‌های قبلی سازگار باشند.
  • پیشرفت: هر پاسخ باید مکالمه را به سمت حل مسئله پیش ببرد.

پرامپت مدیریت مکالمه

Conversation Management:
- Always reference the conversation history when relevant.
- If the user's question is ambiguous, ask ONE clarifying question
  before answering.
- If the user has asked a similar question before, acknowledge it:
  "همان‌طور که قبلاً اشاره کردم..."
- If the user's intent changes, adapt your response accordingly.
- Do NOT repeat information the user already knows.
- Keep track of unresolved issues and follow up on them.

Example scenarios:
- User asks about a plugin, then asks about its pricing.
  You should connect these two questions.
- User expresses frustration, then asks a technical question.
  You should acknowledge the frustration first.

پیگیری و ارجاع

اگر مسئله حل نشد، چت‌بات باید پیگیری کند. برای جزئیات، پست پرامپت نویسی برای خدمات مشتری را ببینید.

مدیریت حافظه و زمینه

در مکالمه‌های طولانی، تاریخچه گفتگو می‌تواند طولانی شود. مدیریت این تاریخچه، یکی از چالش‌های اصلی طراحی چت‌بات است.

راهکارهای مدیریت حافظه

  • خلاصه‌سازی: تاریخچه طولانی به خلاصه تبدیل شود.
  • انتخاب گزینشی: فقط گام‌های مرتبط نگهداری شوند.
  • پنجره لغزان: فقط N گام آخر نگهداری شود.
  • حافظه بلندمدت: اطلاعات کلیدی در یک حافظه جداگانه ذخیره شود.

برای جزئیات بیشتر، پست مدیریت پنجره زمینه در پرامپت نویسی را ببینید.

حافظه بلندمدت در چت‌بات

برای چت‌بات‌هایی که نیازمند حفظ اطلاعات کاربر بین جلسات هستند، حافظه بلندمدت ضروری است. این حافظه می‌تواند از یک پایگاه داده استفاده کند. برای درک این مفهوم، پست embedding چیست را ببینید.

برخورد با شرایط مرزی

چت‌بات باید بتواند در شرایط مرزی رفتار مناسبی داشته باشد. این شرایط شامل سؤالات مبهم، درخواست‌های نامناسب و موضوعات حساس است.

پرامپت برخورد با شرایط مرزی

Edge Case Handling:

1. Ambiguous Question:
   Ask ONE clarifying question. Example:
   "آیا منظور شما از «کندی سایت»، سرعت بارگذاری صفحه است
   یا سرعت پاسخ‌گویی سرور؟"

2. Inappropriate Request:
   Politely decline. Example:
   "متأسفم، نمی‌توانم در این مورد کمک کنم. آیا سؤال دیگری
   دارید که بتوانم پاسخ دهم؟"

3. Request for Confidential Info:
   Refuse clearly. Example:
   "من اجازه ندارم اطلاعات محرمانه شرکت را به اشتراک بگذارم."

4. Uncertain Answer:
   Acknowledge uncertainty. Example:
   "در این مورد اطمینان کامل ندارم. اجازه دهید شما را به
   منبع معتبر یا کارشناس مربوطه ارجاع دهم."

5. Frustrated User:
   Acknowledge emotion first. Example:
   "می‌فهمم که این موضوع برای شما آزاردهنده است. بگذارید
   کمک کنم تا هرچه سریع‌تر حل شود."

اهمیت برخورد مناسب

برخورد مناسب با شرایط مرزی، اعتماد کاربر را حفظ می‌کند. برخورد نامناسب، به از دست دادن کاربر و آسیب به برند منجر می‌شود.

ارجاع به انسان

چت‌بات‌ها نمی‌توانند همه مسائل را حل کنند. در شرایط خاص، ارجاع به انسان ضروری است. پرامپت باید این شرایط را به‌صورت صریح تعریف کند.

شرایط ارجاع به انسان

  • مسائل فنی پیچیده: که نیازمند دسترسی سطح بالاتر است.
  • شکایات جدی: که نیازمند همدلی انسانی است.
  • مسائل مالی: که نیازمند تأیید انسانی است.
  • درخواست صریح کاربر: اگر کاربر بخواهد با انسان صحبت کند.
  • عدم موفقیت پس از چند تلاش: اگر چت‌بات نتواند مسئله را حل کند.

پرامپت ارجاع به انسان

Escalation Protocol:

Escalate to a human agent when:
1. The user explicitly requests it.
2. The issue involves payment or financial data.
3. You have failed to resolve the issue after 3 attempts.
4. The user is highly frustrated or angry.
5. The issue requires access beyond your authorization.

When escalating:
- Summarize the issue for the human agent.
- Inform the user of the expected wait time.
- Provide an alternative contact method.
- End your response politely.

Example:
"برای حل بهتر این موضوع، شما را به کارشناس پشتیبانی
ارجاع می‌دهم. معمولاً ظرف ۱۵ دقیقه پاسخ می‌دهند.
شماره تماس مستقیم: ۰۲۱-XXXXXXXX"

ترکیب با سامانه‌های تیکتینگ

در سامانه‌های پیشرفته، ارجاع به انسان با ایجاد یک تیکت در سامانه پشتیبانی همراه است. این رویکرد، پیگیری را ساده‌تر می‌کند.

ملاحظات امنیتی

چت‌بات‌ها، به‌دلیل تعامل مستقیم با کاربران، سطح حمله گسترده‌تری دارند.

ریسک‌های امنیتی چت‌بات

  • تزریق پرامپت: مهاجم می‌تواند با دستکاری ورودی، چت‌بات را منحرف کند. برای جزئیات، پست تزریق پرامپت چیست را ببینید.
  • نشت پرامپت: مهاجم ممکن است سعی کند پرامپت سیستمی را افشا کند. برای جزئیات، پست نشت پرامپت را ببینید.
  • افشای داده: چت‌بات ممکن است داده‌های حساس را افشا کند.
  • سوءاستفاده از اعتماد: کاربران ممکن است از چت‌بات برای اهداف مخرب استفاده کنند.

راهکارهای امنیتی

  • پاک‌سازی ورودی: ورودی‌ها قبل از ارسال پاک‌سازی شوند. برای جزئیات، پست پاک‌سازی پرامپت را ببینید.
  • عدم قرار دادن داده حساس: هرگز داده حساس در پرامپت سیستمی قرار ندهید.
  • محدودسازی دسترسی: چت‌بات فقط به داده‌های مورد نیاز دسترسی داشته باشد.
  • پایش مداوم: مکالمات به‌صورت مستمر پایش شوند. برای جزئیات، پست مانیتورینگ پرامپت را ببینید.
  • تأیید انسانی: برای عملیات حساس، تأیید انسانی الزامی باشد.

در طراحی چت‌بات، امنیت یک لایه اضافی نیست؛ بخشی از ساختار اصلی است.

ارزیابی عملکرد چت‌بات

ارزیابی عملکرد چت‌بات، بخش حیاتی طراحی است. برای معیارهای ارزیابی، پست معیارهای ارزیابی پرامپت را ببینید.

معیارهای ارزیابی

  • نرخ حل مسئله: درصد مسائلی که چت‌بات به‌تنهایی حل کرده است.
  • نرخ ارجاع: درصد مواردی که به انسان ارجاع داده شده است.
  • رضایت کاربر: امتیاز رضایت پس از هر مکالمه.
  • طول مکالمه: میانگین تعداد پیام‌ها برای حل مسئله.
  • نرخ انصراف: درصد کاربرانی که مکالمه را نیمه‌کاره رها کرده‌اند.
  • دقت پاسخ: درصد پاسخ‌های درست.

روش‌های ارزیابی

  • آزمون A/B: مقایسه دو نسخه از پرامپت. برای جزئیات، پست آزمون A/B برای پرامپت‌ها را ببینید.
  • مدل داور: استفاده از یک مدل جداگانه برای ارزیابی کیفیت پاسخ‌ها.
  • ارزیابی انسانی: بازبینی مکالمات توسط متخصص.
  • نظرسنجی کاربران: دریافت بازخورد مستقیم از کاربران.

پرسش‌های پرتکرار درباره پرامپت چت‌بات

پرامپت چت‌بات چه تفاوتی با پرامپت معمولی دارد؟

پرامپت معمولی یک پاسخ واحد تولید می‌کند. پرامپت چت‌بات باید در طول چندین نوبت مکالمه، رفتار منسجم و مناسبی حفظ کند.

چطور از افشای پرامپت سیستمی جلوگیری کنیم؟

با دستورالعمل‌هایی که از مدل می‌خواهند پرامپت سیستمی را افشا نکند، و با فیلترهای خروجی که تلاش‌های افشا را شناسایی کنند.

چت‌بات چند نوبت می‌تواند مکالمه را حفظ کند؟

بستگی به پنجره زمینه مدل دارد. در سامانه‌های پیشرفته، با خلاصه‌سازی و انتخاب گزینشی، می‌توان مکالمه‌های طولانی را مدیریت کرد.

آیا چت‌بات نیازمند حافظه بلندمدت است؟

برای چت‌بات‌هایی که نیازمند حفظ اطلاعات کاربر بین جلسات هستند، بله. برای چت‌بات‌های ساده، حافظه کوتاه‌مدت کافی است.

چطور برخورد با کاربر عصبانی را در پرامپت تعریف کنیم؟

با دستورالعمل‌هایی که بر همدلی، پذیرش احساسات و پیشنهاد راه‌حل تأکید دارند. برای جزئیات، پست پرامپت نویسی برای خدمات مشتری را ببینید.

آیا چت‌بات بر هزینه اثر دارد؟

بله. هر پیام، یک فراخوانی مدل است. طراحی دقیق پرامپت می‌تواند تعداد پیام‌ها و در نتیجه هزینه را کاهش دهد.

آیا چت‌بات با امنیت تداخل دارد؟

بله. چت‌بات‌ها سطح حمله گسترده‌تری دارند. برای جزئیات، پست بهترین روش‌های امنیت پرامپت را ببینید.

آیا چت‌بات با RAG قابل ترکیب است؟

بله. با RAG، چت‌بات می‌تواند به دانش تخصصی و به‌روز دسترسی داشته باشد. برای جزئیات، پست پرامپت نویسی برای RAG را ببینید.

آیا چت‌بات با سایر تکنیک‌ها قابل ترکیب است؟

بله. می‌توان از زنجیره تفکر و روش ReAct استفاده کرد.

چطور عملکرد چت‌بات را در محیط تولید پایش کنیم؟

با استفاده از سیستم‌های پایش مستمر که شامل ثبت مکالمات، تحلیل خطاها و هشداردهی خودکار است. برای جزئیات، پست مانیتورینگ پرامپت را ببینید.

آیا چت‌بات نیازمند حاکمیت است؟

در سازمان‌های بزرگ، بله. برای جزئیات، پست حاکمیت پرامپت را ببینید.

نتیجه‌گیری کاربردی

پرامپت نویسی برای چت‌بات‌ها، یکی از حوزه‌های تخصصی پرامپت نویسی است که در آن، پرامپت نه یک دستور، بلکه یک چارچوب عملیاتی است که هویت، لحن، دامنه دانش، مدیریت مکالمه، شرایط مرزی و ارجاع را تعریف می‌کند. طراحی دقیق این چارچوب، تفاوت میان یک چت‌بات ناکارآمد و یک چت‌بات حرفه‌ای است.

پرامپت چت‌بات، نه یک دستور، بلکه یک چارچوب عملیاتی است که رفتار چت‌بات را تعریف می‌کند.

در پروژه‌هایی که چت‌بات‌های پشتیبانی و فروش را پیاده‌سازی کردیم، طراحی دقیق پرامپت مهم‌ترین عامل موفقیت بوده است. توصیه می‌شود ابتدا با تعریف نقش و لحن شروع کنید و به‌تدریج به مدیریت مکالمه و شرایط مرزی گسترش دهید. اگر تجربه‌ای در ساخت چت‌بات‌های حرفه‌ای دارید، برای ما جالب است بدانید کدام جنبه از طراحی پرامپت بیشترین تأثیر را در تجربه کاربری داشته است.