Skip to main content

AI-powered mock data generation library with flexible rule engine

Project description

ShadowAI

🚀 An AI-powered intelligent mock data generation library

PyPI version CI Release Python 3.8+ License: MIT

ShadowAI is a powerful Python library that uses AI technology to generate high-quality simulated data. Through a flexible rule engine, you can easily generate structured JSON data.

🎯 Design Philosophy

ShadowAI provides flexible and easy-to-use API design, supporting various usage scenarios from simple to complex, allowing users to get started quickly while maintaining powerful customization capabilities.

🆚 Comparison with Traditional Mock Libraries

Core Differences

Feature ShadowAI Traditional Mock Libraries (like faker.js)
Generation Method AI-powered intelligent generation Predefined algorithms
Configuration Complexity Minimal (description-based) Medium (requires API combination)
Data Quality High (semantic understanding) Medium (template-based)
Business Relevance Strong (context-aware) Weak (generic patterns)
Generation Speed Slow (AI calls) Very fast (local computation)
Extensibility High (AI adaptation) Medium (requires development)

ShadowAI's Unique Advantages

🧠 Intelligent Understanding

# ShadowAI - One line of code, intelligent understanding of business meaning
shadow_ai.generate("company_email")  # Automatically generates company-formatted emails

# Traditional library - Requires manual combination of multiple APIs
faker.internet.email(
    faker.person.firstName(),
    faker.person.lastName(), 
    faker.internet.domainName()
)

🎯 Business Scenario Driven

# ShadowAI - Business rule packages ensure data logical consistency
developer_profile = RulePackage(
    name="senior_developer",
    rules=["name", "email", "programming_language", "years_experience", "github_username"]
)
# Generated data automatically maintains logical relationships: high experience corresponds to advanced programming languages

🔧 Minimal Configuration

# ShadowAI - Descriptive configuration
Rule(
    name="medical_record_id", 
    description="Generate HIPAA-compliant patient ID",
    constraints={"format": "anonymized"}
)

# Traditional library - Requires custom development
def generate_medical_id():
    # Lots of custom logic...

Use Case Selection

✅ Recommended ShadowAI Scenarios

  • Complex business testing: Requires logical relationships between data
  • Prototype demonstrations: Needs highly realistic sample data
  • Industry-specific data: Medical, financial, and other professional domains
  • API documentation examples: Automatically generates business-compliant response examples
  • Rapid iteration: Frequently adjusting data generation rules

✅ Recommended Traditional Library Scenarios

  • High performance requirements: Bulk generation of large amounts of data
  • CI/CD pipelines: Automated testing environments
  • Simple standard data: Basic names, emails, phone numbers
  • Offline environments: No network connection restrictions
  • Cost-sensitive: Avoiding AI API call costs

💡 Best Practice Recommendations

Hybrid Usage Strategy - Leverage the advantages of both:

# 1. Use ShadowAI to design data templates
business_template = shadow_ai.generate(complex_business_package)

# 2. Use traditional libraries for bulk data population  
for i in range(1000):
    test_data = apply_template_with_faker(business_template)

Selection Guide:

  • 🎯 Pursue data quality and business relevance → Choose ShadowAI
  • ⚡ Pursue generation speed and simplicity → Choose Traditional Mock Libraries
  • 🔄 Combine both → Get best development experience

✨ Features

  • 🤖 AI-driven: Based on Agno framework, supports multiple LLM models
  • 📝 Flexible rules: Supports rule records, rule combinations, and rule packages
  • 📄 Multi-format support: Supports JSON and YAML format rule definitions
  • 🎯 Precise output: Generates structured JSON data
  • 📦 Ready to use: Built-in common rule packages
  • Minimal configuration: Descriptive configuration, quick start

📦 Installation

pip install shadowai

🚀 Quick Start

Basic Usage

from shadow_ai import ShadowAI

# Create ShadowAI instance
shadow_ai = ShadowAI()

# Use string directly
result = shadow_ai.generate("email")
print(result)  # {"email": "john.doe@example.com"}

# Generate multiple fields
result = shadow_ai.generate(["email", "name", "age"])
print(result)  # {"email": "...", "name": "...", "age": ...}

# Quick method
result = shadow_ai.quick("email", "name", "phone")
print(result)  # {"email": "...", "name": "...", "phone": "..."}

Creating Custom Rules

from shadow_ai import Rule, RuleCombination, RulePackage

# Create single rule
email_rule = Rule(name="email")
company_rule = Rule(name="company_name")

# Generate data
result = shadow_ai.generate(email_rule)
print(result)  # {"email": "user@example.com"}

# Create rule combination
user_combo = RuleCombination(
    name="user_profile",
    rules=["name", "email", "phone"]
)

# Create rule package
user_package = RulePackage(
    name="user", 
    rules=["username", "email", "age", "location"]
)

result = shadow_ai.generate(user_package)
print(result)  # Complete user information

Using Pre-built Rules

from shadow_ai.rules import email_rule, name_rule
from shadow_ai.rules.packages import person_package

# Use predefined rules
result = shadow_ai.generate(email_rule)
print(result)  # {"email": "john.doe@example.com"}

# Use predefined packages
result = shadow_ai.generate(person_package)
print(result)
# {
#   "fullname": "John Smith", 
#   "age": 25,
#   "email": "john.smith@email.com"
# }

Advanced Custom Rules

from shadow_ai import Rule

# Detailed rule configuration
custom_rule = Rule(
    name="company",
    description="Generate a technology company name",
    examples=["TechCorp", "DataFlow", "CloudByte"],
    constraints={"type": "string", "style": "modern"}
)

result = shadow_ai.generate(custom_rule)

📖 Documentation

For detailed documentation, please check the docs/ directory.

🤝 Contributing

Contributions are welcome! Please see CONTRIBUTING.md.

📄 License

MIT License - see LICENSE file.

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

shadowai-0.1.4.tar.gz (21.7 kB view details)

Uploaded Source

Built Distribution

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

shadowai-0.1.4-py3-none-any.whl (22.9 kB view details)

Uploaded Python 3

File details

Details for the file shadowai-0.1.4.tar.gz.

File metadata

  • Download URL: shadowai-0.1.4.tar.gz
  • Upload date:
  • Size: 21.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for shadowai-0.1.4.tar.gz
Algorithm Hash digest
SHA256 ad7f46811f262bfee8c96b616fc5973c1ebab67a1a477267583eaa3f402bbde9
MD5 7857d0575aba303d1c03e4efd2f99845
BLAKE2b-256 41acb6b16f6cd1b083fba0900511365cabb47ecae1a43a0d239ca8a1ff246637

See more details on using hashes here.

Provenance

The following attestation bundles were made for shadowai-0.1.4.tar.gz:

Publisher: release.yml on KevinZhang19870314/shadowai

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shadowai-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: shadowai-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 22.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for shadowai-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 21d223e52c4e3f6e22cceb408fda211f1cfdbdfc9732eb57d51dd7baf13721a8
MD5 d8d61a0b5faed7b8a65b9c5238daa5a6
BLAKE2b-256 4323e1609d2dc17ddd627a07bf2c39b24fafac6e7d5628c915dcbb65f584c691

See more details on using hashes here.

Provenance

The following attestation bundles were made for shadowai-0.1.4-py3-none-any.whl:

Publisher: release.yml on KevinZhang19870314/shadowai

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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