SSE / 流式响应回放器
解析并回放 OpenAI / Anthropic / Ollama / Vercel AI SDK 的 SSE 原始日志
Hello world
未检测到 tool calls。
| # | Δt | 事件 | 描述 | 当前内容 |
|---|---|---|---|---|
| 0 | — | chunk | content.delta "Hel" | 3 字符 |
| 1 | — | chunk | content.delta "lo" | 5 字符 |
| 2 | — | chunk | content.delta " world" finish_reason=stop | 11 字符 |
常见问题
SSE 流式响应回放器是什么?
LLM API 用 Server-Sent Events(SSE)推送响应——一串 `data: {...}` JSON 片段,以 `data: [DONE]` 收尾。回放器把原始日志(来自 curl、代理或后端抓包)解析回完整回复:content 文本、tool_calls、usage、finish_reason 都能还原,用于排查网络层实际发生了什么。
支持哪些厂商的格式?
OpenAI Chat Completions、OpenAI Responses API、Anthropic Messages(含 `content_block_delta`、`content_block_start`、`message_delta` 等事件)、Ollama streaming,以及 Vercel AI SDK 的自定义 data stream 协议。各家 chunk 结构差异很大,解析器会自动识别并切换。
什么场景下真的用得上?
- 流式响应在 tool_call 中途断掉,需要看最后一个事件是什么 - token delta 看起来错乱,怀疑是前端缓冲或分块的 bug - 想把一段抓到的流回放给同事看,或写入测试 fixture - 模型拒答或循环,需要时间线视角定位问题
日志解析不了,怎么办?
常见原因:日志缺少 `data: ` 前缀(部分工具会剥离)、换行被清理、抓包内容混入了 HTTP 头或二进制分帧。粘贴时请只保留 `HTTP/1.1 200 OK` 之后、`[DONE]` 之前的原始 SSE 正文——工具允许缺少 `[DONE]`,但 `data:` 行不能缺。
日志会被上传吗?
不会。解析、时间轴重建、打字机回放全部在浏览器本地运行。SSE 日志经常包含完整 prompt 与回复,其中不乏客户数据——这里可以放心粘贴生产抓包。
相比直接看浏览器 Network 面板有什么优势?
Chrome Network 能看到原始分片,但不会跨事件拼接 tool_call 的增量参数,也不会统一 OpenAI / Anthropic 不同格式,更做不到时间线回放。本工具针对 LLM streaming 结构专门实现了 tool_calls 参数的增量 JSON 拼接。