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.6.0.tar.gz (65.8 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.6.0-py3-none-any.whl (76.9 kB view details)

Uploaded Python 3

File details

Details for the file promptshields-2.6.0.tar.gz.

File metadata

  • Download URL: promptshields-2.6.0.tar.gz
  • Upload date:
  • Size: 65.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.0

File hashes

Hashes for promptshields-2.6.0.tar.gz
Algorithm Hash digest
SHA256 ab5dc9d341f015122e5aaa6a92ec7c2ea8e2942a1aefd86f0a1274f289b4d536
MD5 7b3635f6d4d24098c0d1b95bcb0297d9
BLAKE2b-256 6328fc285e4d243f243b07b9a4d10d52670e0ef3d4116ee08097309903450089

See more details on using hashes here.

File details

Details for the file promptshields-2.6.0-py3-none-any.whl.

File metadata

  • Download URL: promptshields-2.6.0-py3-none-any.whl
  • Upload date:
  • Size: 76.9 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.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d6b446ab11b335b4418cef3b440858de0cb1783c9801affe000b3cb20c30d283
MD5 627af1d2d4b4bb86c1922e0ba3107a64
BLAKE2b-256 8693c0fd0c5150e70b8ba572aca6f2c1877537880be7ac0796b48cb431ce32f5

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