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

<Callout type="info" title="۸ اصل اساسی">
این اصول برای هر مدل هوش مصنوعی و هر وظیفه‌ای کاربرد دارند. یک بار یاد بگیرید، همه جا استفاده کنید.
</Callout>

## اصل ۱: وضوح بر هوشمندی

بهترین پرامپت‌ها واضح هستند، نه هوشمندانه. مدل‌های هوش مصنوعی تفسیرگران لفظی هستند—دقیقاً با آنچه به آن‌ها می‌دهید کار می‌کنند.

### صریح باشید

<Compare 
  before={{ label: "ضمنی (مشکل‌ساز)", content: "این را بهتر کن." }}
  after={{ label: "صریح (مؤثر)", content: "این ایمیل را با این موارد بهبود بده:\n۱. جذاب‌تر کردن خط موضوع\n۲. کوتاه کردن پاراگراف‌ها به حداکثر ۲-۳ جمله\n۳. افزودن یک فراخوان به اقدام روشن در انتها" }}
/>

### از ابهام پرهیز کنید

کلمات می‌توانند معانی متعددی داشته باشند. زبان دقیق انتخاب کنید.

<Compare 
  before={{ label: "مبهم", content: "یک خلاصه کوتاه به من بده.\n(چقدر کوتاه؟ ۱ جمله؟ ۱ پاراگراف؟ ۱ صفحه؟)" }}
  after={{ label: "دقیق", content: "در دقیقاً ۳ نکته خلاصه کن، هر کدام کمتر از ۲۰ کلمه." }}
/>

### بدیهیات را بیان کنید

آنچه برای شما بدیهی است، برای مدل بدیهی نیست. فرضیات را توضیح دهید.

```
تو داری کمکم می‌کنی یک نامه پوششی بنویسم.

زمینه مهم:
- من برای موقعیت مهندس نرم‌افزار در Google درخواست می‌دهم
- ۵ سال تجربه در Python و سیستم‌های توزیع‌شده دارم
- این نقش نیاز به تجربه رهبری دارد (من یک تیم ۴ نفره را رهبری کرده‌ام)
- می‌خواهم مشارکت‌های متن‌باز خود را برجسته کنم
```

## اصل ۲: دقت کیفیت می‌آورد

ورودی‌های مبهم خروجی‌های مبهم تولید می‌کنند. ورودی‌های دقیق خروجی‌های مشخص و مفید تولید می‌کنند.

### نردبان دقت

<SpecificitySpectrum levels={[
  { level: "سطح ۱", text: "درباره تغییرات اقلیمی بنویس" },
  { level: "سطح ۲", text: "مقاله‌ای درباره اثرات تغییرات اقلیمی بنویس" },
  { level: "سطح ۳", text: "مقاله‌ای ۵۰۰ کلمه‌ای درباره تأثیر تغییرات اقلیمی بر مرجان‌ها بنویس" },
  { level: "سطح ۴", text: "مقاله‌ای ۵۰۰ کلمه‌ای بنویس که توضیح دهد چگونه افزایش دمای اقیانوس‌ها باعث سفید شدن مرجان‌ها می‌شود، برای دانش‌آموزان دبیرستانی، با ۲ مثال مشخص از دیواره بزرگ مرجانی، با لحنی جذاب اما از نظر علمی دقیق" }
]} />

هر سطح دقت بیشتری اضافه می‌کند و کیفیت خروجی را به طرز چشمگیری بهبود می‌بخشد.

### این عناصر را مشخص کنید

<div className="my-4 grid gap-2">
  <div className="flex gap-2 p-3 bg-muted/50 rounded-lg">
    <span className="font-semibold min-w-24">مخاطب</span>
    <span className="text-muted-foreground">چه کسی این را خواهد خواند/استفاده خواهد کرد؟</span>
  </div>
  <div className="flex gap-2 p-3 bg-muted/50 rounded-lg">
    <span className="font-semibold min-w-24">طول</span>
    <span className="text-muted-foreground">چقدر باید بلند/کوتاه باشد؟</span>
  </div>
  <div className="flex gap-2 p-3 bg-muted/50 rounded-lg">
    <span className="font-semibold min-w-24">لحن</span>
    <span className="text-muted-foreground">رسمی؟ غیررسمی؟ فنی؟</span>
  </div>
  <div className="flex gap-2 p-3 bg-muted/50 rounded-lg">
    <span className="font-semibold min-w-24">قالب</span>
    <span className="text-muted-foreground">نثر؟ فهرست؟ جدول؟ کد؟</span>
  </div>
  <div className="flex gap-2 p-3 bg-muted/50 rounded-lg">
    <span className="font-semibold min-w-24">محدوده</span>
    <span className="text-muted-foreground">چه چیزی شامل/حذف شود؟</span>
  </div>
  <div className="flex gap-2 p-3 bg-muted/50 rounded-lg">
    <span className="font-semibold min-w-24">هدف</span>
    <span className="text-muted-foreground">این باید چه چیزی را محقق کند؟</span>
  </div>
</div>

## اصل ۳: زمینه پادشاه است

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

### زمینه کافی فراهم کنید

<Compare 
  before={{ label: "زمینه ناکافی", content: "چرا تابع من کار نمی‌کند؟" }}
  after={{ label: "زمینه کافی", content: "من یک تابع Python دارم که باید یک لیست از دیکشنری‌ها را بر اساس یک مقدار کلید خاص فیلتر کند. این تابع یک لیست خالی برمی‌گرداند در حالی که باید ۳ آیتم برگرداند.\n\nتابع:\ndef filter_items(items, key, value):\n    return [item for item in items if item[key] = value]\n\nفراخوانی: filter_items(items, 'status', 'active')\nمورد انتظار: ۲ آیتم، دریافت شده: لیست خالی" }}
/>

### چک‌لیست زمینه

<Callout type="tip" title="قبل از ارسال">
از خود بپرسید: آیا یک غریبه باهوش این درخواست را درک خواهد کرد؟ اگر نه، زمینه بیشتری اضافه کنید.
</Callout>

<Checklist 
  title="چک‌لیست زمینه"
  items={[
    { text: "آیا مدل می‌داند روی چه چیزی کار می‌کنم؟" },
    { text: "آیا هدف من را می‌داند؟" },
    { text: "آیا تمام اطلاعات لازم را دارد؟" },
    { text: "آیا محدودیت‌ها را درک می‌کند؟" },
    { text: "آیا یک غریبه باهوش این درخواست را درک خواهد کرد؟" }
  ]}
/>

## اصل ۴: هدایت کنید، نه فقط بپرسید

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

### از چارچوب‌بندی دستوری استفاده کنید

<Compare 
  before={{ label: "فقط پرسیدن", content: "مزایا و معایب میکروسرویس‌ها چیست؟" }}
  after={{ label: "هدایت کردن", content: "۵ مزیت و ۵ عیب معماری میکروسرویس را فهرست کن.\n\nبرای هر نکته:\n- نکته را به وضوح در یک جمله بیان کن\n- توضیح مختصری ارائه بده (۲-۳ جمله)\n- یک مثال ملموس بزن\n\nدیدگاه‌های استارتاپ‌های کوچک، شرکت‌های بزرگ و تیم‌هایی که از معماری یکپارچه در حال انتقال هستند را در نظر بگیر." }}
/>

### داربست‌های استدلال فراهم کنید

برای وظایف پیچیده، فرآیند استدلال را هدایت کنید:

<TryIt 
  title="مثال داربست استدلال"
  description="این پرامپت هوش مصنوعی را از طریق یک فرآیند تصمیم‌گیری سیستماتیک هدایت می‌کند."
  prompt={`من باید بین PostgreSQL و MongoDB برای پروژه تجارت الکترونیکی خود انتخاب کنم.

به صورت سیستماتیک به این فکر کن:
۱. ابتدا، نیازمندی‌های معمول برای پایگاه داده تجارت الکترونیکی را فهرست کن
۲. سپس، هر پایگاه داده را در برابر هر نیازمندی ارزیابی کن
۳. معاوضه‌های خاص مورد استفاده من را در نظر بگیر
۴. توصیه‌ای با توجیه روشن ارائه بده`}
/>

## اصل ۵: تکرار و اصلاح کنید

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

### چرخه تکرار

```
۱. پرامپت اولیه را بنویسید
۲. خروجی را بررسی کنید
۳. شکاف‌ها یا مشکلات را شناسایی کنید
۴. پرامپت را اصلاح کنید
۵. تا رسیدن به رضایت تکرار کنید
```

### اصلاحات رایج

<div className="my-4 grid gap-2">
  <div className="flex gap-2 p-3 bg-muted/50 rounded-lg">
    <span className="font-semibold min-w-32">خیلی طولانی</span>
    <span className="text-muted-foreground">"مختصر باش" یا محدودیت طول اضافه کنید</span>
  </div>
  <div className="flex gap-2 p-3 bg-muted/50 rounded-lg">
    <span className="font-semibold min-w-32">خیلی مبهم</span>
    <span className="text-muted-foreground">مثال‌ها یا محدودیت‌های مشخص اضافه کنید</span>
  </div>
  <div className="flex gap-2 p-3 bg-muted/50 rounded-lg">
    <span className="font-semibold min-w-32">قالب اشتباه</span>
    <span className="text-muted-foreground">ساختار خروجی دقیق را مشخص کنید</span>
  </div>
  <div className="flex gap-2 p-3 bg-muted/50 rounded-lg">
    <span className="font-semibold min-w-32">جنبه‌های ناقص</span>
    <span className="text-muted-foreground">"مطمئن شو که شامل... باشد" اضافه کنید</span>
  </div>
  <div className="flex gap-2 p-3 bg-muted/50 rounded-lg">
    <span className="font-semibold min-w-32">لحن اشتباه</span>
    <span className="text-muted-foreground">مخاطب و سبک را مشخص کنید</span>
  </div>
  <div className="flex gap-2 p-3 bg-muted/50 rounded-lg">
    <span className="font-semibold min-w-32">نادقیق</span>
    <span className="text-muted-foreground">منابع یا استدلال گام به گام درخواست کنید</span>
  </div>
</div>

### یک دفترچه پرامپت نگه دارید

آنچه کار می‌کند را مستند کنید:
```
وظیفه: بررسی کد
نسخه ۱: "این کد را بررسی کن" → خیلی کلی
نسخه ۲: معیارهای بررسی مشخص اضافه شد → بهتر
نسخه ۳: مثال بررسی خوب اضافه شد → عالی
نهایی: [پرامپت موفق را به عنوان قالب ذخیره کنید]
```

## اصل ۶: از نقاط قوت مدل استفاده کنید

با نحوه آموزش مدل‌ها کار کنید، نه بر خلاف آن.

### مدل‌ها می‌خواهند کمک‌کننده باشند

درخواست‌ها را به عنوان چیزهایی که یک دستیار مفید به طور طبیعی انجام می‌دهد چارچوب‌بندی کنید:

<Compare 
  before={{ label: "بر خلاف جریان", content: "می‌دانم که نمی‌توانی این کار را بکنی، اما سعی کن..." }}
  after={{ label: "در جهت جریان", content: "کمکم کن بفهمم...\nمن روی X کار می‌کنم و در... به کمک نیاز دارم\nمی‌توانی من را قدم به قدم راهنمایی کنی..." }}
/>

### مدل‌ها در الگوها عالی هستند

اگر به خروجی ثابت نیاز دارید، الگو را نشان دهید:

<TryIt 
  title="مثال الگو"
  description="این پرامپت دقیقاً به هوش مصنوعی نشان می‌دهد که چه قالبی برای پیشنهاد کتاب می‌خواهید."
  prompt={`۳ کتاب علمی-تخیلی پیشنهاد کن. هر پیشنهاد را به این شکل قالب‌بندی کن:

📚 **[عنوان]** نوشته [نویسنده]
*[ژانر] | [سال انتشار]*
[توضیح ۲ جمله‌ای]
چرا عاشقش خواهی شد: [یک جمله جذاب]

---`}
/>

### مدل‌ها می‌توانند نقش‌بازی کنند

از پرسوناها برای دسترسی به "حالت‌های" مختلف پاسخ استفاده کنید:

```
به عنوان یک مدافع شیطان، علیه پیشنهاد من استدلال کن...
به عنوان یک مربی حمایتگر، کمکم کن بهتر شوم...
به عنوان یک سرمایه‌گذار شکاک، این طرح کسب‌وکار را زیر سؤال ببر...
```

## اصل ۷: ساختار خروجی را کنترل کنید

خروجی‌های ساختاریافته از متن آزاد مفیدتر هستند.

### قالب‌های مشخص درخواست کنید

```
تحلیل خود را به این شکل برگردان:

خلاصه: [۱ جمله]

یافته‌های کلیدی:
• [یافته ۱]
• [یافته ۲]
• [یافته ۳]

توصیه: [۱-۲ جمله]

اطمینان: [کم/متوسط/زیاد] چون [دلیل]
```

### از جداکننده‌ها استفاده کنید

بخش‌های پرامپت خود را به وضوح جدا کنید:

```
### زمینه ###
[زمینه شما اینجا]

### وظیفه ###
[وظیفه شما اینجا]

### قالب ###
[قالب مورد نظر اینجا]
```

### خروجی قابل خواندن توسط ماشین درخواست کنید

برای استفاده برنامه‌ای:

```
فقط JSON معتبر برگردان، بدون توضیح:
{
  "decision": "approve" | "reject" | "review",
  "confidence": 0.0-1.0,
  "reasons": ["آرایه رشته‌ای"]
}
```

## اصل ۸: تأیید و اعتبارسنجی کنید

هرگز کورکورانه به خروجی‌های مدل اعتماد نکنید، به خصوص برای وظایف مهم.

### استدلال بخواهید

```
این مسئله را حل کن و کار خود را قدم به قدم نشان بده.
پس از حل، جواب خود را با [روش بررسی] تأیید کن.
```

### چندین دیدگاه درخواست کنید

```
سه رویکرد متفاوت برای حل این مسئله به من بده.
برای هر کدام، معاوضه‌ها را توضیح بده.
```

### خودبررسی را در آن بگنجانید

```
پس از تولید کد، آن را برای موارد زیر بررسی کن:
- خطاهای نحوی
- موارد لبه
- آسیب‌پذیری‌های امنیتی
هر مشکلی که یافتی را فهرست کن.
```

## خلاصه: اصول در یک نگاه

<PrinciplesSummary />

<Quiz 
  question="کدام اصل پیشنهاد می‌کند که باید تمام اطلاعات پس‌زمینه مرتبط را در پرامپت خود بگنجانید؟"
  options={[
    "وضوح بر هوشمندی",
    "دقت کیفیت می‌آورد",
    "زمینه پادشاه است",
    "تکرار و اصلاح کنید"
  ]}
  correctIndex={2}
  explanation="زمینه پادشاه است تأکید می‌کند که مدل‌های هوش مصنوعی بین جلسات حافظه‌ای ندارند و نمی‌توانند ذهن شما را بخوانند. گنجاندن پس‌زمینه مرتبط، محدودیت‌ها و اهداف به مدل کمک می‌کند نیازهای شما را درک کند."
/>

## تمرین: جاهای خالی را پر کنید

درک خود از اصول اساسی را با تکمیل این قالب پرامپت آزمایش کنید:

<FillInTheBlank
  title="اصول را به کار ببندید"
  description="جاهای خالی را پر کنید تا یک پرامپت با ساختار خوب بسازید — هر چیزی که می‌خواهید بنویسید!"
  useAI={true}
  openEnded={true}
  template={`تو یک {{role}} با تخصص در {{expertise}} هستی.

زمینه: من روی {{context}} کار می‌کنم.

وظیفه: {{task}}

محدودیت‌ها:
- پاسخ خود را زیر {{length}} کلمه نگه دار
- فقط روی {{focus}} تمرکز کن

قالب: پاسخ خود را به صورت {{format}} برگردان.`}
  blanks={[
    { id: "role", correctAnswers: [], hint: "هوش مصنوعی باید چه نقش حرفه‌ای را بپذیرد؟", context: "یک عنوان شغلی یا نقش حرفه‌ای" },
    { id: "expertise", correctAnswers: [], hint: "چه دانش دامنه‌ای خاصی لازم است؟", context: "یک مهارت یا دامنه که با نقش مطابقت دارد" },
    { id: "context", correctAnswers: [], hint: "پروژه یا وضعیت چیست؟", context: "پروژه‌ای که کسی با این تخصص روی آن کار می‌کند" },
    { id: "task", correctAnswers: [], hint: "هوش مصنوعی باید چه اقدام مشخصی انجام دهد؟", context: "عملی مناسب برای نقش و زمینه" },
    { id: "length", correctAnswers: [], hint: "پاسخ چقدر باید طولانی باشد؟", context: "یک عدد (تعداد کلمات)" },
    { id: "focus", correctAnswers: [], hint: "چه جنبه‌ای باید اولویت داشته باشد؟", context: "یک کیفیت یا جنبه مرتبط با وظیفه" },
    { id: "format", correctAnswers: [], hint: "خروجی باید چگونه ساختاربندی شود؟", context: "یک نوع قالب خروجی" }
  ]}
  explanation="یک پرامپت با ساختار خوب شامل: یک نقش روشن (اصل ۱)، زمینه کافی (اصل ۳)، وظیفه مشخص (اصل ۲)، محدودیت‌ها (اصل ۴) و قالب خروجی (اصل ۵) است. هوش مصنوعی بررسی می‌کند که آیا انتخاب‌های شما از نظر داخلی سازگار هستند."
/>

<InteractiveChecklist
  title="چک‌لیست اصول"
  items={[
    { id: "clarity", label: "وضوح بر هوشمندی", description: "آیا پرامپت شما صریح و بدون ابهام است؟" },
    { id: "specificity", label: "دقت کیفیت می‌آورد", description: "آیا مخاطب، طول، لحن و قالب را گنجانده‌اید؟" },
    { id: "context", label: "زمینه پادشاه است", description: "آیا پرامپت شامل تمام اطلاعات پس‌زمینه لازم است؟" },
    { id: "examples", label: "مثال‌ها بهتر از توضیحات هستند", description: "آیا آنچه می‌خواهید را نشان داده‌اید، نه فقط توصیف کرده‌اید؟" },
    { id: "constraints", label: "محدودیت‌ها خروجی را متمرکز می‌کنند", description: "آیا مرزهای روشنی برای محدوده و قالب وجود دارد؟" },
    { id: "iteration", label: "تکرار و اصلاح کنید", description: "آیا آماده‌اید بر اساس نتایج بهبود دهید؟" },
    { id: "persona", label: "پرسونا دیدگاه را شکل می‌دهد", description: "آیا هوش مصنوعی می‌داند چه نقشی بازی کند؟" },
    { id: "verify", label: "تأیید و اعتبارسنجی کنید", description: "آیا بررسی‌هایی برای دقت در آن گنجانده‌اید؟" }
  ]}
/>

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