评测与安全工具
llm-stream-guardrails:流式响应中实时脱敏 PII 与密钥的 LLM 护栏
roshcompanylabs/llm-stream-guardrails · LLM guardrails for streaming: redact PII and secrets mid-stream
ELI5:它是什么,解决什么问题
llm-stream-guardrails 是一个 TypeScript 库,用于在 LLM 流式响应过程中实时检测并遮盖 PII、API 密钥、私钥等敏感内容,无需先缓冲完整回复再过滤。它接收任意字符串异步可迭代对象(可直接接入 Vercel AI SDK 的 textStream,OpenAI/Anthropic SDK 需一行映射),承诺对任意输入、策略与分块方式,流式输出与整串过滤结果逐字节一致且每个输出块独立完整。内置 email、信用卡(Luhn 校验)、电话、SSN、IBAN(mod-97)、35 类密钥形态及 PEM 私钥块检测器,并支持按字段名识别的 labeledSensitive 与自定义敏感标签。仓库定位为纵深防御而非合规控制,作者明确说明对未见文本的召回率约 47%–81%,不能替代其他安全措施。
核心能力与快速开始
★ 0 · TypeScript
- 能做什么
- 在 LLM 流式输出中实时检测并遮盖敏感内容,不需要缓冲完整回复。核心 API 包括 sieve()(处理异步字符串流)、createSieveTransform()(Web Streams 的 TransformStream)、sieveText()(处理完整字符串并返回检测结果)。支持 mask/block/report 三种动作、bannedWords、自定义掩码、onDetect 回调、normalize(折叠 Unicode 形近字符)、sensitiveLabels 标签感知检测。内置检测器覆盖 email、creditCard(Luhn)、phone、ssn、iban(mod-97)、secret(35 种密钥形态与完整 PEM 私钥块),ipAddress 为可选。采用 settlement 机制,仅输出经过完整扫描的文本,保证流式输出与整串过滤结果逐字节一致。
- 适用场景
- 在聊天或 Agent 应用中为 LLM 流式回复添加输出侧敏感信息过滤;在 Web Streams/边缘环境中通过 TransformStream 管道接入;在 Vercel AI SDK、OpenAI、Anthropic SDK 的文本流上做实时脱敏;处理数据库密码、CVV、护照号等仅靠字段名可识别的记录型敏感数据;对完整文本做一次性 PII 检测与脱敏。
- 项目形态
- 开发框架
- 部署方式
- npm 安装后作为库集成到应用中;仓库为 ESM only(Node 18+),无 CommonJS 构建;提供浏览器在线演示页面。未说明服务端托管或其他部署方式。
- 主要依赖
- Node 18+,ESM 导入方式;零运行时依赖;生产集成需配合零依赖 CDN(unpkg、jsDelivr、esm.sh),不适用于 Vite 等开发服务器。
- 使用限制
- 作者定位为纵深防御而非合规控制,未通过 GDPR、HIPAA、PCI-DSS 等认证;对未见文本的召回率约 47%–81%,非 100%;不识别姓名、地址、城市、日期、组织等命名实体;仅实现约 30 种密钥家族(gitleaks 定义 225 种);未说明延迟、成本或 API 限制;流式管道使用字节流需显式解码/编码包装,否则会静默破坏输出。
- 许可证
- MIT
- 最近推送
- 2026-09-23 05:51
资料检查:2026-09-23 07:00 · 卡片整理:2026-09-23 07:00
卡片由 AI 根据仓库资料整理,未进行安装或运行验证 · 本次更新未完成,保留上次成功内容
职业应用
程序员
在开发 LLM 应用时,将本库接入流式响应管道,实时遮盖输出中的 PII、API 密钥、私钥等敏感内容,避免敏感信息直接展示给用户;也可用于对完整字符串做脱敏并获取检测位置信息。
查看内容依据
llm-stream-guardrails 是一个 TypeScript 库,用于在 LLM 流式响应过程中实时检测并遮盖 PII、API 密钥、私钥等敏感内容,无需先缓冲完整回复再过滤。
由 AI 根据来源材料整理,未进行安装或运行验证
讨论 0
登录后参与讨论,阅读资讯无需注册。
还没有评论,来分享第一个看法。