Prompt mühəndisliyi nadir hallarda tək dəfəlik bir prosesdir. Ən yaxşı promptlar iterasiya ilə ortaya çıxır—istənilən nəticələri əldə edənə qədər test etmə, müşahidə etmə və yaxşılaşdırma.

<Callout type="info" title="İlk Qaralama, Son Qaralama Deyil">
İlk promptunuzu kobud bir qaralama olaraq düşünün. Təcrübəli prompt mühəndisləri belə nadir hallarda ilk cəhddə tutur.
</Callout>

## İterasiya Döngüsü

Effektiv prompt yaxşılaşdırma proqnozlaşdırıla bilən bir döngü izləyir: yaz, test et, analiz et və yaxşılaşdır. Hər iterasiya sizi etibarlı şəkildə ehtiyacınız olan nəticələri istehsal edən bir prompta yaxınlaşdırır.

<IterativeRefinementDemo />

## Ümumi Yaxşılaşdırma Nümunələri

Əksər prompt uğursuzluqları bir ovuc kateqoriyaya düşür. Bu nümunələri tanımağı öyrənmək, sıfırdan başlamadan problemləri sürətlə diaqnoz etməyinizi və düzəltməyinizi təmin edir.

### Problem: Çıxış Çox Uzun

Ən ümumi problemlərdən biri. Açıq məhdudiyyətlər olmadan, modellər qısa olmaq əvəzinə hərtərəfli olmağa meyillidir.

<DiffView 
  before="Fotosintezin necə işlədiyini izah et."
  after={`Fotosintezin necə işlədiyini 10 yaşlı bir uşağa uyğun 3-4 cümlədə izah et.`}
  beforeLabel="Orijinal"
  afterLabel="Yaxşılaşdırılmış"
/>

### Problem: Çıxış Çox Qeyri-müəyyən

Qeyri-müəyyən promptlar qeyri-müəyyən çıxışlar istehsal edir. Model, "daha yaxşı"nın nə demək olduğunu və ya hansı cəhətlərin sizin üçün ən vacib olduğunu zehinizi oxuyaraq bilə bilməz.

<DiffView 
  before="Daha yaxşı təqdimatlar üçün məsləhətlər ver."
  after={`Texniki olmayan maraqlı tərəflərə edilən texniki təqdimatları yaxşılaşdırmaq üçün 5 spesifik, tətbiq oluna bilən məsləhət ver. Hər məsləhət üçün konkret bir nümunə əlavə et.`}
  beforeLabel="Orijinal"
  afterLabel="Yaxşılaşdırılmış"
/>

### Problem: Yanlış Ton

Ton subyektiv və kontekstə görə dəyişir. Modelin "peşəkar" gördüyü şey təşkilatınızın səsi və ya alıcı ilə münasibətinizlə uyğun gəlməyə bilər.

<DiffView 
  before="Bir son tarix qaçırdığım üçün üzr e-poçtu yaz."
  after={`Bir layihə son tarixini qaçırdığım üçün peşəkar amma isti bir üzr e-poçtu yaz. Ton həddən artıq üzr istəmədən hesabatlı olmalıdır. Gələcək gecikmələrin qarşısını almaq üçün konkret bir plan əlavə et.`}
  beforeLabel="Orijinal"
  afterLabel="Yaxşılaşdırılmış"
/>

### Problem: Açar Məlumat Əksik

Açıq uçlu istəklər açıq uçlu cavablar alır. Müəyyən növ rəyə ehtiyacınız varsa, açıq şəkildə soruşmalısınız.

<DiffView 
  before="Bu kodu nəzərdən keçir."
  after={`Bu Python kodunu bunlar üçün nəzərdən keçir:
1. Xətalar və məntiqi xətalar
2. Performans problemləri
3. Təhlükəsizlik boşluqları
4. Kod stili (PEP 8)

Tapılan hər problem üçün problemi izah et və bir düzəliş təklif et.

[kod]`}
  beforeLabel="Orijinal"
  afterLabel="Yaxşılaşdırılmış"
/>

### Problem: Ardıcıl Olmayan Format

Şablon olmadan, model hər cavabı fərqli strukturlaşdıracaq, müqayisəni çətinləşdirəcək və avtomatlaşdırmanı qeyri-mümkün edəcək.

<DiffView 
  before="Bu üç məhsulu analiz et."
  after={`Bu üç məhsulu hər biri üçün tam olaraq bu formatı istifadə edərək analiz et:

## [Məhsul Adı]
**Qiymət:** X AZN
**Üstünlükləri:** [nöqtəli siyahı]
**Çatışmazlıqları:** [nöqtəli siyahı]
**Ən Yaxşı İstifadə:** [tək cümlə]
**Bal:** X/10

[məhsullar]`}
  beforeLabel="Orijinal"
  afterLabel="Yaxşılaşdırılmış"
/>

## Sistematik Yaxşılaşdırma Yanaşması

Təsadüfi dəyişikliklər vaxt itirir. Sistematik bir yanaşma problemləri sürətlə müəyyən etməyinizə və səmərəli şəkildə düzəltməyinizə kömək edir.

### Addım 1: Problemi Diaqnoz Et

Hər hansı bir şeyi dəyişdirməzdən əvvəl, həqiqətən nəyin yanlış olduğunu müəyyən edin. Əlamətləri həllərə uyğunlaşdırmaq üçün bu diaqnoz cədvəlindən istifadə edin:

<div className="my-4 grid gap-2">
  <div className="grid grid-cols-3 gap-2 p-3 bg-muted/50 rounded-lg text-sm">
    <span className="font-semibold">Əlamət</span>
    <span className="font-semibold">Mümkün Səbəb</span>
    <span className="font-semibold">Həll</span>
  </div>
  <div className="grid grid-cols-3 gap-2 p-3 bg-red-50 dark:bg-red-950/20 rounded-lg text-sm">
    <span>Çox uzun</span>
    <span className="text-muted-foreground">Uzunluq məhdudiyyəti yox</span>
    <span className="text-green-600 dark:text-green-400">Söz/cümlə limitləri əlavə et</span>
  </div>
  <div className="grid grid-cols-3 gap-2 p-3 bg-red-50 dark:bg-red-950/20 rounded-lg text-sm">
    <span>Çox qısa</span>
    <span className="text-muted-foreground">Detal istəyi əksik</span>
    <span className="text-green-600 dark:text-green-400">İzahat istə</span>
  </div>
  <div className="grid grid-cols-3 gap-2 p-3 bg-red-50 dark:bg-red-950/20 rounded-lg text-sm">
    <span>Mövzu xarici</span>
    <span className="text-muted-foreground">Qeyri-müəyyən təlimatlar</span>
    <span className="text-green-600 dark:text-green-400">Daha spesifik ol</span>
  </div>
  <div className="grid grid-cols-3 gap-2 p-3 bg-red-50 dark:bg-red-950/20 rounded-lg text-sm">
    <span>Yanlış format</span>
    <span className="text-muted-foreground">Format göstərilməyib</span>
    <span className="text-green-600 dark:text-green-400">Tam strukturu təyin et</span>
  </div>
  <div className="grid grid-cols-3 gap-2 p-3 bg-red-50 dark:bg-red-950/20 rounded-lg text-sm">
    <span>Yanlış ton</span>
    <span className="text-muted-foreground">Hədəf auditoriya aydın deyil</span>
    <span className="text-green-600 dark:text-green-400">Hədəf auditoriya/stili göstər</span>
  </div>
  <div className="grid grid-cols-3 gap-2 p-3 bg-red-50 dark:bg-red-950/20 rounded-lg text-sm">
    <span>Ardıcıl olmayan</span>
    <span className="text-muted-foreground">Nümunə verilməyib</span>
    <span className="text-green-600 dark:text-green-400">Az nümunəli nümunələr əlavə et</span>
  </div>
</div>

### Addım 2: Hədəfli Dəyişikliklər Et

Hər şeyi yenidən yazmaq istəyinə müqavimət göstər. Bir neçə dəyişəni eyni anda dəyişdirmək nəyin kömək etdiyini və nəyin zərər verdiyini bilməyi qeyri-mümkün edir. Bir dəyişiklik et, test et, sonra davam et:

```
İterasiya 1: Uzunluq məhdudiyyəti əlavə et
İterasiya 2: Format göstər
İterasiya 3: Nümunə əlavə et
İterasiya 4: Ton təlimatlarını yaxşılaşdır
```

### Addım 3: İşləyəni Sənədləşdir

Prompt mühəndisliyi biliyi asanlıqla itirilir. Nəyi sınadığınızın və niyənin qeydini saxlayın. Bu, promptu daha sonra yenidən ziyarət etdiyinizdə və ya oxşar çətinliklərlə qarşılaşdığınızda vaxt qazandırır:

```markdown
## Prompt: Müştəri E-poçt Cavabı

### Versiya 1 (çox rəsmi)
"Bu müştəri şikayətinə bir cavab yaz."

### Versiya 2 (daha yaxşı ton, hələ də struktur əksik)
"Bu şikayətə dostcasına amma peşəkar bir cavab yaz. 
Əvvəlcə empatiya göstər."

### Versiya 3 (final - yaxşı nəticələr)
"Bu müştəri şikayətinə bir cavab yaz. Struktur:
1. Məyusluqlarını qəbul et (1 cümlə)
2. Spesifik olaraq üzr istə (1 cümlə)  
3. Həlli izah et (2-3 cümlə)
4. Əlavə kömək təklif et (1 cümlə)

Ton: Dostcasına, peşəkar, empatik amma yaltaqlanmayan."
```

## Real Dünya İterasiya Nümunəsi

Hər yaxşılaşdırmanın əvvəlkinin üzərində necə qurulduğunu görmək üçün tam bir iterasiya döngüsünü nəzərdən keçirək. Hər versiyanın əvvəlkinin spesifik çatışmazlıqlarını necə həll etdiyinə diqqət yetirin.

### Tapşırıq: Məhsul Adları Yaratma

<VersionDiff versions={[
  {
    label: "Versiya 1",
    content: "Yeni bir məhsuldarlıq tətbiqi üçün adlar yarat.",
    note: "Çox ümumi, kontekst yox"
  },
  {
    label: "Versiya 2",
    content: `Yeni bir məhsuldarlıq tətbiqi üçün adlar yarat. Tətbiq enerji səviyyələrinə və təqvim mövcudluğuna görə tapşırıqlarınızı avtomatik olaraq planlamaq üçün süni intellekt istifadə edir.`,
    note: "Kontekst əlavə edildi, hələ də ümumi"
  },
  {
    label: "Versiya 3",
    content: `Bu xüsusiyyətlərə malik bir məhsuldarlıq tətbiqi üçün 10 unikal, yadda qalan ad yarat:
- Enerji səviyyələrinə görə tapşırıqları planlamaq üçün süni intellekt istifadə edir
- Hədəf auditoriya: 25-40 yaş arası məşğul peşəkarlar
- Marka tonu: müasir, ağıllı, yüngül əyləncəli
- Qaçın: "pro", "ağıllı", "AI", "tapşırıq" kimi ümumi sözlər

Hər ad üçün niyə işlədiyini izah et.`,
    note: "Məhdudiyyətlər və mühakimə əlavə edildi"
  },
  {
    label: "Versiya 4 (final)",
    content: `Bir məhsuldarlıq tətbiqi üçün 10 unikal, yadda qalan ad yarat.

Kontekst:
- Enerji səviyyələrinə görə tapşırıqları planlamaq üçün süni intellekt istifadə edir
- Hədəf: məşğul peşəkarlar, 25-40
- Ton: müasir, ağıllı, yüngül əyləncəli

Tələblər:
- Maksimum 2-3 heca
- Tələffüzü və yazılışı asan
- .com domen olaraq mövcud (ağlabatan olub-olmadığını yoxla)
- Qaçın: ümumi sözlər (pro, ağıllı, AI, tapşırıq, flow)

Format:
Ad | Tələffüz | Niyə İşləyir | Domen Mövcudluq Təxmini`,
    note: "Strukturlaşdırılmış format, spesifik tələblər"
  }
]} />

## Tapşırıq Növünə Görə Yaxşılaşdırma Strategiyaları

Fərqli tapşırıqlar proqnozlaşdırıla bilən şəkillərdə uğursuz olur. Ümumi uğursuzluq modlarını bilmək problemləri daha sürətli diaqnoz etməyinizə və düzəltməyinizə kömək edir.

### Məzmun İstehsalı Üçün

Məzmun istehsalı adətən ümumi, hədəf xarici və ya pis formatlanmış çıxış istehsal edir. Düzəliş adətən məhdudiyyətlər haqqında daha spesifik olmağı, konkret nümunələr verməyi və ya marka səsinizi açıq şəkildə təyin etməyi əhatə edir.

<InfoGrid items={[
  { icon: "target", title: "Çox Ümumi", description: "Spesifik məhdudiyyətlər və kontekst əlavə et", example: "\"İtlər haqqında yaz\" → \"İlk dəfə sahiblənənlər üçün golden retriever-lar haqqında, təlim və hərəkət ehtiyaclarına diqqət edərək yaz\"" },
  { icon: "scissors", title: "Çox Uzun", description: "Söz/paraqraf limitləri qoy", example: "Əlavə et: \"Cavabı 150 sözdən az saxla\" və ya \"Maksimum 3 paraqraf\"" },
  { icon: "palette", title: "Yanlış Stil", description: "Stil nümunələri ver", example: "\"Bu nümunənin stilində yaz: [nümunə mətn yapışdır]\"" },
  { icon: "megaphone", title: "Marka Xarici", description: "Marka səsi təlimatlarını daxil et", example: "\"Dostcasına, günlük ton istifadə et. Jarqondan qaçın. Oxucuya 'sən' deyə müraciət et.\"" }
]} />

### Kod İstehsalı Üçün

Kod çıxışı texniki olaraq (sintaksis xətaları, yanlış dil xüsusiyyətləri) və ya memarlıq olaraq (pis nümunələr, əksik hallar) uğursuz ola bilər. Texniki problemlər versiya/mühit spesifikasiyaları tələb edir; memarlıq problemləri dizayn rəhbərliyi tələb edir.

<InfoGrid items={[
  { icon: "code", title: "Sintaksis Xətaları", description: "Dil versiyasını göstər", example: "\"Python 3.11+ sintaksisi istifadə et, type hints ilə\" və ya \"ES2022 JavaScript\"" },
  { icon: "git-branch", title: "Yanlış Yanaşma", description: "Üstünlük verilən nümunələri təyin et", example: "\"Funksional yanaşma istifadə et, siniflərdən qaçın\" və ya \"Repository pattern izlə\"" },
  { icon: "shield", title: "Əksik Uç Hallar", description: "Həll ediləcək ssenariləri siyahıla", example: "\"Həll et: boş giriş, null dəyərlər, şəbəkə zaman aşımları, etibarsız formatlar\"" },
  { icon: "tag", title: "Pis Adlandırma", description: "Adlandırma qaydalarını daxil et", example: "\"Dəyişənlər üçün camelCase, siniflər üçün PascalCase, sabitlər üçün UPPER_SNAKE istifadə et\"" }
]} />

### Analiz Üçün

Analiz tapşırıqları adətən səthï və ya strukturlaşdırılmamış nəticələr istehsal edir. Modeli spesifik çərçivələrlə (SWOT, Porter-in Beş Gücü), bir neçə baxış bucağı istəyi ilə və ya çıxış strukturu üçün bir şablon təmin edərək yönləndirin.

<InfoGrid items={[
  { icon: "layers", title: "Çox Səthi", description: "Spesifik çərçivələr istə", example: "\"SWOT çərçivəsi istifadə edərək analiz et\" və ya \"Porter-in Beş Gücünü tətbiq et\"" },
  { icon: "scale", title: "Tərəfli", description: "Bir neçə perspektiv istə", example: "\"Lehində və əleyhinə arqumentləri təqdim et\" və ya \"Şübhəçi baxış bucağını daxil et\"" },
  { icon: "database", title: "Əksik Məlumat", description: "Nəyin analiz ediləcəyini göstər", example: "\"Bunlara diqqət yetir: bazar ölçüsü, böyümə sürəti, açar oyunçular, giriş maneələri\"" },
  { icon: "layout", title: "Strukturlaşdırılmamış", description: "Analiz şablonu ver", example: "\"Belə formatla: Xülasə → Əsas Tapıntılar → Nəticələr → Tövsiyələr\"" }
]} />

### S&C Üçün

Sual-cavab çox qısa və ya çox uzun ola bilər və əminlik göstəriciləri və ya mənbələr əksik ola bilər. Ehtiyacınız olan detal səviyyəsini və sitat və ya qeyri-müəyyənlik ifadəsi istəyib-istəmədiyinizi göstərin.

<InfoGrid items={[
  { icon: "plus", title: "Çox Qısa", description: "İzahat istə", example: "\"Nümunələrlə ətraflı izah et\" və ya \"Hər nöqtəni genişləndir\"" },
  { icon: "minus", title: "Çox Uzun", description: "Qısa cavab istə", example: "\"2-3 cümlədə cavabla\" və ya \"TL;DR ver\"" },
  { icon: "help-circle", title: "Qeyri-müəyyən", description: "Əminlik səviyyəsi istə", example: "\"Əminliyini 1-10 ilə qiymətləndir\" və ya \"Edilən fərziyyələri qeyd et\"" },
  { icon: "link", title: "Mənbə Yox", description: "Sitat istə", example: "\"İddialar üçün mənbə göstər\" və ya \"Mümkünsə istinadlar əlavə et\"" }
]} />

## Rəy Döngüsü Texnikası

Budur bir meta-texnika: promptlarınızı yaxşılaşdırmaq üçün modelin özünü istifadə edin. Nəyi sınadığınızı, nə aldığınızı və nə istədiyinizi paylaşın. Model adətən düşünmədiyiniz yaxşılaşdırmalar təklif edə bilər.

```
Bu promptu istifadə etdim:
"[promptunuz]"

Və bu çıxışı aldım:
"[model çıxışı]"

Daha [boşluğu təyin et] bir şey istədim. Daha yaxşı nəticələr almaq 
üçün promptumu necə dəyişdirməliyəm?
```

## A/B Testi Promptları

Təkrar-təkrar və ya miqyasda istifadə ediləcək promptlar üçün sadəcə işləyən birincini seçməyin. Ən etibarlı və ən yüksək keyfiyyətli yanaşmanı tapmaq üçün variasiyaları test edin.

```
Prompt A: "Bu məqaləni 3 nöqtədə xülasə et."
Prompt B: "Bu məqalədən ən vacib 3 fikri çıxar."
Prompt C: "Bu məqalədən əsas çıxarışlar nələrdir? 3-ünü siyahıla."
```

Hər birini bir neçə dəfə işlət, müqayisə et:
- Çıxış ardıcıllığı
- Məlumat keyfiyyəti
- Ehtiyaclarınızla əlaqəlilik

## Nə Vaxt İterasiyanı Dayandırmalı

Mükəmməllik kifayət qədər yaxşının düşmənidir. Promptunuzun istifadəyə hazır olduğu vaxtı və azalan gəlirlər üçün sadəcə cilaladığınız vaxtı bilin.

<div className="my-6 grid md:grid-cols-2 gap-4">
  <div className="border rounded-lg bg-green-50/50 dark:bg-green-950/20 border-green-200 dark:border-green-900">
    <p className="text-sm font-semibold text-green-700 dark:text-green-400 px-4 pt-3 flex items-center gap-2 m-0!"><IconCheck className="h-4 w-4" /> Göndərməyə Hazır</p>
    <div className="text-sm p-4 pt-2 space-y-1">
      <p className="m-0!">Çıxış ardıcıl olaraq tələbləri qarşılayır</p>
      <p className="m-0!">Uç hallar uyğun şəkildə həll edilir</p>
      <p className="m-0!">Format etibarlı və təhlil edilə biləndir</p>
      <p className="m-0!">Daha çox yaxşılaşdırma azalan gəlir göstərir</p>
    </div>
  </div>
  <div className="border rounded-lg bg-red-50/50 dark:bg-red-950/20 border-red-200 dark:border-red-900">
    <p className="text-sm font-semibold text-red-700 dark:text-red-400 px-4 pt-3 flex items-center gap-2 m-0!"><IconX className="h-4 w-4" /> İterasiyaya Davam Et</p>
    <div className="text-sm p-4 pt-2 space-y-1">
      <p className="m-0!">Çıxış işlətmələr arasında ardıcıl deyil</p>
      <p className="m-0!">Uç hallar uğursuzluqlara səbəb olur</p>
      <p className="m-0!">Kritik tələblər qaçırılır</p>
      <p className="m-0!">Kifayət qədər variasiya test etmədiniz</p>
    </div>
  </div>
</div>

## Promptlar üçün Versiya Nəzarəti

Promptlar koddur. İstehsalda istifadə edilən hər hansı bir prompt üçün eyni ciddiylə davranın: versiya nəzarəti, dəyişiklik jurnalları və bir şeylər pozularsa geri qaytarma qabiliyyəti.

<Callout type="tip" title="Daxili Versiyalaşdırma">
prompts.chat promptlarınız üçün avtomatik versiya tarixçəsi ehtiva edir. Hər redaktə qeyd olunur, beləliklə versiyaları müqayisə edə bilər və əvvəlki iterasiyaları bir kliklə bərpa edə bilərsiniz.
</Callout>

Özünüz idarə etdiyiniz promptlar üçün qovluq strukturu istifadə edin:

```
promptlar/
├── musteri-cavabi/
│   ├── v1.0.txt    # İlk versiya
│   ├── v1.1.txt    # Ton problemi düzəldildi
│   ├── v2.0.txt    # Böyük yenidən strukturlaşdırma
│   └── current.txt # Aktiv versiyaya symlink
└── deyisiklik-jurnali.md    # Dəyişiklikləri sənədləşdir
```

## Xülasə

<Callout type="tip" title="Əsas Çıxarışlar">
Sadə başla, diqqətlə müşahidə et, bir dəfədə bir şeyi dəyişdir, işləyəni sənədləşdir və nə vaxt dayandıracağını bil. Ən yaxşı promptlar yazılmır—sistematik iterasiya ilə kəşf edilir.
</Callout>

<Quiz 
  question="Yanlış nəticələr istehsal edən bir promptu yaxşılaşdırarkən ən yaxşı yanaşma nədir?"
  options={[
    "Bütün promptu sıfırdan yenidən yaz",
    "İşləyənə qədər daha çox nümunə əlavə et",
    "Bir dəfədə bir şeyi dəyişdir və hər dəyişikliyi test et",
    "Promptu mümkün qədər uzun et"
  ]}
  correctIndex={2}
  explanation="Bir dəfədə bir şeyi dəyişdirmək nəyin işlədiyini və nəyin işləmədiyini ayırd etməyinizi təmin edir. Bir neçə şeyi eyni anda dəyişdirsəniz, hansı dəyişikliyin problemi həll etdiyini və ya hansının daha da pisləşdirdiyini bilə bilməzsiniz."
/>

## Praktika: Bu Promptu Yaxşılaşdır

Bu zəif promptu özünüz yaxşılaşdırmağa çalışın. Redaktə edin, sonra versiyanızı orijinalla müqayisə etmək üçün süni intellekt istifadə edin:

<BeforeAfterEditor
  title="Bu E-poçt Promptunu Yaxşılaşdır"
  badPrompt="Bir e-poçt yaz."
  idealPrompt={`Sən peşəkar bir iş yazarısan.

Tapşırıq: Bir satış görüşündən sonra potensial bir müştəriyə izləmə e-poçtu yaz.

Kontekst:
- TechCorp-da Marketinq VP-si Aynur Əliyeva ilə görüşdük
- Analitik platformamızı müzakirə etdik
- Hesabat xüsusiyyətlərinə maraq göstərdi
- Görüş dünən keçirildi

Tələblər:
- Peşəkar amma isti ton
- Görüşümüzdən spesifik nöqtələrə istinad et
- Aydın növbəti addım əlavə et (demo planla)
- 150 sözdən az saxla

Format: Mövzu sətri + e-poçt mətni`}
  task="Bu qeyri-müəyyən e-poçt promptunu peşəkar, effektiv bir nəticə istehsal edəcək bir şeyə çevir."
/>

Növbəti fəsildə, strukturlaşdırılmış məlumat tətbiqləri üçün JSON və YAML prompting-i kəşf edəcəyik.
