پرش به مطلب اصلی

مبانی مهندسی پرامپت

پرامپت چیست؟

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

مهندسی پرامپت یعنی طراحی آگاهانه این ورودی و قرارداد اجرایی اطراف آن. هدف پیدا کردن یک عبارت universally optimal نیست؛ هدف این است که رفتار مورد انتظار آن‌قدر روشن باشد که بتوان آن را تست و نگه‌داری کرد.

مدل زبانی چگونه پاسخ می‌دهد؟

مدل زبانی بر اساس context موجود، خروجی را token به token تولید می‌کند. توضیح «پیش‌بینی token بعدی» یک مدل ذهنی مفید است، اما سیستم‌های امروزی ممکن است multimodal input، reasoning، tool call، retrieval و state مدیریت‌شده توسط application هم داشته باشند.

دو نتیجه مهم برای پرامپت‌نویسی:

  • ابهام چند continuation محتمل ایجاد می‌کند؛
  • context نامرتبط یا متناقض می‌تواند با دستور اصلی رقابت کند.

پس متن طولانی‌تر لزوماً بهتر نیست. فقط اطلاعاتی را اضافه کنید که تصمیم صحیح را تغییر می‌دهند.

دستور، داده و مثال را جدا کنید

یک پرامپت قابل نگه‌داری این اجزا را از هم تفکیک می‌کند:

  • دستورها — مدل چه کاری انجام دهد؛
  • context / داده — چه چیزی را تحلیل کند؛
  • مثال‌ها — رفتار یا قالب مورد انتظار را نشان دهند؛
  • قرارداد خروجی — پاسخ چه شکلی داشته باشد؛
  • fallback — در نبود داده، تعارض یا عدم اطمینان چه کند.

Heading، delimiter، code fence یا tagهایی شبیه XML برای خوانایی مفیدند؛ اما delimiter به‌تنهایی یک security boundary در برابر prompt injection نیست.

نقش پیام‌ها و اولویت دستورها

نام‌گذاری providerها یکسان نیست. در Responses API فعلی OpenAI، messageها می‌توانند نقش‌های developer، system، user و assistant داشته باشند. دستورهای developer و system نسبت به user اولویت بالاتری دارند و assistant معمولاً خروجی قبلی مدل را نشان می‌دهد. فیلد top-level به نام instructions معادل یک دستور developer-level است.

نقش system را صرفاً «قدیمی یا منسوخ» توصیف نکنید؛ هنوز در APIهای فعلی پذیرفته می‌شود. برای implementation جدید، role و الگوی API را از مستندات همان provider/model بگیرید.

نتیجه ابزار و محتوای بازیابی‌شده را به‌طور پیش‌فرض داده در نظر بگیرید، نه دستور دارای authority. محتوای خارجی می‌تواند instruction مخرب داشته باشد.

ChatGPT با API یکسان نیست

یک گفتگو در ChatGPT ممکن است از memory، connected apps، فایل‌ها، search یا model routing محصول استفاده کند. یک API request فقط state و toolهایی را دارد که application فراهم یا API مشخصاً persist کرده است.

رفتار UI محصول را به API تعمیم ندهید و برعکس.

مدل ذهنی پیشنهادی

مهندسی پرامپت را در سه لایه ببینید:

  1. Application — permission، tool، data source، validation، retry و state.
  2. Prompt — هدف، دستور، مثال، محدودیت و output contract.
  3. Evaluation — مدرک تکرارپذیر اینکه کل سیستم در ورودی‌های واقعی درست رفتار می‌کند.

کیفیت پرامپت مهم است، اما reliability production از ترکیب هر سه لایه می‌آید.