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.0.tar.gz (62.6 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.0-py3-none-any.whl (73.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: promptshields-2.5.0.tar.gz
  • Upload date:
  • Size: 62.6 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.0.tar.gz
Algorithm Hash digest
SHA256 d722771a8d60e6d9a47a837b6afe0e0aa78478a6d4e0eccafb4443a532be30b8
MD5 a9db7ed693c9e30130eaf234a12faf0f
BLAKE2b-256 63817b5c52edf327c40fb9fbddeb925ee5535701d554db4c4215b79ee928f2ba

See more details on using hashes here.

File details

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

File metadata

  • Download URL: promptshields-2.5.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7d583b5d97689b6aab86c36266fb6b2f7ec507404cd78c55f61fd805fd43337c
MD5 2d88d4834c722f815224760adae169bb
BLAKE2b-256 b76c639faef5142a8325d6d5b22dc524376c8e15e954f9426c2803aa0319fef8

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