m4vic/promptshields
GitHub: m4vic/promptshields
一个开源的 AI 应用安全框架,通过双向过滤机制防御 Prompt 注入与数据泄露,保护生产环境中的 LLM 应用。
Stars: 2 | Forks: 0
# PromptShields
**仅需 3 行代码即可保护 AI 应用**
[](https://pypi.org/project/promptshields/)
[](https://pypi.org/project/promptshields/)
[](LICENSE)
[](https://pepy.tech/project/promptshields)
一个企业级的双向 LLM 安全框架。在生产应用中防御 prompt 注入、越狱、数据泄露和 PII 暴露。
## 安装说明
```
pip install promptshields
```
### 可选附加组件
核心安装涵盖了模式匹配、会话追踪、canary token 以及
预训练的 ML 集成模型。部分功能需要额外的依赖:
```
# 输出 DLP engine (Bloom filters, Aho-Corasick, semantic similarity)
pip install "promptshields[output]"
# Semantic/embedding-based matching (sentence-transformers)
pip install "promptshields[ml]"
# Framework integrations (LangChain, LiteLLM, LlamaIndex, CrewAI)
pip install "promptshields[integrations]"
# 全部
pip install "promptshields[all]"
```
## 快速开始
```
from promptshield import Shield
shield = Shield.balanced()
result = shield.protect_input(user_input, system_prompt)
if result['blocked']:
print(f"Blocked: {result['reason']} (score: {result['threat_level']:.2f})")
print(f"Breakdown: {result['threat_breakdown']}")
```
## 功能与特性
| 功能 | PromptShields | DIY Regex | 付费 API |
|---------|---------------|-----------|-----------|
| **设置时间** | 3 分钟 | 数周 | 数天 |
| **成本** | 免费 | 免费 | $$$$ |
| **隐私** | 100% 本地 | 本地 | 云端 |
| **F1 Score** | 0.97 (RF) / 0.96 (DeBERTa) | ~0.60 | ~0.95 |
| **ML 模型** | 3 + DeBERTa | 无 | 黑盒 |
| **异步** | 原生 | DIY | 不定 |
### 防护范围
- Prompt 注入攻击(直接和间接)
- 越狱尝试(DAN、角色替换)
- 系统提示词提取
- PII 泄露和敏感数据暴露
- 会话异常
- 编码/混淆攻击(Base64、URL、Unicode)
## 安全模式
根据您的应用延迟要求选择合适的层级:
```
Shield.fast() # ~1ms - High throughput (pattern matching only)
Shield.balanced() # ~2ms - Production default (patterns + session tracking)
Shield.strict() # ~7ms - Sensitive apps (+ 1 ML model + PII detection)
Shield.secure() # ~12ms - Maximum security (3 ML models ensemble)
```
## 升级至 v3.0.0
3.0.0 版本引入了全新的双向 **Output Filter** 重大更新。
### Output 引擎(数据泄露防护)
在敏感数据、PII 和专有知识通过 LLM 生成的内容到达用户之前,安全地防止其泄露。
- **4 层扫描流水线:** 使用 Bloom Filter、Aho-Corasick 精确匹配、Honeypot 陷阱以及基于 Embedding 的语义相似度检查来防御数据泄露。
- **语义泄露检测:** 原生利用 `sentence-transformers` 检测 LLM 的输出何时与您的专有系统提示词或私有数据库具有高度的语义相似性。
- **上下文 PII 修编:** 一个经过深度优化的检测系统,可安全地主动修编敏感信息。
```
from promptshield import OutputFilter
filter = OutputFilter(
system_prompt="You are a secret agent...",
enforce_pii=True,
enforce_embeddings=True
)
safe_text, was_redacted = filter.scan_output("My name is John Doe.")
```
### 性能与强化
- 为多租户高并发环境提供完全的线程安全。
- 严格的 HMAC-SHA256 认证 webhook。
- 对重型依赖(`numpy`、`sentence-transformers`)采用延迟加载实现,实现极速冷启动。
## 开发者体验
### YAML 配置
无需更改应用代码即可声明式地启动防护。
```
shield = Shield.from_config("promptshield.yml")
```
### Slack 和 Teams Webhook
每当原生拦截到高危威胁时,即刻触发 webhook。
```
shield = Shield.balanced(webhook_url="https://hooks.slack.com/...")
```
### 异步与 FastAPI 支持
为现代 Web 框架提供原生中间件集成。
```
from promptshield import Shield
from promptshield.integrations.fastapi import PromptShieldMiddleware
app.add_middleware(PromptShieldMiddleware, shield=Shield.balanced())
```
## 基准测试结果
在经过高度筛选的 [neuralchemy/Prompt-injection-dataset](https://huggingface.co/datasets/neuralchemy/Prompt-injection-dataset) 上训练:
| 模型 | F1 | ROC-AUC | FPR | 延迟 |
|-------|-----|---------|------|---------|
| Random Forest | **0.969** | **0.994** | 6.9% | <1ms |
| Logistic Regression | 0.964 | 0.995 | 6.4% | <1ms |
| Gradient Boosting | 0.961 | 0.994 | 7.9% | <1ms |
| LinearSVC | 0.959 | 0.995 | 10.3% | <1ms |
| DeBERTa-v3-small | 0.959 | 0.950 | 8.5% | ~50ms |
在 Hugging Face 上提供的预训练模型:
- [prompt-injection-detector](https://huggingface.co/neuralchemy/prompt-injection-detector)
- [prompt-injection-deberta](https://huggingface.co/neuralchemy/prompt-injection-deberta)
## 文档
完整的 API 参考、指南和集成详情可在 **[GitHub 仓库](https://github.com/m4vic/promptshields)** 中找到。
## 开源协议
MIT 协议 — 见 [LICENSE](LICENSE)
**由 [Sanskar Jajoo / NeurAlchemy](https://github.com/m4vic) 构建** — AI 安全与 LLM 安全研究
标签:DLL 劫持, Python, 人工智能安全, 合规性, 大语言模型, 提示词注入防护, 无后门, 逆向工具