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

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.1.tar.gz (5.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.1-py3-none-any.whl (5.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: shadowai-0.1.1.tar.gz
  • Upload date:
  • Size: 5.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.0

File hashes

Hashes for shadowai-0.1.1.tar.gz
Algorithm Hash digest
SHA256 76ebd5de5113d65e09b837942eb37f11fff08c3ecfa904f62ee45a198022c3ed
MD5 f879fb4648b3780810e2ead8d094b2dd
BLAKE2b-256 9190cdea64d5dba05aa7c3d54db338893d3c6ec136d2fc31dfc062001b648d61

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shadowai-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 5.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.0

File hashes

Hashes for shadowai-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 069dfa3bf78e8aeebc25cfe714fbba56288bdff143d51b2f37df36df6e07d3e1
MD5 4747500c8dcacb685741af0e2d67ffff
BLAKE2b-256 b9301e26dcd72f23c9bc923e40adf42cfee93a7c8a394ec04b0ccc11f5d3e2ed

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