securelayer7/PROMPTPurify
GitHub: securelayer7/PROMPTPurify
promptpurify:LLM应用prompt注入防火墙
Stars: 50 | Forks: 18
promptpurify
[](https://github.com/securelayer7/PROMPTPurify/actions/workflows/ci.yml) [](https://www.npmjs.com/package/promptpurify) [](https://www.npmjs.com/package/promptpurify) [](https://huggingface.co/Securelayer7/promptpurify) [](LICENSE) [](MODEL_CARD.md) [](SECURITY.md) **专为 LLM 聊天应用设计的微型 prompt 注入防火墙。约 14 MB。仅 CPU。** 在您的用户输入和您的 LLM 之间插入保护屏障 — 在同一台机器上运行, 无需 GPU、无需 API、无需额外服务。 ## 为什么存在这个 | | promptpurify | 典型的 OSS 防火墙 | |---|---|---| | 安装大小 | **~14 MB ONNX** | 180 MB – 7 GB | | 推理 | **CPU,单数毫秒** | 推荐使用 GPU | | 运行位置 | **在您的 Node 进程中** | 侧边车或托管 API | | 每次调用的成本 | **$0** | $ 或 GPU 计算成本 | 基准比较与 OSS 基准 → [docs/BENCHMARKS.md](docs/BENCHMARKS.md). ## 安装 ``` # SDK(零依赖,约50 KB)— 结构化防火墙 + 浏览器包 npm i promptpurify # 添加聊天注入防护模型的模型(约14 MB ONNX) npm i onnxruntime-node curl -L -o promptpurify-model.tar.gz \ https://github.com/securelayer7/PROMPTPurify/releases/download/v0.0.1/promptpurify-model.tar.gz curl -L -o promptpurify-model.tar.gz.sha256 \ https://github.com/securelayer7/PROMPTPurify/releases/download/v0.0.1/promptpurify-model.tar.gz.sha256 sha256sum -c promptpurify-model.tar.gz.sha256 # MUST print "OK" tar xzf promptpurify-model.tar.gz # creates models/l5e/ ``` 模型不在 npm 打包中 — SDK 保持小巧,以便只想使用结构防火墙(浏览器、边缘、RAG)的人。 完整分发选项:[docs/SAMPLE-DATA.md](docs/SAMPLE-DATA.md#how-to-get-the-model). ## 3 行插入 ``` import { createL5eRunner } from "promptpurify/l5"; const guard = await createL5eRunner(); // In your /chat handler: const score = await guard.score(userMessage); if (score >= 0.95) return refusal(); // hard block if (score >= 0.85) flagForReview(userMessage); // advisory const reply = await yourLLM.complete(userMessage); // pass through ``` 与 Groq、OpenAI、Anthropic、vLLM、本地 LLM 兼容 — promptpurify 从不与您的 LLM 通信,只与您的输入通信。 有关确定性结构防火墙(Unicode 中立化、角色围栏消息、输出提取保护)的说明,请参阅 [docs/QUICKSTART.md](docs/QUICKSTART.md). ## 从零开始构建 我们从头开始构建我们的模型,因为现有的 OSS 防火墙没有给我们想要的尺寸/延迟权衡,我们想在我们的产品中发货。 - **从头开始。** 不重新分配任何供应商分类器的教师权重。 - **与公共数据集进行基准测试**,以便与 OSS 基准(ProtectAI v2、deepset、Meta Prompt-Guard、Meta Prompt-Guard-2)进行直接比较。保留评估;报告假阳性,同时报告召回率。 - **MIT 许可的权重。** 用于生产,付费或免费。 完整架构概述 → [docs/HOW-IT-WORKS.md](docs/HOW-IT-WORKS.md). ## 尝试破解它 我们在 **[anton.securelayer7.net](https://anton.securelayer7.net)** 上运行一个实时对抗挑战。向 Anton 的儿子索要密码。如果您能绕过防火墙,告诉我们如何 — [SECURITY.md](SECURITY.md). ## 示例应用 一个金融科技客户支持聊天机器人,已连接 promptpurify,准备本地运行: ``` cd examples/customer-support && npm install GROQ_API_KEY=gsk_... node server.mjs # http://localhost:8787 ``` 请参阅 `examples/customer-support/README.md`([LINK_URL_13/]). ## 阅读更多 - **[docs/QUICKSTART.md](docs/QUICKSTART.md)** — 安装路径、结构防火墙、浏览器捆绑包、集成模式。 - **[docs/HOW-IT-WORKS.md](docs/HOW-IT-WORKS.md)** — 层次结构、每层捕获的内容。 - **[docs/BENCHMARKS.md](docs/BENCHMARKS.md)** — 与 OSS 基准的比较、方法。 - **[docs/SAMPLE-DATA.md](docs/SAMPLE-DATA.md)** — 存储库中用于基准测试的内容。 - **[docs/REPRODUCE.md](docs/REPRODUCE.md)** — 自己运行基准测试。 - **[docs/HONEST-LIMITS.md](docs/HONEST-LIMITS.md)** — 与 promptpurify 配对以实现全面覆盖的内容。 ## promptpurify 不是什么 - 不是保证。没有 `.safe` 布尔值。 - 不是内容分类器。捕获 prompt 注入,而不是毒性/CSAM/仇恨。与内容过滤器配对。 - 不是多轮审计员。与对话级监控配对。 ## 已验证版本 我们发布的所有内容都是签名并可端到端验证的: - **npm 包** 使用来自此 GitHub Actions 运行的 [npm provenance](https://docs.npmjs.com/generating-provenance-statements) 签名。本地验证: npm audit signatures # ✓ 验证注册签名 + 证明 - **模型打包文件** ([releases](https://github.com/securelayer7/PROMPTPurify/releases/tag/v0.0.1)) 包含无密钥的 [Sigstore cosign](https://sigstore.dev) 签名 (`*.cosign.bundle`)、[SLSA 构建证明](https://slsa.dev)、SHA256 清单和 CycloneDX SBOM (`SBOM.cdx.json`)。 - **存储库中的 `models/l5e/SHA256SUMS`** — 每个工件都进行了校验和;在 CI 上对每个 PR 进行验证。 如果这些检查中的任何一个在您的端失败,则该包不是 promptpurify — 在 [SECURITY.md](SECURITY.md)下提交安全报告。 ## 致谢 名称和设计理念灵感来源于 [**DOMPurify**](https://github.com/cure53/DOMPurify),由 [Cure53](https://cure53.de) 提供 — 同样的想法,应用于 LLM 提示而不是 HTML。感谢 **Mario Heiderich** 提出这个名称。 ## 许可证 SDK 和模型权重采用 MIT 许可。我们评估的基准来源列在 [training/CORPUS_LICENSES.json](training/CORPUS_LICENSES.json). 安全披露:[SECURITY.md](SECURITY.md).标签:AI 安全, CNCF毕业项目, CPU 加速, GNU通用公共许可证, Hugging Face, LLM 应用安全, MITM代理, Node.js, NPM 包, ONNX, Prompt 注入防护, 安全可观测性, 安全模型, 安全策略, 性能优化, 提示词设计, 无正则表达式, 无签名检测, 检测绕过, 模型卡片, 模型压缩, 版本控制, 自动化攻击, 许可证, 软件防火墙, 轻量级软件, 逆向工具