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 文件。

相关推荐
卡尔曼的BD SLAMer14 分钟前
计算机视觉与深度学习 | 基于深度学习的图像特征提取与匹配算法综述及MATLAB实现
人工智能·深度学习·算法·计算机视觉·matlab
嘀咕博客17 分钟前
美图设计室-AI帮你做设计
人工智能·ai工具
桂花饼29 分钟前
谷歌 “Nano Banana“ 深度解析:AI 图像的未来是精准编辑,而非从零生成
人工智能·aigc·gpt-4o·gpt-5·claude 4.1·nano banana
MisterZhang66639 分钟前
Java使用apache.commons.math3的DBSCAN实现自动聚类
java·人工智能·机器学习·自然语言处理·nlp·聚类
艾醒2 小时前
大模型面试题剖析:PPO 与 GRPO 强化学习算法核心差异解析
人工智能·深度学习·机器学习
zabr3 小时前
告别ai味,拥抱设计新生:聊聊如何用 Claude Code 创造设计师级别的UI
前端·aigc·ai编程
一只爱撸猫的程序猿3 小时前
做一个「运维知识库 + 多模态检索问答」的案例
spring boot·aigc·ai编程
麦麦麦造3 小时前
白嫖16G+2vCPU的服务器!超简单教程,有手就会
人工智能
北极的树3 小时前
最近爆火的Nano-Banana模型,你会玩了么?
人工智能
诗人啊_程序员5 小时前
AI、人工智能基础: 模型剪枝的概念与实践(PyTorch版)
人工智能·pytorch·算法·ai·剪枝