Prompt Debugging: Why Isn't This Working?
Prompt not working? Learn a systematic diagnostic tree, logging strategy, and model swap checklist.
Şükrü Yusuf KAYA
12 min read
IntermediateHipotez → 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:
- Çıktı format dışı mı geliyor? → Schema / prefill / validator-loop (Ders 3.2).
- Cevap olgusal yanlış mı? → Bilgi sorunu (RAG / web / kaynak).
- Cevap kısa veya yarım mı? → max_tokens limiti / stop_sequences problemi.
- Cevap doğru ama kalitesiz mi? → Persona, few-shot, model yetkin değil.
- Cevap rastgele mi varyant gösteriyor? → temperature, sampling, prompt'un ambiguite'si.
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ıtimport 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.Frequently Asked Questions
Split your evals into 'critical invariants' (must not break) and 'quality metrics' (expected to improve). If invariants break, revert or bump the prompt version to MAJOR.
Yorumlar & Soru-Cevap
(0)Yorum yazmak için giriş yap.
Yorumlar yükleniyor...