← 返回列表

llm-stream-guardrails:流式响应中实时脱敏 PII 与密钥的 LLM 护栏

roshcompanylabs/llm-stream-guardrails · LLM guardrails for streaming: redact PII and secrets mid-stream

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

☆ 收藏查看项目 ↗

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

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

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