Visualizzatore Thread di Chat
Incolla un array di messages OpenAI o Anthropic (JSON) e vedilo come thread di chat leggibile. Colorato per ruolo. Parametri tool-call espandibili. Solo browser, niente upload.
A cosa serve?
Le app LLM loggano le conversazioni come array JSON di messaggi — è ciò che viene mandato all'API e ciò che vedi negli audit log, nelle trace di valutazione, nei dataset di fine-tuning e nel debug dell'SDK. Leggere quegli array a occhio è atroce: muri di stringhe escapate, argomenti di tool-call avvolti in JSON-dentro-JSON escapato, system prompt mischiati col resto. Questo strumento ti dà un render rapido a bolle per scorrere la conversazione vera, vedere quali messaggi contenevano tool-call e individuare il prompt che è andato fuori strada.
Quali formati capisce
- OpenAI Chat Completions.
[{role, content}, ...]contool_callsopzionali sui messaggi assistant erole: "tool"per i risultati. La forma più comune. - Anthropic Messages API.
[{role, content: [...]}]dovecontentè un array di blocchi (text,tool_use,tool_result,image). Il system prompt è di solito top-level — incollalo come messaggio system se vuoi vederlo. - Dump messaggi LangChain.
[{type: "human" | "ai" | "system", content: ...}]— forma più vecchia di LangChain, ancora comune nelle trace salvate. - Oggetti wrapper. Se incolli
{"messages": [...]}o{"input": [...]}, il wrapper viene scartato automaticamente.
Cosa viene renderizzato
- Bolle colorate per ruolo. System = grigio centrato, user = indaco a destra, assistant = neutro a sinistra, tool result = verde.
- Tool-call. Espansi di default con argomenti pretty-printed. Sia
tool_callsdi OpenAI sia i blocchitool_usedi Anthropic sono gestiti. I messaggi di risultato appaiono in una bolla separata. - Code fence e inline code. Blocchi tripli backtick come
<pre>in monospace, singoli backtick come inline. Niente syntax highlighting (non spediamo un tokenizer per quello), l'indentazione è preservata. - Riferimenti immagini. I blocchi image di Anthropic mostrano una pillola piccola con URL o media-type — non carichiamo l'immagine (lo strumento resta offline).
- Riga di stats. Formato rilevato, numero messaggi, numero tool-call e stima grezza di token con la stessa euristica del nostro Token Counter.
Trappole comuni
- Virgole finali. Il JSON standard non le permette. Se hai copiato da debugger o REPL, potresti dover pulire
{...},]→{...}]prima di incollare. - Apici singoli. Il
reprdi Python usa apici singoli. Passalo perjson.dumps, o usa un convertitore Python-literal a JSON. - System prompt Anthropic. L'istruzione system nell'API Anthropic è un campo top-level, non un messaggio. Se il tuo dump ha solo l'array di messages, il system prompt non c'è — incollalo come
{"role": "system", "content": "..."}all'inizio. - Argomenti tool-call come JSON escapato. OpenAI restituisce
argumentscome stringa JSON. Noi de-escappiamo e pretty-printiamo. Se il JSON nella stringa è rotto, viene mostrata la stringa grezza. - Privacy. Niente lascia la pagina. Tutto gira in JS sul JSON che incolli. Non incollare nulla che non incolleresti in una app di note.