Context؛ چیزی که معمولا فراموش می شود

فرض کنید به یک همکار می گویید:

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

احتمالا اولین سوالش این است:

برای چه کسی؟ برای کجا؟ با چه هدفی؟ چه چیزی در نسخه فعلی مشکل دارد؟

مدل هوش مصنوعی هم دقیقا همین مشکل را دارد.

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

نتیجه معمولا یک پاسخ بد نیست.

مشکل این است که پاسخ عمومی می شود.

و اینجا یکی از مهم ترین مفاهیم در پرامپت نویسی وارد می شود:

Context یا همان زمینه.

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

اگر فقط یک نکته از این مقاله به خاطر بسپارید، این باشد:

هر وقت خروجی AI زیادی عمومی بود، قبل از عوض کردن مدل یا پیچیده کردن پرامپت، بررسی کنید چه Context مهمی را نگفته اید.

Context دقیقا چیست؟

Context مجموعه اطلاعاتی است که به مدل کمک می کند بفهمد درخواست شما در چه شرایطی مطرح شده است.

مثلا این پرامپت را ببینید:

برای من یک ایمیل بنویس.

از نظر دستوری کاملا روشن است، اما تقریبا هیچ Context مفیدی ندارد.

مدل هنوز نمی داند:

  • فرستنده چه کسی است؟
  • گیرنده چه کسی است؟
  • رابطه شما رسمی است یا دوستانه؟
  • موضوع ایمیل چیست؟
  • هدف شما اطلاع رسانی است، درخواست است یا پیگیری؟
  • متن باید کوتاه باشد یا کامل؟
  • زبان و لحن باید چطور باشد؟

حالا همان درخواست را با کمی Context ببینید:

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

درخواست اصلی هنوز همان است:

یک ایمیل بنویس.

اما کیفیت اطلاعاتی که قبل از درخواست داده اید، کاملا فرق کرده است.

مدل حالا می داند در چه موقعیتی قرار دارد.

چرا بدون Context پاسخ ها عمومی می شوند؟

مدل نمی تواند اطلاعاتی را که شما نگفته اید از ذهن شما استخراج کند.

اگر بنویسید:

برای فروش بیشتر ایده بده.

مدل باید حدس بزند:

چه چیزی می فروشید؟

به چه کسی؟

قیمت محصول چقدر است؟

فروش آنلاین است یا حضوری؟

مخاطب شما مشتری فعلی است یا کسی که هنوز شما را نمی شناسد؟

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

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

  • روی شبکه های اجتماعی فعال تر باشید
  • تخفیف ارائه دهید
  • محتوای آموزشی تولید کنید
  • برنامه معرفی مشتری راه بیندازید
  • تجربه مشتری را بهتر کنید

هیچ کدام لزوما اشتباه نیستند.

اما احتمالا چیزی نیستند که شما واقعا نیاز داشتید.

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

Context قرار نیست پرامپت را طولانی کند

یکی از سوء تفاهم های رایج این است که برای دادن Context باید چند پاراگراف توضیح بنویسید.

نه.

Context خوب یعنی اطلاعات مرتبط، نه اطلاعات زیاد.

مثلا برای نوشتن یک کپشن اینستاگرام شاید همین چهار جمله کافی باشد:

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

این Context کوتاه است اما تاثیر زیادی روی خروجی دارد.

در مقابل، اگر سه پاراگراف درباره تاریخچه کاری خودتان بنویسید که هیچ تاثیری روی کپشن ندارد، فقط ورودی را شلوغ کرده اید.

چه Context هایی معمولا مهم هستند؟

برای همه پرامپت ها یک نسخه ثابت وجود ندارد، اما چند نوع Context بیشتر از بقیه تکرار می شوند.

1. شما چه کسی هستید؟

گاهی نقش شما روی پاسخ تاثیر مستقیم دارد.

مثلا:

من مدیر منابع انسانی یک شرکت ۱۲۰ نفره هستم.

یا:

من دانشجوی سال اول مهندسی کامپیوتر هستم و هنوز آمار پیشرفته نخوانده ام.

یا:

من یک فروشگاه اینترنتی کوچک دارم و تیم مارکتینگ جداگانه ندارم.

این اطلاعات سطح پاسخ و زاویه نگاه مدل را تغییر می دهد.

2. مخاطب چه کسی است؟

این یکی از مهم ترین Context ها در کارهای نوشتاری است.

به جای:

این مفهوم را توضیح بده.

بگویید:

این مفهوم را برای مدیری توضیح بده که برنامه نویس نیست اما درباره استفاده تجاری از AI تصمیم می گیرد.

یا:

این موضوع را برای یک دانش آموز ۱۵ ساله با مثال روزمره توضیح بده.

یک مفهوم می تواند برای مخاطبان مختلف، توضیح کاملا متفاوتی نیاز داشته باشد.

3. این خروجی کجا استفاده می شود؟

متنی که برای ایمیل نوشته می شود با متن سایت، اسلاید، گزارش مدیریتی یا Reel اینستاگرام فرق دارد.

مثلا:

این متن برای بخش Hero یک Landing Page است.

یا:

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

یا:

این متن قرار است در پیام WhatsApp برای مشتری ارسال شود.

پلتفرم بخشی از Context است.

4. هدف واقعی چیست؟

گاهی درخواست ظاهری با هدف واقعی فرق دارد.

مثلا شما می گویید:

این ایمیل را بازنویسی کن.

اما هدف واقعی ممکن است این باشد:

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

اگر مدل هدف واقعی را نداند، ممکن است فقط متن را زیباتر کند بدون اینکه به نتیجه مورد نظر شما نزدیک تر شود.

5. وضعیت فعلی چیست؟

در بسیاری از کارها، مدل باید بداند الان کجا هستید.

مثلا در عیب یابی فنی:

سرویس داخل Docker اجرا می شود. Nginx روی Host است. درخواست از اینترنت به Nginx می رسد اما upstream روی پورت 8000 timeout می شود. از داخل Host با curl به همان پورت پاسخ می گیرم.

این Context بسیار مهم تر از جمله ای مثل «سایت من باز نمی شود» است.

در برنامه ریزی هم همین موضوع وجود دارد:

سه هفته تا آزمون مانده، روزی ۹۰ دقیقه زمان دارم و فصل های ۱ تا ۴ را قبلا خوانده ام.

مدل حالا نقطه شروع را می داند.

6. چه محدودیت هایی دارید؟

محدودیت فقط بخشی از Prompt Structure نیست؛ خودش نوعی Context هم هست.

مثلا:

بودجه من زیر ۱۰ میلیون تومان است.

نمی خواهم از سرویس پولی استفاده کنم.

این پیشنهاد باید بدون تغییر معماری فعلی قابل اجرا باشد.

متن نهایی باید زیر ۱۵۰ کلمه باشد.

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

یک مثال ساده: قبل و بعد از Context

بدون Context

برای LinkedIn یک پست درباره AI بنویس.

مدل احتمالا یک متن عمومی درباره تاثیر هوش مصنوعی روی آینده کار تولید می کند.

با Context

من مدیر IT هستم و مخاطب LinkedIn من بیشتر مدیران زیرساخت، SysAdmin ها و DevOps Engineer ها هستند. می خواهم درباره این نکته بنویسم که استفاده از AI در عملیات IT فقط تولید Command نیست؛ ارزش اصلی آن در تحلیل Log، ساخت Runbook و کاهش زمان عیب یابی است. متن حدود ۱۸۰ کلمه باشد، لحن متخصصانه و تجربه محور باشد و از جمله های انگیزشی کلیشه ای استفاده نکند.

حالا مدل تقریبا می داند:

  • نویسنده چه کسی است
  • مخاطب چه کسی است
  • پیام اصلی چیست
  • چه چیزهایی نباید وارد متن شود
  • طول و لحن چقدر باشد

این یعنی Context خوب.

Context در برنامه نویسی حتی مهم تر می شود

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

فرض کنید بنویسید:

Login من کار نمی کند. درستش کن.

مدل تقریبا هیچ اطلاعات قابل استفاده ای ندارد.

نسخه بهتر:

پروژه من با Next.js 15 و TypeScript ساخته شده و Authentication با Auth.js انجام می شود. Login با Google کار می کند اما Login با Credentials بعد از Submit دوباره به صفحه Login برمی گردد. در Console مرورگر خطایی ندارم ولی Server Log خطای CredentialsSignin نشان می دهد. این فایل config و handler فعلی من است. اول علت احتمالی را تحلیل کن، بعد تغییر پیشنهادی را بده. ساختار دیتابیس را تغییر نده.

اینجا Context فقط توضیح نیست؛ بخشی از مسئله فنی است.

هرچه پروژه پیچیده تر شود، جمله «این را درست کن» ارزش کمتری پیدا می کند.

Context در تحلیل فایل و داده

وقتی فایل، جدول، PDF یا گزارش به مدل می دهید، خود فایل همه Context نیست.

مدل باید بداند چرا فایل را بررسی می کند.

مثلا به جای:

این Excel را تحلیل کن.

بگویید:

این فایل فروش شش ماه گذشته است. من می خواهم بفهمم افت فروش تیرماه بیشتر از کاهش تعداد سفارش بوده یا کاهش میانگین مبلغ هر سفارش. ابتدا فقط همین سوال را بررسی کن. بعد سه عامل غیرعادی دیگری که در داده می بینی پیشنهاد بده.

فایل همان فایل است.

اما Context مشخص می کند مدل دنبال چه چیزی بگردد.

Context در یک گفتگوی طولانی

وقتی چند پیام با یک مدل رد و بدل می کنید، پیام های قبلی هم بخشی از Context گفتگو هستند.

این موضوع خیلی مفید است، اما یک خطر هم دارد:

ممکن است بعد از ده ها پیام، بعضی تصمیم ها تغییر کرده باشند و Context قدیمی دیگر درست نباشد.

مثلا در ابتدای گفتگو گفته اید:

پروژه با MySQL است.

بعدا دیتابیس را به PostgreSQL منتقل کرده اید.

اگر مدل هنوز روی اطلاعات قدیمی تکیه کند، جواب می تواند اشتباه شود.

برای پروژه های طولانی بهتر است گاهی وضعیت فعلی را خلاصه و دوباره مشخص کنید:

وضعیت فعلی پروژه: PostgreSQL 16، Django 5، Redis و Docker Compose. پیشنهادهای قبلی مربوط به MySQL دیگر معتبر نیستند.

این کار Context را تمیز می کند.

Context Window چیست؟

اگر کمی بیشتر وارد اصطلاحات AI شوید، احتمالا عبارت Context Window را می بینید.

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

این اطلاعات می تواند شامل مواردی مثل این باشد:

  • پیام فعلی شما
  • بخش هایی از گفتگوی قبلی
  • فایل ها یا اسنادی که در اختیار مدل قرار گرفته اند
  • دستورهای سیستم
  • اطلاعاتی که ابزار یا اپلیکیشن به مدل می دهد

Context Window بزرگ تر می تواند برای کار با اسناد طولانی یا پروژه های پیچیده مفید باشد، اما یک نکته مهم وجود دارد:

بزرگ بودن Context Window جای Context خوب را نمی گیرد.

اگر ۵۰ صفحه اطلاعات نامرتبط بدهید، الزاماً جواب بهتر نمی شود.

مسئله این نیست که چقدر اطلاعات وارد می کنید.

مسئله این است که اطلاعات مناسب را وارد کنید.

اشتباه رایج: Dump کردن همه چیز

بعد از اینکه افراد اهمیت Context را می فهمند، گاهی به سمت افراط می روند.

تمام ایمیل ها، همه Log ها، کل سورس پروژه، ده ها صفحه توضیح و چند فایل را یکجا وارد می کنند و می گویند:

مشکل را پیدا کن.

این هم همیشه روش خوبی نیست.

Context زیاد می تواند سه مشکل ایجاد کند:

  1. اطلاعات مهم بین جزئیات کم اهمیت گم می شود.
  2. مدل ممکن است روی بخش نامربوط تمرکز کند.
  3. خود شما هم دیگر نمی دانید کدام اطلاعات واقعا برای مسئله ضروری بوده است.

روش بهتر این است که از Context مرحله ای استفاده کنید.

Context مرحله ای؛ همه چیز را از اول نفرستید

برای مسئله های پیچیده، می توانید Context را در چند مرحله بدهید.

مثلا:

من یک مشکل در Deploy دارم. ابتدا معماری را برایت توضیح می دهم. هنوز راه حل نده؛ فقط بگو چه اطلاعات دیگری برای عیب یابی لازم داری.

بعد مدل می تواند از شما چیزهایی مثل این بخواهد:

  • Log خطا
  • Docker Compose
  • Nginx config
  • وضعیت DNS
  • مسیر شبکه

حالا فقط اطلاعات لازم را می دهید.

این روش معمولا بهتر از این است که کل پروژه را بدون ساختار داخل یک Prompt بریزید.

از مدل بخواهید Context کم را تشخیص دهد

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

مثلا:

می خواهم برای استخدام یک DevOps Engineer آگهی شغلی بنویسم. قبل از نوشتن متن، حداکثر ۷ سوالی که برای فهم دقیق موقعیت شغلی لازم داری از من بپرس.

یا:

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

این روش جلوی یک رفتار رایج AI را می گیرد:

شروع کردن به جواب دادن قبل از اینکه مسئله را واقعا بفهمد.

یک فرمول ساده برای Context

اگر نمی دانید چه زمینه ای بدهید، این پنج سوال را از خودتان بپرسید:

  1. من چه کسی هستم یا نقش من چیست؟
  2. مخاطب یا مصرف کننده خروجی چه کسی است؟
  3. الان در چه شرایطی هستم؟
  4. هدف نهایی من چیست؟
  5. چه محدودیت یا نکته ای اگر مدل نداند، جوابش احتمالا اشتباه می شود؟

قرار نیست همیشه به هر پنج سوال جواب بدهید.

فقط آنهایی را وارد Prompt کنید که روی پاسخ تاثیر واقعی دارند.

یک Template کاربردی

می توانید از این قالب ساده استفاده کنید:

زمینه: من [نقش/شرایط شما] هستم. این کار برای [مخاطب/محل استفاده] است. وضعیت فعلی [اطلاعات مهم] است. هدف من [نتیجه نهایی] است. محدودیت های مهم [محدودیت ها] هستند.

درخواست: [کاری که مدل باید انجام دهد]

مثال:

زمینه: من مدیر یک تیم نرم افزاری کوچک هستم. قرار است این گزارش برای مدیرعامل ارسال شود و او وارد جزئیات فنی نمی شود. سه روز است API اصلی در ساعات شلوغ کند می شود. بررسی اولیه نشان داده CPU مشکلی ندارد اما تعداد Connection های دیتابیس بالا می رود. فعلا اجازه تغییر زیرساخت نداریم.

درخواست: یک خلاصه مدیریتی ۵ بندی بنویس که وضعیت، ریسک و اقدام پیشنهادی کوتاه مدت را توضیح دهد.

این پرامپت هنوز پیچیده نیست.

فقط اطلاعاتی را که برای جواب خوب لازم است در جای درست قرار داده است.

از کجا بفهمیم Context کافی بوده؟

یک تست ساده وجود دارد.

قبل از ارسال Prompt، تصور کنید درخواست را به یک همکار باهوش داده اید که هیچ اطلاعات قبلی درباره موضوع ندارد.

آیا او می تواند بدون پرسیدن چند سوال اساسی، کار را درست انجام دهد؟

اگر نه، مدل هم احتمالا Context کافی ندارد.

از طرف دیگر، اگر همکار شما برای انجام کار نیازی به دانستن یک اطلاعات ندارد، شاید مدل هم نیازی به آن نداشته باشد.

این فیلتر ساده کمک می کند بین Context مفید و اطلاعات اضافی تفاوت بگذارید.

تمرین: یک پرامپت عمومی را نجات دهید

یک درخواست واقعی که اخیرا از AI داشته اید انتخاب کنید.

مثلا:

برای من برنامه بنویس.

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

برای کسب و کارم ایده بده.

این خطا را حل کن.

حالا قبل از درخواست، سه تا پنج جمله Context اضافه کنید.

بعد هر دو نسخه را جداگانه اجرا کنید.

خروجی ها را مقایسه کنید:

  • کدام پاسخ عمومی تر است؟
  • کدام پاسخ کمتر نیاز به اصلاح دارد؟
  • کدام پاسخ بیشتر با شرایط واقعی شما هماهنگ است؟
  • آیا اطلاعاتی داده اید که عملا تاثیری روی جواب نداشته است؟

این تمرین خیلی سریع نشان می دهد Context چقدر می تواند کیفیت خروجی را تغییر دهد.

جمع بندی

پرامپت خوب فقط این نیست که دقیق بگویید چه کاری می خواهید.

مدل باید بداند این درخواست در چه دنیایی قرار دارد.

مخاطب کیست؟

هدف چیست؟

وضعیت فعلی چیست؟

چه محدودیت هایی وجود دارد؟

چه چیزی برای شما مهم است که شاید برای یک کاربر دیگر مهم نباشد؟

همه اینها Context هستند.

وقتی Context درست باشد، مدل کمتر مجبور می شود حدس بزند.

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

پس دفعه بعد که پاسخ AI زیادی کلی، بی ربط یا قابل پیش بینی بود، قبل از اینکه بگویید «این مدل خوب نیست»، یک سوال ساده از خودتان بپرسید:

چه چیزی را من می دانم که مدل هنوز نمی داند؟

پاسخ همین سوال، معمولا همان Contextی است که باید به پرامپت اضافه کنید.