← 返回列表

llm-sse:把 OpenAI、Anthropic、Gemini 的流式响应统一成单一事件格式

slegarraga/llm-sse · Parse streaming responses from OpenAI, Anthropic and Gemini into one unified event format. Text and tool-call deltas. Zero dependencies.

GitHub原文发布 未知首次收录 2026-10-02上架 2026-10-02 09:01

☆ 收藏查看项目 ↗

ELI5:它是什么,解决什么问题

llm-sse 是一个零依赖的 TypeScript SSE 解析库,将 OpenAI Responses、OpenAI Chat Completions、Anthropic Messages 以及 Gemini streamGenerateContent 的流式输出统一为同一组事件:text、reasoning、tool_call_start、tool_call_delta、finish 和 error。它正确处理 SSE 分帧、跨块的多字节 UTF-8、同行分割的数据字段与保活注释,并提供 collectStream 汇总完整消息、toAssistantMessage 生成标准 OpenAI 形状的 assistant 消息,便于在多个提供商之间迁移和组合流式响应。适配 Groq、DeepSeek、OpenRouter、Ollama 等 OpenAI 兼容接口。

核心能力与快速开始

★ 0 · TypeScript

能做什么
提供 parseOpenAIResponsesStream、parseOpenAIStream、parseAnthropicStream、parseGeminiStream 和按 provider 分发的 parseStream,将不同提供商的 SSE 流转换为统一的 StreamEvent;支持文本增量、推理内容、工具调用起始与参数片段累积、结束原因和错误事件;提供 collectStream 将事件流汇总为 text / reasoning / toolCalls / finishReason,并用 toAssistantMessage 输出 OpenAI 形状的 assistant 消息;导出底层 sseData 供高级使用;内置公开 fixture 语料覆盖四类流格式的语义回合。
适用场景
构建跨提供商的流式聊天 UI;编写与提供商无关的 agent 工具调用循环;在 OpenAI、Anthropic、Gemini 及 OpenAI 兼容服务(Groq、DeepSeek、OpenRouter、Together、Fireworks、Ollama)之间切换或迁移;消费 Node.js http/https 响应体或 fetch 返回的可读流;在自有 HTTP 层(自带重试与鉴权)之上做仅解析的薄封装。
项目形态
开发框架
部署方式
未说明
主要依赖
Node.js / TypeScript 环境,通过 npm 安装(npm install llm-sse);ESM + CJS,类型定义完整,零依赖。
使用限制
非 JSON 的 data 负载被当作保活跳过;畸形 JSON 负载以 error 事件暴露后继续解析;解析器忽略 SSE 的 event 名称,仅依据 JSON data 负载形状判断;无法生成有效归一化事件的畸形提供商事件会被跳过;OpenAI 多 choices 的分块按提供商顺序发出,但归一化事件不携带 choice 索引。
许可证
MIT
最近推送
2026-10-01 09:03

资料检查:2026-10-02 07:00 · 卡片整理:2026-10-02 09:00
卡片由 AI 根据仓库资料整理,未进行安装或运行验证 · 本次更新未完成,保留上次成功内容

职业应用

程序员

在开发流式 AI 应用时,用该库把 OpenAI Responses、OpenAI Chat Completions、Anthropic Messages 和 Gemini streamGenerateContent 的流式输出统一为同一组事件(text、reasoning、tool_call_start、tool_call_delta、finish、error),从而编写与提供商无关的流式 UI 或 agent 循环;也可用 collectStream 汇总完整消息、toAssistantMessage 生成标准 OpenAI 形状的 assistant 消息,便于在多个提供商之间迁移和组合流式响应。

查看内容依据
llm-sse 是一个零依赖的 TypeScript SSE 解析库,将 OpenAI Responses、OpenAI Chat Completions、Anthropic Messages 以及 Gemini streamGenerateContent 的流式输出统一为同一组事件:text、reasoning、tool_call_start、tool_call_delta、finish 和 error。

官方使用入口 ↗

由 AI 根据来源材料整理,未进行安装或运行验证

这是基于来源内容整理的摘要。原文链接失效后,本页摘要和讨论仍会保留。

讨论 0

登录后参与讨论,阅读资讯无需注册。

还没有评论,来分享第一个看法。