AI / LLM 开发

SSE 解析器看清真正派发的事件

粘贴事件流或打开本地 UTF-8 文件。列表只显示按空行真正派发的事件,点选后可核对原始 data 与 JSON 视图。

SSE 解析器

SSE 原文

解析事件

事件列表

还没有派发的事件。

粘贴内容和本地文件只在浏览器中处理,不会请求远端接口。

输入已变化,重新解析后才能导出。

客户端少收到一条消息时,问题可能只是日志末尾没有空行。SSE 解析器按协议边界列出真正派发的事件,并标出未完成的尾块。

做 SSE 事件流解析不必重新连接服务器。这里保留原始 data,便于把普通文本、[DONE] 标记和 JSON 内容分开核对;SSE 在线调试涉及的网络行为不在此页模拟。

为什么使用 SSE 解析器?

从离线日志看清浏览器会派发什么。

找到没有派发的末尾块

SSE 解析器把空行视为派发边界。只有一个换行的末尾块不会硬凑成事件,诊断会指出起始行,方便回查服务端输出。

完整的事件块进入列表,缺少末尾空行的块停留在列表外并显示诊断。

原文与 JSON 内容分开看

选中事件后可同时看到未改动的 data 和严格解析出的 JSON 视图。类似 JSON 的坏内容只给提示,不会把有效 SSE 事件删掉。

选中事件的原始 data 与 JSON 结构视图并列展示,纯文本标记保持原样。

沿着原始日志追查事件

01

先确认输入是否完整

可打开 UTF-8 文件,或切换基础、AI 和边界示例。载入示例、文件及清空会先显示新旧行数和字节数,确认后还可撤销一次。

02

留意重新解析的时机

自动解析在编辑停顿 350 毫秒后运行;关闭开关可用按钮或 Ctrl/Cmd+Enter 手动执行。输入一变,旧结果立刻无法导出。

03

按行号核对事件

列表每次增加 50 条,但 JSON 数组或 NDJSON 导出始终包含全部已派发事件。事件类型筛选只影响屏幕,不会偷偷缩小导出范围。

逐项检查事件字段与内容

按协议识别事件边界

SSE 解析器接受 LF、CRLF 与 CR 换行,多行 data 以换行连接;没有 data 的块不产生事件,列表保留原始行号。

追踪 id 和 retry

id 会延续到后续事件,空 id 才清除;只有纯 ASCII 数字会更新 retry 毫秒值,错误值保留为诊断。

区分 JSON 与文本

SSE 的 data 本来就是文本。严格 JSON 解析只是附加视图,普通文本和 [DONE] 不会被当成协议错误。

导出全量结构化事件

复制或下载 JSON 数组、NDJSON,内容覆盖全部已派发事件;页面上的类型筛选不会修改导出集合。

离线解析的范围与限制

不发起实时请求
SSE 解析器只读粘贴文本或本地文件,不发送认证头、不绕过 CORS,也不能验证服务器是否真的重连。Server-Sent Events 解析得到的 retry 只是日志里的值。
末尾必须由空行结束
即使最后一块写了 data,没有空行也不会派发。工具指出该块行号,不自动补空行或伪造事件。
data 不强制为 JSON
[DONE] 是普通文本,不是通用的结束协议;类似 JSON 但无效的内容有独立提示,原始 SSE 事件仍在。
输入上限为 2 MiB
超限或 UTF-8 无效的文件不会截断后继续解析。请拆分日志再打开,避免把不完整结果误当成全部事件。
不拼接模型回答
本页不依照 OpenAI 或 Anthropic 专属字段拼 token,也不构造事件流、自动修复坏行或执行 JSONPath 查询。

SSE 解析器常见问题

为什么请求报错、收不到 event?

本页不发送请求,无法判断鉴权、CORS 或连接故障。若已有日志却少了事件,请检查数据块后是否有空行;诊断会指出未派发的末尾块。

和浏览器原生 EventSource 有什么区别?

EventSource 会连接服务器并处理重连;这里仅离线解析已保存的文本,展示事件字段与派发边界,不测试网络行为。

如何把 LLM 流式返回拼成完整文本?

不同模型的增量字段不相同,通用 SSE 解析器不会猜测 token 路径。请先检查每个事件的原始 data,再使用对应模型的专用处理代码。

过滤会丢失数据吗?

不会。按 event 类型筛选只改变屏幕列表,复制和下载仍包含全部已派发事件;输入原文也不被改写。

数据会上传服务器吗?

不会。粘贴和本地文件在浏览器内处理,没有远端 SSE 请求;下载由浏览器从当前结果生成。

结果与预期不同?

用 SSE 解析器检查下一份日志

先用边界示例观察未派发的尾块,再打开真实日志逐条核对 event、id、retry 和 data。

事件流只在浏览器本地解析。