Skip to main content

Production-Grade LLM Security Framework - Protect against prompt injection, jailbreaks, and data leakage

Project description

PromptShields

Secure AI Applications in 3 Lines of Code

PyPI Python License Downloads

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

promptshields-2.5.1.tar.gz (62.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

promptshields-2.5.1-py3-none-any.whl (73.0 kB view details)

Uploaded Python 3

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

Hashes for promptshields-2.5.1.tar.gz
Algorithm Hash digest
SHA256 1772136b325add3c89ee89943eff06b792810b93a1342b349731a3b85c9b27b4
MD5 a9dd033f64d821ab4026373410e48e3c
BLAKE2b-256 1aba34073782277b8b84f94ef4cf457e0f2f71f2b65c7541326df87645c8257e

See more details on using hashes here.

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

Hashes for promptshields-2.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 66dc370e8623e7c9eb2048fc389ec62ede76b2d2871ac598aa073bff2280c80b
MD5 81ef89eedc51b10805fde4a85d9c6239
BLAKE2b-256 5619b6cb0e07d6d6a56c50ba097382c614d42a7c73e088b6d5a3cbd7f9a6b796

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page