ShadowAI 支持二维表格数据生成了

ShadowAI

🚀 一个基于AI的智能Mock数据生成库

ShadowAI是一个强大的Python库,使用AI技术生成高质量的模拟数据。通过灵活的规则引擎,您可以轻松生成结构化的JSON数据。

🎯 设计理念

ShadowAI 提供灵活且易用的API设计,支持从简单到复杂的各种使用场景,让用户能够快速上手同时保持强大的定制能力。

🆚 与传统Mock库的比较

核心差异

特性 ShadowAI 传统Mock库 (如 faker.js)
生成方式 AI智能生成 预定义算法
配置复杂度 极简(描述即可) 中等(需要组合API)
数据质量 高(语义理解) 中(模板化)
业务相关性 强(上下文感知) 弱(通用模式)
生成速度 慢(AI调用) 极快(本地计算)
扩展能力 高(AI适应) 中(需要开发)

ShadowAI的独特优势

🧠 智能化理解
python 复制代码
# ShadowAI - 一行代码,智能理解业务含义
shadow_ai.generate("company_email")  # 自动生成符合公司格式的邮箱

# 传统库 - 需要手动组合多个API
faker.internet.email(
    faker.person.firstName(),
    faker.person.lastName(), 
    faker.internet.domainName()
)
🎯 业务场景驱动
python 复制代码
# ShadowAI - 业务规则包,确保数据逻辑一致性
developer_profile = RulePackage(
    name="senior_developer",
    rules=["name", "email", "programming_language", "years_experience", "github_username"]
)
# 生成的数据自动保持逻辑关联:高经验值对应高级编程语言
🔧 极简配置
python 复制代码
# ShadowAI - 描述性配置
Rule(
    name="medical_record_id", 
    description="Generate HIPAA-compliant patient ID",
    constraints={"format": "anonymized"}
)

# 传统库 - 需要自定义开发
def generate_medical_id():
    # 大量自定义逻辑...

适用场景选择

✅ 推荐使用ShadowAI的场景
  • 复杂业务测试: 需要数据间逻辑关联
  • 原型演示: 需要真实感强的示例数据
  • 行业特定数据: 医疗、金融等专业领域
  • API文档示例: 自动生成符合业务的响应示例
  • 快速迭代: 频繁调整数据生成规则
✅ 推荐使用传统库的场景
  • 高性能需求: 大量数据批量生成
  • CI/CD流水线: 自动化测试环境
  • 简单标准数据: 基础的姓名、邮箱、电话
  • 离线环境: 无网络连接限制
  • 成本敏感: 避免AI API调用费用

💡 最佳实践建议

混合使用策略 - 充分发挥两者优势:

python 复制代码
# 1. 使用ShadowAI设计数据模板
business_template = shadow_ai.generate(complex_business_package)

# 2. 使用传统库进行大量数据填充  
for i in range(1000):
    test_data = apply_template_with_faker(business_template)

选择指南

  • 🎯 追求数据质量业务相关性 → 选择 ShadowAI
  • ⚡ 追求生成速度简单性 → 选择 传统Mock库
  • 🔄 两者结合使用 → 获得最佳开发体验

✨ 特性

  • 🤖 AI驱动: 基于Agno框架,支持多种LLM模型
  • 📝 灵活规则: 支持规则记录、规则组合和规则包
  • 📊 表格生成: 支持生成Markdown、CSV、HTML和JSON格式的表格数据
  • 📄 多格式支持: 支持JSON和YAML格式的规则定义
  • 🎯 精确输出: 生成结构化的JSON数据和格式化表格
  • 📦 开箱即用: 内置常用规则包和表格模板
  • 极简配置: 描述性配置,快速上手

📦 安装

bash 复制代码
pip install shadowai

🚀 快速开始

基本使用

python 复制代码
from shadow_ai import ShadowAI

# 创建ShadowAI实例
shadow_ai = ShadowAI()

# 直接使用字符串
result = shadow_ai.generate("email")
print(result)  # {"email": "john.doe@example.com"}

# 生成多个字段
result = shadow_ai.generate(["email", "name", "age"])
print(result)  # {"email": "...", "name": "...", "age": ...}

# 快速方法
result = shadow_ai.quick("email", "name", "phone")
print(result)  # {"email": "...", "name": "...", "phone": "..."}

创建自定义规则

python 复制代码
from shadow_ai import Rule, RuleCombination, RulePackage

# 创建单个规则
email_rule = Rule(name="email")
company_rule = Rule(name="company_name")

# 生成数据
result = shadow_ai.generate(email_rule)
print(result)  # {"email": "user@example.com"}

# 创建规则组合
user_combo = RuleCombination(
    name="user_profile",
    rules=["name", "email", "phone"]
)

# 创建规则包
user_package = RulePackage(
    name="user", 
    rules=["username", "email", "age", "location"]
)

result = shadow_ai.generate(user_package)
print(result)  # 完整的用户信息

使用预构建规则

python 复制代码
from shadow_ai.rules import email_rule, name_rule
from shadow_ai.rules.packages import person_package

# 使用预定义规则
result = shadow_ai.generate(email_rule)
print(result)  # {"email": "john.doe@example.com"}

# 使用预定义包
result = shadow_ai.generate(person_package)
print(result)
# {
#   "fullname": "John Smith", 
#   "age": 25,
#   "email": "john.smith@email.com"
# }

高级自定义规则

python 复制代码
from shadow_ai import Rule

# 详细配置规则
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)

表格生成

python 复制代码
from shadow_ai import ShadowAI, TableOutputFormat, TableRule, Rule

shadow_ai = ShadowAI()

# 快速表格生成
table = shadow_ai.quick_table(
    "products", 
    "id", "name", "price", "category",
    rows=5,
    output_format=TableOutputFormat.MARKDOWN
)
print(table)
# 生成格式化的Markdown表格

# 使用内置模板
user_table = shadow_ai.generate_table_from_template(
    "user_profiles", 
    rows=10,
    output_format=TableOutputFormat.CSV,
    save_to_file="users.csv"
)

# 自定义表格规则
custom_table = TableRule.create(
    name="survey",
    columns=[
        Rule(name="response_id").with_examples("RESP001", "RESP002"),
        Rule(name="score").with_constraints(type="integer", min=1, max=10),
        Rule(name="feedback").with_examples("Great!", "Good", "Average")
    ],
    rows_count=8
)

result = shadow_ai.generate_table(custom_table, TableOutputFormat.MARKDOWN)

# 列出可用模板
templates = shadow_ai.list_table_templates()
print(templates)  # ['user_profiles', 'product_catalog', 'sales_data', 'employees', 'financial_data']

📖 文档

详细文档请查看 docs/ 目录。

🤝 贡献

欢迎贡献!请查看 CONTRIBUTING.md

📄 许可证

MIT License - 查看 LICENSE 文件。

相关推荐
TT-Kun1 分钟前
PyTorch 张量核心操作——比较、排序与数据校验
人工智能·pytorch·python·深度学习·机器学习
ccLianLian15 分钟前
深度学习·Zegclip&Clip-RC
人工智能·深度学习
nanxun___40 分钟前
【论文分析】【Agent】SEW: Self-Evolving Agentic Workflows for Automated Code Generatio
人工智能·机器学习
小小琪_Bmob后端云44 分钟前
【Trae实践】直播间自动发言工具的开发
android·ai编程·trae
阿里云云原生1 小时前
垂直和领域 Agent 的护城河:上下文工程
agent
POLOAPI1 小时前
踩坑实录:Claude Code的SSL证书噩梦与完美解决方案
人工智能
西柚啊1 小时前
AI + 可视化:Stagewise 如何让前端 UI 调试效率飞跃
前端·ai编程
说私域1 小时前
企业通讯与营销技术融合创新:定制开发开源AI智能名片S2B2C商城小程序的协同价值研究
人工智能·小程序·开源
开放知识图谱1 小时前
论文浅尝 | 利用大语言模型进行高效实体对齐(ACL2024)
人工智能·语言模型·自然语言处理