2.5 Few-shot ve Chain-of-Thought¶
Yabancı kelime mi gördün?
Bu sayfadaki italik-altı çizili ifadelerin (few-shot, CoT, reasoning gibi) üstüne mouse'unu getir — kısa tanım çıkar.
Neden bu sayfa?¶
2.4'te Claude'a "kim olduğunu" söyledin (rol). Şimdi "nasıl yapacağını" göstereceksin — örnek vererek. İnsanlar da böyle öğrenir: "şu işi şöyle yap" demek yerine "bak, böyle yapıyorum" deyip 3 örnek göstermek 3 kat daha hızlı sonuç verir. Claude'da aynı.
İkincisi: Bazı sorular doğrudan cevap istemez, akıl yürütme ister. "Kütüphanede 3 kitap, her birinde 250 sayfa, ben günde 50 sayfa okuyorum, kaç günde biter?" — Claude direkt "15 gün" derse şanslıdır; "bekle, hesaplayım: 3×250=750, 750÷50=15" derse doğru olma şansı çok daha yüksek. Bu Chain-of-Thought (CoT) — Claude'a düşünme alanı vermek.
Üçüncüsü: 2025-2026'da Anthropic extended thinking özelliğini ekledi — Claude bazı modellerde "düşünme bütçesi" ile gelir, kullanıcı sormadan kendi kendine düşünür. Bu yeni mimari sayesinde "düşünmesi gereken" sorular daha iyi çözülür ama token maliyeti 5-10 kat artar — kontrol senin elinde.
Few-shot ve CoT kısaca — üç paragraf, matematiksiz¶
Few-shot prompting = Claude'a benzer örnekler göstermek. Sistem prompt'una "şu şekilde yap" demek yerine "Örnek 1: girdi A → çıktı B. Örnek 2: girdi C → çıktı D. Şimdi sen yap: girdi E → ?" demek. 3-5 örnek çoğu zaman yeterli; daha fazlası fazla token harcar, az iyileşme verir.
Zero-shot = hiç örnek yok, sadece talimat. "Bu metni özetle" → Claude doğal davranışıyla cevap verir. Çoğu basit görev için yeter. Karmaşık veya beklenmedik formatlı görevler için yetmez.
Chain-of-Thought (CoT) = düşünme zinciri. "Cevap vermeden önce adım adım düşün" talimatı. Claude cevabı vermeden ara hesapları gösterir; bu sayede mantık hatası yapma olasılığı %30-50 düşer (matematik, mantık bulmacası, çok adımlı analiz için). Ama: Basit soruda CoT eklemek 5x token harcar, kalite kazanmaz. Karar = göreve bakmak.
Bu sayfanın ekosistemi — kim kime ne veriyor¶
flowchart TB
S["👤 Sen\n(zor görev)"]
PROMPT["📝 Prompt"]
Z["⚡ 0-shot\n(direkt soru)"]
F["📚 Few-shot\n(3 örnek + soru)"]
C["🧠 CoT\n('adım adım\ndüşün')"]
FC["🚀 Few-shot + CoT\n(en güçlü)"]
API["🌐 Claude API"]
Q["📊 Kalite\nölçüsü"]
S --> PROMPT
PROMPT --> Z --> API
PROMPT --> F --> API
PROMPT --> C --> API
PROMPT --> FC --> API
API --> Q
classDef sen fill:#ddd6fe,stroke:#7c3aed,color:#111
classDef pr fill:#dbeafe,stroke:#2563eb,color:#111
classDef teknik fill:#fef3c7,stroke:#ca8a04,color:#111
classDef best fill:#fef3c7,stroke:#ca8a04,color:#111
classDef uzak fill:#fed7aa,stroke:#ea580c,color:#111
class S sen
class PROMPT,Q pr
class Z,F,C teknik
class FC best
class API uzak
| Düğüm | Nerede | Ne iş yapıyor |
|---|---|---|
| 👤 Sen | Python kod | 4 farklı prompt stratejisini deneyip en iyiyi seçiyorsun |
| ⚡ 0-shot | Sadece talimat | En ucuz, en hızlı. Basit görevler için yeter |
| 📚 Few-shot | Talimat + 3-5 örnek | Format/tarz tutturmak için. Token maliyeti orta |
| 🧠 CoT | "Adım adım düşün" talimatı | Mantık/matematik/çok-adımlı görev için. Token maliyeti yüksek |
| 🚀 Few-shot + CoT | Hem örnek hem düşünme zinciri | En güçlü ama en pahalı. Karmaşık göreve değer |
| 🌐 Claude API | api.anthropic.com | Hangi stratejiyle gelirse o şekilde işler |
| 📊 Kalite ölçüsü | Sen değerlendirirsin | Sayısal eval (Bölüm 4.5) veya gözle |
Uygulama — iki yol¶
Yol A — Few-shot: müşteri yorum sınıflandırma¶
Görev: Türkçe müşteri yorumlarını olumlu/olumsuz/nötr olarak sınıflandır + emoji ekle.
import anthropic
client = anthropic.Anthropic()
# 0-shot — sadece talimat
PROMPT_0SHOT = """Aşağıdaki müşteri yorumunu olumlu/olumsuz/nötr olarak sınıflandır.
Sadece "olumlu 🟢", "olumsuz 🔴" veya "nötr 🟡" formatında cevap ver.
Yorum: "Kargonuz hızlı geldi ama ürün hasarlıydı, iade ettim." """
# Few-shot — 3 örnek + soru
PROMPT_FEWSHOT = """Müşteri yorumlarını olumlu/olumsuz/nötr olarak sınıflandır.
Format: "olumlu 🟢", "olumsuz 🔴", "nötr 🟡". Sadece bu formatı ver, başka açıklama yok.
<ornek>
Yorum: "Ürün harika, çok memnunum!"
Sınıf: olumlu 🟢
</ornek>
<ornek>
Yorum: "Paketleme kötüydü ama ürün iyi."
Sınıf: nötr 🟡
</ornek>
<ornek>
Yorum: "Tam bir hayal kırıklığı, asla almayın."
Sınıf: olumsuz 🔴
</ornek>
Yorum: "Kargonuz hızlı geldi ama ürün hasarlıydı, iade ettim."
Sınıf:"""
for ad, prompt in [("0-SHOT", PROMPT_0SHOT), ("FEW-SHOT (3 örnek)", PROMPT_FEWSHOT)]:
print(f"\n{'='*50}")
print(f"🔬 STRATEJİ: {ad}")
print('='*50)
cevap = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=50,
temperature=0, # tutarlılık için
messages=[{"role": "user", "content": prompt}],
)
print(f"Cevap: {cevap.content[0].text}")
print(f"Token kullanımı: {cevap.usage.input_tokens} in / {cevap.usage.output_tokens} out")
Beklenen davranış:
==================================================
🔬 STRATEJİ: 0-SHOT
==================================================
Cevap: Bu yorumu nötr olarak sınıflandırırım. Çünkü hem olumlu (kargo hızlı)
hem olumsuz (ürün hasarlı) yön içeriyor...
Token kullanımı: 65 in / 42 out
==================================================
🔬 STRATEJİ: FEW-SHOT (3 örnek)
==================================================
Cevap: nötr 🟡
Token kullanımı: 195 in / 6 out
Burada olan nedir (diyagram referansı): Few-shot Claude'a format kısıtını öğretti — fazla açıklama yok, sadece istenen biçim. 0-shot'ta daha çok input token harcamadan daha fazla output token harcadık (gereksiz açıklama). Few-shot'ta input arttı ama output 6'ya düştü — toplam maliyet daha düşük olabilir, kullanıcı için cevap daha temiz.
Yol B — Chain-of-Thought: zor matematik sorusu¶
Görev: Mantık + aritmetik gerektiren çok adımlı bir problem.
import anthropic
client = anthropic.Anthropic()
PROBLEM = """3 arkadaş bir lokantaya gitti.
- Ali 250 TL'lik yemek yedi
- Ayşe 320 TL'lik yemek yedi
- Mehmet 180 TL'lik yemek yedi
Hesaba %18 KDV eklendi, sonra %10 servis ücreti (KDV dahil tutar üzerinden) eklendi.
Toplam tutarı 3 kişi eşit paylaşırsa her biri ne kadar öder?"""
# CoT YOK — direkt cevap iste
PROMPT_DIREKT = f"{PROBLEM}\n\nCevap (sadece sayı):"
# CoT VAR — adım adım düşün
PROMPT_COT = f"""{PROBLEM}
Cevap vermeden önce <dusunce> tag'i içinde adım adım hesabını göster.
Sonra <cevap> tag'i içinde son sayıyı yaz."""
for ad, prompt in [("DİREKT (CoT yok)", PROMPT_DIREKT), ("CoT VAR", PROMPT_COT)]:
print(f"\n{'='*50}")
print(f"🧠 STRATEJİ: {ad}")
print('='*50)
cevap = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=500,
temperature=0,
messages=[{"role": "user", "content": prompt}],
)
print(cevap.content[0].text)
print(f"\nToken: {cevap.usage.input_tokens} in / {cevap.usage.output_tokens} out")
Beklenen davranış:
==================================================
🧠 STRATEJİ: DİREKT (CoT yok)
==================================================
324 TL
Token: 95 in / 4 out
[⚠️ %50 ihtimal yanlış — Claude direkt cevap verirken "%10 servis KDV dahil
tutar üzerinden mi yoksa orijinal tutar üzerinden mi" sorusunu gözden kaçırabilir]
==================================================
🧠 STRATEJİ: CoT VAR
==================================================
<dusunce>
Adım 1: Yemek toplamı = 250 + 320 + 180 = 750 TL
Adım 2: KDV %18 = 750 × 0.18 = 135 TL → KDV dahil = 885 TL
Adım 3: Servis %10 (KDV dahil tutar üstünden) = 885 × 0.10 = 88.5 TL
Adım 4: Final tutar = 885 + 88.5 = 973.5 TL
Adım 5: 3 kişi eşit paylaşım = 973.5 / 3 = 324.5 TL
</dusunce>
<cevap>324.5 TL</cevap>
Token: 105 in / 145 out
Burada olan nedir (diyagram referansı): CoT olmayan versiyonda Claude doğru cevabı verme şansını azalttı — ara hesapları görmeden tek seferde sonuca varmaya çalıştı. CoT versiyonunda her adımı kontrol edebiliyorsun, hata varsa nerede olduğu görünür. Token maliyeti ~36 kat arttı ama bu görev için makul — bir mali müşavir botu için doğruluk paradan kıymetli.
Karar matrisi: hangi strateji ne zaman?¶
| Görev tipi | Önerilen strateji | Token maliyeti |
|---|---|---|
| Basit Q&A ("Türkiye nüfusu kaç?") | 0-shot | Düşük |
| Format kısıtı olan görev (sınıflandırma, etiketleme) | Few-shot (3 örnek) | Orta |
| Tarz/üslup tutturma (e-posta, blog) | Few-shot (5 örnek) | Orta-yüksek |
| Mantık/matematik/akıl yürütme | CoT | Yüksek (3-5x) |
| Karmaşık + format kısıtlı + akıl yürütme | Few-shot + CoT | En yüksek |
| Yaratıcı yazma (şiir, hikâye) | 0-shot, temperature=1 | Düşük |
| Kod hata ayıklama (debugging) | CoT + assistant prefill | Yüksek ama değer |
Extended thinking — Claude 4.x'in kendi CoT'si¶
Claude Sonnet 4.6, Haiku 4.5 ve Opus modellerinde extended thinking özelliği var: kullanıcı sormadan model kendi kendine "düşünür" (thinking block üretir, kullanıcıya görünmez), sonra cevabını verir.
2026 Nisan güncel davranış: Opus 4.7 yalnızca adaptive thinking kabul eder (manuel {"type": "enabled"} 400 hatası verir); Sonnet 4.6'da manuel kullanım hâlâ çalışır ama Anthropic adaptive'i öneriyor:
# Önerilen (2026): adaptive — model kendi karar verir
cevap = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=2000,
thinking={"type": "adaptive", "effort": "medium"}, # low / medium / high
messages=[{"role": "user", "content": PROBLEM}],
)
# Eski (Sonnet 4.5 ve öncesinde): manuel bütçe — Opus 4.7'de çalışmaz
# thinking={"type": "enabled", "budget_tokens": 1500}
Pratikte: - Sen CoT istemesen bile Claude düşünür → daha doğru cevap - Token kullanımı 2-10 kat artar (düşünme tokenları faturaya yazılır) - Basit görevde kapat — gereksiz maliyet - Karmaşık matematik/kod/strateji görevlerinde aç — kalite belirgin artar
Anthropic önerisi: Tek seferde matematik/kod/uzun analiz görevi varsa thinking aç; chatbot'ta kapat. Yeni kod yazıyorsan adaptive ile başla.
Anthropic dokümantasyonu prompt engineering'in en zengin alanı — burası en derin:
1. Few-shot Anthropic'in 2. tavsiyesi. Anthropic'in resmi sıralaması: (1) clear instructions → (2) examples (few-shot) → (3) chain-of-thought → (4) XML structure. Sıralama tesadüf değil — örnek vermek, talimattan sonra en yüksek getiriyi sağlar.
2. CoT artık opsiyonel değil. 2025'ten itibaren Claude 4.x'te extended thinking default-on değil ama Anthropic karmaşık görevlerde şiddetle önerir. "Reasoning models" trendi (OpenAI o1, Claude'un thinking, Gemini'nin flash thinking) bu yöne gidiyor.
3. Few-shot örnekleri XML tag içinde. Anthropic eğitim verisinde örnekler XML ile sarılı geldiği için Claude <example> veya <ornek> tag'lerini örneğin "burada bitiyor" sınırı olarak özellikle iyi okur. Bare örnek (tag'siz) de çalışır ama %5-10 daha az etkili.
Teknik detay — isteyene (parameter adları, mekanikler, edge case'ler)
Few-shot örnek sayısı. Anthropic test sonuçları: 1 örnek belirgin iyileştirme verir, 3 örnek optimum, 5+ örnek "diminishing returns". 10+ örnek çoğu zaman zaman israfı — token maliyeti artar, kalite duvar.
CoT prompting varyantları.
- "Think step by step" (basic)
- "Think step by step inside <thinking> tags" (XML yapılı, Anthropic önerir)
- "Before answering, list 3 considerations" (yapılı reasoning)
- Few-shot CoT — örneklerin de düşünme zinciri içerir
Extended thinking parametresi. İki form: (a) thinking={"type": "adaptive", "effort": "low|medium|high"} — Opus 4.7 dahil tüm 4.x modellerde önerilen modern form; (b) thinking={"type": "enabled", "budget_tokens": N} — Sonnet 4.5 ve öncesinde kullanılırdı, Opus 4.7'de 400 hatası verir. Düşünme tokenları output token gibi fiyatlanır.
Thinking + tool use. Tool use ile birlikte extended thinking kullanılabilir — Claude tool çağırmadan önce düşünür. Ajan (agent) sistemleri için güçlü kombinasyon. Bölüm 6'da detay.
Prefill ile CoT zorlama. messages listesinin son elemanı {"role": "assistant", "content": "<dusunce>"} ise Claude direkt thinking yapısıyla başlar — talimat eklemeden CoT zorlama tekniği.
CoT döküm tehlikesi. Bazı durumlarda Claude düşünme zincirinde yanlış varsayımlara saplanır ve cevap yanlış çıkar. Self-consistency tekniği: aynı CoT prompt'u 3-5 kez çalıştırıp cevapları çoğunluk oyuyla seçmek — pahalı ama kritik göreve değer.
Kaynak: platform.claude.com — Claude Prompting Best Practices (EN, ~15 dk; few-shot, CoT, XML konuları 2026'da bu tek sayfada birleşti). Pekiştirme: Extended Thinking — 2025-2026 akıl yürüten modeller (reasoning models) trendinin Anthropic'teki karşılığı.
📦 Bu sayfayı bitirdiğini nasıl kanıtlarsın¶
1. 📝 Refleksiyon yazısı — 5 dakika¶
"Few-shot deneyi yaptım. 0-shot cevabı [şuydu], few-shot cevabı [şuydu]. Token farkı: [X in / Y out vs A in / B out]. CoT olmadan matematik problemini çözdürmeye çalıştım, cevap [doğru / yanlış] çıktı; CoT ile [doğru / yanlış]. Kendi projemde [hangi strateji] kullanacağım çünkü..."
Kaydet: muhendisal-notlarim/bolum-2/05-few-shot-cot/refleksiyon.txt
2. 📸 Ekran görüntüsü — 3 dakika¶
Neyin görüntüsü: Yol B çıktısı — CoT olmadan ve CoT ile aynı problemin iki farklı çözümü, hangisinin doğru olduğu görünür.
| OS | Kısayol |
|---|---|
| Windows | Win + Shift + S |
| Mac | Cmd + Shift + 4 |
| Linux | Shift + PrtScr |
Kaydet: muhendisal-notlarim/bolum-2/05-few-shot-cot/cot-karsilastirma.png
3. 💻 Kendi few-shot setin + Gist — 10 dakika¶
Kendi projende kullanabilecek bir görev seç (örn: e-posta sınıflandırma, ürün açıklaması üretme, kod yorumu yazma). 5 örnekli few-shot prompt yaz, 3 farklı yeni girdiyle test et. gist.github.com'a yükle.
Kaydet: muhendisal-notlarim/bolum-2/05-few-shot-cot/kendi-fewshot-gist.txt
- **LLM eğitim verisinde örnek görmeye alışık.** "Şu örneklere benzer yap" deseni insan-AI sohbet eğitiminin temelidir. Bu yüzden **few-shot prompting en güçlü format araçlarından biri.**
- **Few-shot 3 örnekte format/tarz tutar; 5+ örnek ek getiri sağlamaz.** Bu yüzden **3 iyi örnek yeterli — uzun ise token boşa gider.**
- **CoT mantık zincirini açıkça yazdırır.** Claude ara hesapları kendi kontrol edebilir hale gelir. Bu yüzden **karmaşık görevlerde kalite belirgin artar.**
- **Karmaşık görev = few-shot + CoT kombinasyonu.** Ucuz görev = 0-shot. Bu yüzden **maliyeti optimize etmek için görev tipi belirleyicidir.**
- **Extended thinking 2025-2026'nın trendi.** Claude kendisi düşünür, kullanıcı CoT istemez. Bu yüzden **maliyet artar ama üst sınıf görevlerde kalite belirgin.**
Sonuç: Prompt engineering'in "%80 etkisi" 4 teknikten gelir: clear instructions (2.4) + examples (2.5) + CoT (2.5) + XML tags (2.4). Bu sayfa son iki tekniği eline verdi. Kalan %20 ileri konular (caching, eval, safety) — Bölüm 8 ve sonrasında.
2.6 Prompt Şablonları → — Aynı prompt'u 100 farklı girdi için kopyala-yapıştır yapmak yerine şablon kullan. {{topic}} placeholder + Jinja2 + kendi prompts/ klasörün.
← 2.4 Sistem ve Kullanıcı Promptu | Bölüm 2 girişi | Ana sayfa
Pekiştirme: Anthropic Cookbook — prompt engineering interactive tutorial Colab'de aç. Few-shot + CoT bölümleri 5-7. Kendi API anahtarınla çalıştır — 1-2 saat harcadığın en iyi pratik budur.