Skip to main content

Security and moderation tools for the Jazzmine AI ecosystem

Project description

Jazzmine Security

Production-ready security and moderation toolkit for AI applications

Python 3.10+ PyPI version License: MIT

Jazzmine Security provides a comprehensive suite of tools for protecting AI applications from malicious inputs, toxic outputs, and unsafe content. Built with performance in mind, it combines Python flexibility with Rust speed through optimized bindings.

Features

Input Moderation

  • Jailbreak Detection: Identify and block prompt injection attacks
  • Toxic Content Detection: Multi-class toxicity classification with SHAP explainability
  • Batch Processing: High-throughput classification with GPU acceleration
  • HuggingFace Integration: Load pre-trained models directly from the Hub

Output Moderation

  • Response Validation: Ensure AI-generated content meets safety guidelines
  • Chunk-based Analysis: Handle long-form content with intelligent chunking
  • Confidence Scoring: Get detailed confidence metrics for each prediction

Content Sanitization

  • PDF Sanitization: Remove JavaScript, embedded files, and malicious content
  • CSV Sanitization: Prevent formula injection and XSS attacks
  • HTML Sanitization: Strip dangerous tags and attributes while preserving content

Performance

  • Rust-Powered: Critical text processing operations accelerated with Rust
  • GPU Support: Automatic CUDA acceleration when available
  • Async Support: Non-blocking operations for high-concurrency environments

Installation

From PyPI (Recommended)

pip install jazzmine-security

With GPU Support

pip install jazzmine-security torch --index-url https://download.pytorch.org/whl/cu121

From Source

git clone https://github.com/yourorg/jazzmine-security.git
cd jazzmine-security
pip install .

Quick Start

Input Moderation

from jazzmine.security import JazzmineInputModerator
from jazzmine.logging import ConsoleLogger

# Initialize with HuggingFace model
logger = ConsoleLogger()
moderator = JazzmineInputModerator(
    "nourmedini1/jazzmine-input-safeguard-v2",
    logger=logger
)

# Classify single input
text = "How can I hack into a system?"
label, confidence = moderator.classify(text)

if label == "LABEL_1":  # Toxic/Jailbreak detected
    print(f"Warning: Blocked - Confidence {confidence:.2%}")
else:
    print(f"Safe: Confidence {confidence:.2%}")

# Batch processing
requests = [
    {"text": "Tell me a joke"},
    {"text": "How to bypass security"},
    {"text": "What's the weather like?"}
]
results = moderator.classify_batch(requests, batch_size=32)

Output Moderation

from jazzmine.security import JazzmineOutputModerator

# Initialize output validator
output_mod = JazzmineOutputModerator(
    "nourmedini1/jazzmine-response-validator-v2"
)

# Validate AI response
ai_response = "Here's how to create a secure password..."
label, confidence = output_mod.classify(ai_response)

if label == "LABEL_1":  # Unsafe content
    print("Response blocked due to safety concerns")
else:
    print("Response approved")

Content Sanitization

from jazzmine.security import (
    JazzminePDFSanitizer,
    JazzmineCSVSanitizer,
    JazzmineHTMLSanitizer
)

# Sanitize PDF
pdf_sanitizer = JazzminePDFSanitizer()
safe_pdf = pdf_sanitizer.sanitize("document.pdf")

# Sanitize CSV (prevent formula injection)
csv_sanitizer = JazzmineCSVSanitizer()
safe_csv = csv_sanitizer.sanitize("data.csv")

# Sanitize HTML
html_sanitizer = JazzmineHTMLSanitizer()
safe_html = html_sanitizer.sanitize("<script>alert('xss')</script><p>Safe content</p>")
# Output: "<p>Safe content</p>"

Toxicity Detection with Explainability

from jazzmine.security.toxic_content_detector import JazzmineToxicityDetector

# Initialize detector
detector = JazzmineToxicityDetector()

# Train on your data
detector.train(
    csv_path="training_data.csv",
    text_column="text",
    label_column="is_toxic"
)

# Make predictions
text = "This is a test message"
prediction = detector.predict(text)
print(f"Toxic: {prediction['is_toxic']}")
print(f"Confidence: {prediction['confidence']:.2%}")

# Get SHAP explanations
explanation = detector.explain(text, num_samples=100)
print(f"Top contributing features: {explanation['top_features']}")

Architecture

Jazzmine Security is built with a hybrid Python-Rust architecture:

  • Python Layer: High-level APIs, model management, ML workflows
  • Rust Layer: Text normalization, TF-IDF extraction, semantic analysis
  • HuggingFace Integration: Seamless model loading and caching
  • PyO3 Bindings: Zero-copy data transfer between Python and Rust

Models

Pre-trained Models on HuggingFace

  • Input Safeguard: nourmedini1/jazzmine-input-safeguard-v2

    • Detects jailbreaks, prompt injections, and malicious inputs
    • Fine-tuned on diverse attack patterns
  • Response Validator: nourmedini1/jazzmine-response-validator-v2

    • Validates AI-generated content for safety
    • Identifies unsafe, biased, or harmful outputs

Custom Models

You can train and use your own models:

from jazzmine.security.toxic_content_detector import JazzmineToxicityDetector

detector = JazzmineToxicityDetector()
detector.train("your_data.csv", text_column="text", label_column="label")
detector.save("my_custom_model")

# Later use
detector = JazzmineToxicityDetector()
detector.load("my_custom_model")

Configuration

Logging Integration

from jazzmine.logging import BaseLogger, RequestContext

class MyLogger(BaseLogger):
    def info(self, message: str, **kwargs):
        print(f"[INFO] {message}: {kwargs}")

moderator = JazzmineInputModerator(
    "nourmedini1/jazzmine-input-safeguard-v2",
    logger=MyLogger()
)

GPU Configuration

import torch

# Check GPU availability
if torch.cuda.is_available():
    print(f"Using GPU: {torch.cuda.get_device_name(0)}")
else:
    print("Using CPU")

# Models automatically use GPU when available

Chunking Configuration

moderator = JazzmineInputModerator("model-name")

# Adjust chunk size for long texts
moderator.chunk_size = 512  # tokens
moderator.overlap = 50      # token overlap between chunks

Testing

# Run all tests
pytest tests/

# Run with coverage
pytest --cov=jazzmine.security tests/

# Run specific test file
pytest tests/test_input_moderator.py

Performance

Benchmark on NVIDIA RTX 3090:

Operation Throughput Latency (p50) Latency (p99)
Input Moderation (batch=32) 450 texts/sec 71ms 120ms
Output Validation (batch=32) 420 texts/sec 76ms 130ms
Toxicity Detection 800 texts/sec 1.2ms 5ms
PDF Sanitization 15 docs/sec 65ms 150ms

Contributing

We welcome contributions! Please see our Contributing Guide for details.

# Setup development environment
git clone https://github.com/yourorg/jazzmine-security.git
cd jazzmine-security
pip install -e ".[dev]"

# Build Rust components
cd bindings
maturin develop --release

# Run tests
pytest tests/

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

Support

Roadmap

  • Multi-language support (French, Arabic, Spanish)
  • Real-time monitoring dashboard
  • Additional sanitizers (JSON, XML, Markdown)
  • Model distillation for edge deployment
  • Integration with popular LLM frameworks (LangChain, LlamaIndex)

Made with care by the Jazzmine Team

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

jazzmine_security-0.1.9.tar.gz (2.4 MB view details)

Uploaded Source

Built Distributions

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

jazzmine_security-0.1.9-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.0 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

jazzmine_security-0.1.9-cp38-abi3-win_amd64.whl (3.7 MB view details)

Uploaded CPython 3.8+Windows x86-64

jazzmine_security-0.1.9-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.0 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ x86-64

jazzmine_security-0.1.9-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.0 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARM64

jazzmine_security-0.1.9-cp38-abi3-macosx_11_0_arm64.whl (3.8 MB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

jazzmine_security-0.1.9-cp38-abi3-macosx_10_12_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

Details for the file jazzmine_security-0.1.9.tar.gz.

File metadata

  • Download URL: jazzmine_security-0.1.9.tar.gz
  • Upload date:
  • Size: 2.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.12.6

File hashes

Hashes for jazzmine_security-0.1.9.tar.gz
Algorithm Hash digest
SHA256 1dd9cc204a5f1dfa2c5667a7fc1f9ba7199e2133924b633c3f3d4e134c189de6
MD5 bd24a4bf1162489ee3864fc08066d6d1
BLAKE2b-256 bc31ee40b9bcb1dfb298c6835a07f918df0dbd436b796b21726ddfa2948b2094

See more details on using hashes here.

File details

Details for the file jazzmine_security-0.1.9-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for jazzmine_security-0.1.9-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b18d744b3e9a12f37ffaacca5ecc21509de5018c9174299a528a7c49f76255ae
MD5 c076182acad10d95d8a3e815df9545ed
BLAKE2b-256 65bb6604718693923815c3da060b951fdc5d7611a25f4ee6397c31158be31588

See more details on using hashes here.

File details

Details for the file jazzmine_security-0.1.9-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for jazzmine_security-0.1.9-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 68f2f7ab9fae08dfb172a4957d33a51ce99db4be4aa397f279368749aec81cc2
MD5 cb86f116587bd1d35c8b3ba5300aed9f
BLAKE2b-256 e870e9d6c2b1bce21551e9630c3ce59f3e6f95c1b8e485e9557c2e56413cf19e

See more details on using hashes here.

File details

Details for the file jazzmine_security-0.1.9-cp38-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for jazzmine_security-0.1.9-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 916f1545f00416c67c03550473f77620c19931d5e62f88f3c6b3156d7c93faeb
MD5 7211d9dea72987b0040fba5d61ae9fc7
BLAKE2b-256 b7db466acae9904fd7afec117296ad4b7a5506e598d820e3dbe9509618a8e0d4

See more details on using hashes here.

File details

Details for the file jazzmine_security-0.1.9-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for jazzmine_security-0.1.9-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a9c9282ed5d61f6de3fed7c75e0652277c5bd11934eb9a985ec87399253f0573
MD5 7cb9689bd72298e6782a6eec3efa3912
BLAKE2b-256 fde0574060cfafcdc1535659a9e7dca51ca01d8f6a7d5fed3b61337ae035486a

See more details on using hashes here.

File details

Details for the file jazzmine_security-0.1.9-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for jazzmine_security-0.1.9-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f1201fcc569ee7fa2039f53a2140f7e05d62c6459752883100a6bad1c8766219
MD5 a410e2adb83dbb949dfeb30f06a92eb9
BLAKE2b-256 537ef62cc984d39bf3f36e2eae48eec5176a713cd5a654aefeafa57f5558e1d7

See more details on using hashes here.

File details

Details for the file jazzmine_security-0.1.9-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for jazzmine_security-0.1.9-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 028e30238392c2d08ba6d6852f8bea2957b2917a2210dfc3241f3e417267b5e3
MD5 afac8af2c766abae0ddb729fe0076ede
BLAKE2b-256 906996b4b18dbf9037a3a3b2285f363c89d1d84bd98b51de7478f268db968bb3

See more details on using hashes here.

File details

Details for the file jazzmine_security-0.1.9-cp38-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for jazzmine_security-0.1.9-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c71ac6c11bca29220aaf02303f5b64416f563dba17dcf71d703cf58608cb415c
MD5 b7355488597ac344c72759284a1dd08b
BLAKE2b-256 18d19fff61b8b8bea94062208dd5c292d0fc49212eb6058763610661c6c8cb30

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