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.10.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.10-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.10-cp38-abi3-win_amd64.whl (3.7 MB view details)

Uploaded CPython 3.8+Windows x86-64

jazzmine_security-0.1.10-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.10-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.10-cp38-abi3-macosx_11_0_arm64.whl (3.8 MB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

jazzmine_security-0.1.10-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.10.tar.gz.

File metadata

  • Download URL: jazzmine_security-0.1.10.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.10.tar.gz
Algorithm Hash digest
SHA256 38721c96ca769d485566a4457368c85172e67b0c29a2e208803b7ca66beff27c
MD5 9758f6a02355b1f04089eb62bf75aac2
BLAKE2b-256 cc39c80ca478e9541ab50c4b1021aec5467bb68bac11d688d14bf75650d5b57b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jazzmine_security-0.1.10-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cba772959766ae15ab304c1e402761b7c3b4ab1cb464ea92484a06fbcbda8e9f
MD5 806a8eeb0681a7b211475cbb25e67b65
BLAKE2b-256 55790cf3ed03324b94cbd414d4b0b1ffe5566484bedebdd99ea3ca0bf963566c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jazzmine_security-0.1.10-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 32e6e567e2524939c7eeb8b53422cffa89d9b49b8535cce58621f2292121e41d
MD5 88839609cd5252e8879b235cb35db511
BLAKE2b-256 b39c63a583ff1752355a404bed70606d5b58e3f597c057ccf6727e162880d785

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jazzmine_security-0.1.10-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 bd0a3ccf3b37aecd9ffb08ea000c8549c81fa4cc8e8358ec7f47976c5ee6dd81
MD5 5cf8cdcf49b41a7a68614fbaab5128ea
BLAKE2b-256 e3801e5e45ca8d1ef9159159f73b24b5f0171226d810612aa6c1a1592926dbe6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jazzmine_security-0.1.10-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8f615ebad62362fafcadad0da7d64ad50ae97b773c6e52725da36965116601df
MD5 34878d67116b44d249231acb7eff1dbe
BLAKE2b-256 d253c2f244a1297402365b8f54c5dded10dd0ca818dae0974326fccbf55f2b91

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jazzmine_security-0.1.10-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 26fd59811ad563b876bc835144a1b7cdd97c6231750e9ee13077977c83381720
MD5 e9bff87b5e2b311a164e4868038b820c
BLAKE2b-256 e7a95727549449a17c93b556cd47aaf0e42fe1aa97a5967657be01b2d298475f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jazzmine_security-0.1.10-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 896cb13b3b912c33f8cfb24c18326f536c21c458e46a536092ea5947f2c44236
MD5 f1b010d89fe9c37f70828b6191cfefd0
BLAKE2b-256 468e5f472dd0c96b3eb978298f01b39cdd398b5ec91c02bfe6f5ea90c7cacbf0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jazzmine_security-0.1.10-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 262e160b7613388662bd785829d69ebfe76ed7d5eaec872c2476627d81ac73aa
MD5 a9cec1c17c0e1c671699e64bf62996ac
BLAKE2b-256 4bbe9dbbc1da437a476f2c9d2c04c846a246a540ac2c5bb2fba169f52e0fae84

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