İçeriğe geç

Prompt Hata Ayıklama: Neden Çalışmıyor?

Prompt çalışmıyor mu? Bu derste hatayı sistematik bulmak için çalışan bir teşhis ağacı, log stratejisi ve model değişikliği checklist'i öğreneceksin.

Şükrü Yusuf KAYA
12 dakikalık okuma
Orta
Prompt debug için karar ağacı
Hipotez → izole et → düzelt
Yazılım debug'ı gibi prompt debug'ı da hipotez kurmakla başlar. 'Çalışmıyor' yetersizdir; 'şu girdide şu adımda şu hata oluyor' demek lazımdır.

Teşhis Ağacı

Prompt çalışmadığında soracağın 5 ardışık soru:
  1. Çıktı format dışı mı geliyor? → Schema / prefill / validator-loop (Ders 3.2).
  2. Cevap olgusal yanlış mı? → Bilgi sorunu (RAG / web / kaynak).
  3. Cevap kısa veya yarım mı? → max_tokens limiti / stop_sequences problemi.
  4. Cevap doğru ama kalitesiz mi? → Persona, few-shot, model yetkin değil.
  5. Cevap rastgele mi varyant gösteriyor? → temperature, sampling, prompt'un ambiguite'si.
Debug karar ağacı: format / olgusal / kısa / kalitesiz / varyant düğümleriyle
Sistematik prompt debug akışı.

Loglama Stratejisi#

Üretimde her çağrıyı şu alanlarla logla:
  • prompt_id, prompt_version (semver)
  • model_id, temperature, max_tokens
  • input_token_count, output_token_count
  • system_prompt_hash (PII'siz)
  • user_input_hash
  • response_excerpt (ilk 200 char)
  • eval_score (varsa LLM-as-judge)
  • user_feedback (👍/👎)
Bu log Modül 9'da daha derinleşecek; ama prompt'u ilk yazarken bu alanları planla.
python
# Lightweight prompt logger — production'da CloudWatch / Datadog / Sentry'ye akıt
import json, hashlib, time
 
def log_call(*, prompt_id, version, model, system, user_input, response, latency_ms):
rec = {
"ts": int(time.time()),
"prompt_id": prompt_id,
"prompt_version": version,
"model": model,
"sys_hash": hashlib.sha256(system.encode()).hexdigest()[:12],
"input_hash": hashlib.sha256(user_input.encode()).hexdigest()[:12],
"input_chars": len(user_input),
"response_excerpt": response[:200],
"latency_ms": latency_ms,
}
print(json.dumps(rec, ensure_ascii=False))
Hash'leri logla — tam metni değil. PII güvende kalır, regression yine yakalanır.
text · diff modu
Senin kodun
Hedefe karşı diff
+ # Sonra: izole hata
+ - prompt_id: support_classifier@1.4.0
+ - input: "ödeme yansımadı"
+ - expected: {"category":"billing"}
+ - got: {"category":"tech"}
+ - model: claude-haiku-4-5
+ - temperature: 0.0
+ - hipotez: tech ile billing örnekleri benzer formülasyonlarla
+ yazılmış, model ayırt edemiyor → daha keskin few-shot ekle.
- # Önce: belirsiz hata
- "Niye yanlış cevap veriyor anlamadım"
İzole edilmiş hata 10 dakikada düzeltilir; izole edilmemiş hata gün alır.
Boşluk doldur · text
Prompt debug akışında ilk 5 soru: format dışı mı, _____ yanlış mı, kısa mı, _____ yetersiz mi, varyant mı? Tutarlı cevaplar için _____ değeri 0 veya 0.1 olmalıdır.

Sık Sorulan Sorular

Eval setini iki kategoriye böl: 'kritik invariant' (bozulmamalı) ve 'kalite metriği' (iyileşmesi beklenir). Kritik invariant bozulduğunda ya prompt'u rölö yap ya da prompt sürümünü MAJOR yükselt.

Yorumlar & Soru-Cevap

(0)
Yorum yazmak için giriş yap.
Yorumlar yükleniyor...

İlgili İçerikler