Production-Grade LLM Security Framework - Protect against prompt injection, jailbreaks, and data leakage
Project description
PromptShields
Secure AI Applications in 3 Lines of Code
Stop prompt injection, jailbreaks, and data leaks in production LLM applications.
Installation
pip install promptshields
Quick Start
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']}")
That's it. Production-ready security in 3 lines.
Why PromptShields?
| Feature | PromptShields | DIY Regex | Paid APIs |
|---|---|---|---|
| Setup Time | 3 minutes | Weeks | Days |
| Cost | Free | Free | $$$$ |
| Privacy | 100% Local | Local | Cloud |
| F1 Score | 0.97 (RF) / 0.96 (DeBERTa) | ~0.60 | ~0.95 |
| ML Models | 4 + DeBERTa | None | Black box |
| Async | ✅ Native | DIY | Varies |
What We Block
- 🛡️ Prompt injection attacks (direct + indirect)
- 🎭 Jailbreak attempts (DAN, persona replacement)
- 🔑 System prompt extraction
- 🔒 PII leakage
- 📊 Session anomalies
- 🔤 Encoded/obfuscated attacks (Base64, URL, Unicode)
Security Modes
Choose the right tier for your application:
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 (4 ML models ensemble)
New in v2.5.0
Per-Layer Threat Breakdown
Every response now shows exactly which layer triggered:
result = shield.protect_input(user_text, system_prompt)
print(result["threat_breakdown"])
# {"pattern_score": 0.0, "ml_score": 0.994, "session_score": 0.0}
DeBERTa Support
shield = Shield(models=["deberta"]) # Auto-downloads from HuggingFace
Async Support
from promptshield import AsyncShield
shield = AsyncShield.balanced()
result = await shield.aprotect_input(user_text, system_prompt)
FastAPI Middleware
from promptshield import Shield
from promptshield.integrations.fastapi import PromptShieldMiddleware
app.add_middleware(PromptShieldMiddleware, shield=Shield.balanced())
Allowlist & Custom Rules
shield = Shield(
patterns=True,
models=["random_forest"],
allowlist=["summarize this document", "translate to french"],
custom_patterns=[r"jailbreak|dan mode|evil\s*bot"],
)
Benchmark Results
Trained on neuralchemy/Prompt-injection-dataset:
| Model | F1 | ROC-AUC | FPR | Latency |
|---|---|---|---|---|
| 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 |
Pre-trained models: neuralchemy/prompt-injection-detector · neuralchemy/prompt-injection-deberta
Documentation
📖 Full Documentation — Complete guide with framework integrations
🚀 Quickstart Guide — Get running in 5 minutes
License
MIT License — see LICENSE
Built by NeurAlchemy — AI Security & LLM Safety Research
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file promptshields-2.5.1.tar.gz.
File metadata
- Download URL: promptshields-2.5.1.tar.gz
- Upload date:
- Size: 62.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1772136b325add3c89ee89943eff06b792810b93a1342b349731a3b85c9b27b4
|
|
| MD5 |
a9dd033f64d821ab4026373410e48e3c
|
|
| BLAKE2b-256 |
1aba34073782277b8b84f94ef4cf457e0f2f71f2b65c7541326df87645c8257e
|
File details
Details for the file promptshields-2.5.1-py3-none-any.whl.
File metadata
- Download URL: promptshields-2.5.1-py3-none-any.whl
- Upload date:
- Size: 73.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
66dc370e8623e7c9eb2048fc389ec62ede76b2d2871ac598aa073bff2280c80b
|
|
| MD5 |
81ef89eedc51b10805fde4a85d9c6239
|
|
| BLAKE2b-256 |
5619b6cb0e07d6d6a56c50ba097382c614d42a7c73e088b6d5a3cbd7f9a6b796
|