llm-coalesce:跨多个 widget 共享同一路 LLM 实时 token 流
Share one live stream across multiple widgets
开源 TypeScript 库 llm-coalesce 0.1.0 可将一次进行中的 LLM 请求及其实时 token 流共享给多个并发调用方,接受 AsyncIterable 或 ReadableStream,调用方可自带 LLM SDK 或传输层。
在并发调用方之间共享一个进行中的 LLM 请求及其实时 token 流。这个与提供商无关的 TypeScript 库接受 AsyncIterable 或 ReadableStream,因此调用方可以提供自己的 LLM SDK 或传输层。
该仓库包含该库以及一个可运行的浏览器演示。
演示与视频
一次提问,共同流式接收。 观看 40 秒讲解视频:
llm-coalesce-cute-40s-v3.mp4
项目
| 目录 | 用途 |
|---|---|
| llm-coalesce | 活跃库:请求合并、流多播以及注册表适配器。 |
| llm-coalesce-demo | Express 服务器和浏览器演示,对比独立请求与共享流。 |
运行演示
安装 Node.js 18 或更高版本以及 npm,然后在仓库根目录运行:
cd llm-coalesce-demo
npm ci
npm start对于本地开发,打开 http://localhost:3000 或 http://localhost:3000/microfrontends。默认提供商会流式输出模拟文本,因此无需 API 密钥。
该演示安装已提交的 vendor-packages/llm-coalesce-0.1.0.tgz 归档文件。你无需构建同级库,也无需从 npm 注册表下载它。
如需可选的真实 Anthropic 提供商,请参阅 演示说明 和 .env.example。在你的 shell 或部署平台中设置环境变量;服务器不会自动加载 .env 文件。请勿将 API 密钥纳入源代码管理。
开发该库
在仓库根目录:
cd llm-coalesce npm ci npm run typecheck npm test npm run build
该演示使用打包好的快照,因此源代码编辑不会立即改变演示。要在库更改后刷新它,请从 llm-coalesce/ 构建并打包:
npm run build
npm pack --pack-destination ../llm-coalesce-demo/vendor-packages
cd ../llm-coalesce-demo
npm install ./vendor-packages/llm-coalesce-0.1.0.tgz如果你更改了包版本,请使用新的归档文件名,并将更新后的归档文件和依赖锁文件一起提交。
验证演示
从 llm-coalesce-demo/:
npm test
npx playwright install chromium
npm run test:browser集成测试会运行真实服务器。浏览器检查会验证三个独立的模块图产生三个具有隔离注册表的请求,以及一个具有共享窗口注册表的请求。
React 兼容性
llm-coalesce 可与 React 及其他框架配合使用。React 应用可以从 llm-coalesce/react 导入可选的 useLlmStream hook,以接收文本、状态和错误,并自动处理订阅清理。传入一个稳定的共享合并器来协调组件。核心入口点不导入 React。请参阅 React 使用指南。
范围
仅当请求共享同一个注册表且请求键完全一致,并且工作正在进行中时,请求才会合并。请在该键中包含所有影响响应的输入。窗口适配器协调单个浏览器标签页内的组件;此版本未实现跨标签页和分布式协调。
延伸阅读
演示 README 按预期的时间顺序列出了这些教程。已被取代的 use-llm-stream 包已被移除;其源代码仍保留在 Git 历史中。历史教程描述的是早期版本,而非当前 API。
许可证
该库基于 MIT 许可。该演示也在其包元数据中声明了 MIT。
来源:Hacker News · github.com