Sohbet Thread Görüntüleyici
OpenAI veya Anthropic messages dizisini (JSON) yapıştır, okunabilir bir sohbet thread'i olarak göster. Role göre renkli. Tool-call parametreleri açılabilir. Tamamen tarayıcıda, yükleme yok.
Bu ne işe yarar?
LLM uygulamaları konuşmalarını JSON message dizileri olarak loglar — API'ye gönderilen şey budur ve audit log'larında, değerlendirme trace'lerinde, fine-tuning veri setlerinde ve SDK debug çıktısında gördüğün de budur. Bu dizileri çıplak gözle okumak işkencedir: escape'lenmiş string duvarları, escape'lenmiş JSON-içinde-JSON ile sarılmış tool-call argümanları, geri kalanla karışmış system prompt'lar. Bu araç sana hızlı bir baloncuk render'ı verir, böylece gerçek konuşmayı tarayabilir, hangi mesajlarda tool-call olduğunu görebilir ve raydan çıkan o tek prompt'u bulabilirsin.
Hangi formatları anlar
- OpenAI Chat Completions.
[{role, content}, ...]formatı, assistant mesajlarında opsiyoneltool_callsve tool sonuçları içinrole: "tool". En yaygın biçim. - Anthropic Messages API.
[{role, content: [...]}],contentblok dizisi (text,tool_use,tool_result,image). System prompt genelde top-level — görmek istiyorsan system mesajı olarak yapıştır. - LangChain mesaj dump'ları.
[{type: "human" | "ai" | "system", content: ...}]— eski LangChain biçimi, kaydedilmiş trace'lerde hâlâ yaygın. - Wrapper nesneleri.
{"messages": [...]}veya{"input": [...]}yapıştırırsan, wrapper otomatik açılır.
Ne render edilir
- Role göre renkli baloncuklar. System = ortada gri, user = sağda indigo, assistant = solda nötr, tool result = yeşil.
- Tool-call'lar. Varsayılan olarak açık, argümanlar formatlanmış. Hem OpenAI'nin
tool_callsformu hem Anthropic'intool_useblokları desteklenir. Tool sonuç mesajları kendi baloncuğunda görünür. - Code fence'ler ve inline kod. Üçlü backtick blokları
<pre>monospace olarak render edilir, tekli backtick'ler inline kod olarak. Sözdizimi vurgulaması yok (onun için tokenizer taşımıyoruz), girinti korunur. - Görsel referansları. Anthropic görsel blokları, kaynak URL'sini veya media-type'ı gösteren küçük bir hap olarak render edilir — görseli aslında yüklemeyiz (araç offline kalır).
- İstatistik satırı. Algılanan format, mesaj sayısı, tool-call sayısı ve Token Counter'ımızla aynı sezgisel yöntemi kullanan kaba bir token tahmini.
Yaygın tuzaklar
- Sondaki virgüller. Standart JSON izin vermez. Debugger veya REPL çıktısından kopyaladıysan, yapıştırmadan önce
{...},]→{...}]temizlemen gerekebilir. - Tek tırnaklar. Python'un
repr'ı tek tırnak kullanır.json.dumps'tan geçir veya Python-literal'dan JSON'a dönüştürücü kullan. - Anthropic system prompt'u. Anthropic API'sinde system talimatı top-level alandır, mesaj değildir. Dump'ında sadece messages dizisi varsa, system prompt orada olmaz — başa
{"role": "system", "content": "..."}olarak yapıştır. - Escape'lenmiş JSON olarak tool-call argümanları. OpenAI
arguments'ı JSON string olarak döner. Biz unescape edip pretty-print ederiz. String içindeki JSON bozuksa, ham string gösterilir. - Gizlilik. Sayfadan hiçbir şey çıkmaz. Tüm render yapıştırdığın JSON üzerinde JS'de çalışır. Bir not uygulamasına yapıştırmayacağın hiçbir şeyi yapıştırma.