💻

data-designer

👤 肖俊伟 ✓ 已认证 📦 v1.0.0 ⭐ 4.5 ⬇️ 133 下载
💻 开发编程 免费

📖 技能介绍


name: data-designer description: 在用户想要创建数据集、生成合成数据或构建数据生成流水线时使用。 argument-hint: [describe the dataset you want to generate] license: Apache-2.0 metadata: owner: DataDesigner


开始之前

不要先探索工作空间。工作流的"学习"步骤会提供你需要的一切。

目标

使用 Data Designer 库构建一个与以下描述匹配的合成数据集:

$ARGUMENTS

工作流

如果用户暗示他们不想回答问题——例如,他们说"你来决定"、"你做主"、"做合理假设"、"直接构建"、"给我惊喜"等——则使用自动导航模式。否则,使用交互式模式(默认)。

读取与所选模式匹配的工作流文件,然后按照它操作:

  • 交互式 → 读取 workflows/interactive.md
  • 自动导航 → 读取 workflows/autopilot.md

规则

  • 默认保留输出中的所有列。删除列的唯一例外是:(1)用户明确要求,或(2)该列是仅用于派生其他列的辅助列(例如,用于提取姓名、城市等的采样 person 对象)。如有疑问,保留该列。
  • 不要建议或询问种子数据集。仅在用户明确提供种子数据或要求从现有记录构建时使用。使用种子时,阅读 references/seed-datasets.md
  • 当数据集需要人员数据(姓名、人口统计信息、地址)时,阅读 references/person-sampling.md
  • 如果已存在与数据集描述匹配的数据集脚本,询问用户是编辑它还是创建新的。

使用技巧和常见陷阱

  • 采样器和验证列需要同时指定 type 和 params。 例如,sampler_type="category" 配合 params=dd.CategorySamplerParams(...)
  • promptsystem_promptexpr 字段中的 Jinja2 模板: 使用 {{ column_name }} 引用列,使用 {{ column_name.field }} 引用嵌套字段。
  • SamplerColumnConfig 接受 params,而非 sampler_params

    小葱技能站7w4.net每天更新,海量AI技能等你发现。

  • LLM 评判器评分访问: LLMJudgeColumnConfig 生成一个嵌套字典,其中每个评分名称映射到 {reasoning: str, score: int}。要获取数值评分,使用 .score 属性。例如,对于一个名为 quality 的评判器列,其评分名为 correctness,使用 {{ quality.correctness.score }}。使用 {{ quality.correctness }} 会返回完整字典,而非数值评分。

故障排除

  • data-designer CLI 未找到: 告知用户 data-designer 未在此环境中安装(需要 Python >= 3.10)。询问是否希望你创建虚拟环境并安装,或者他们自行安装。未经用户许可不要安装任何内容。
  • 预览期间网络错误: 沙箱环境可能正在阻止出站请求。请求用户允许在禁用沙箱的情况下重试命令。作为最后手段,如果在沙箱外重试也失败,让用户自行运行命令。

输出模板

在当前目录写入一个 Python 文件,其中包含返回 DataDesignerConfigBuilderload_config_builder() 函数。合理命名文件(例如 customer_reviews.py)。使用 PEP 723 内联元数据声明依赖。

# /// script
# dependencies = [
#   "data-designer", # always required
#   "pydantic", # only if this script imports from pydantic
#   # add additional dependencies here
# ]
# ///
import data_designer.config as dd
from pydantic import BaseModel, Field


# 当输出需要符合特定模式时使用 Pydantic 模型
class MyStructuredOutput(BaseModel):
    field_one: str = Field(description="...")
    field_two: int = Field(description="...")


# 当内置列类型不足时使用自定义生成器
@dd.custom_column_generator(
    required_columns=["col_a"],
    side_effect_columns=["extra_col"],
)
def generator_function(row: dict) -> dict:
    # 在此添加依赖于 "col_a" 的自定义逻辑,并原地更新 row
    row["name_in_custom_column_config"] = "custom value"
    row["extra_col"] = "extra value"
    return row


def load_config_builder() -> dd.DataDesignerConfigBuilder:
    config_builder = dd.DataDesignerConfigBuilder()

    # 种子数据集(仅在用户明确提到种子数据集路径时使用)
    # config_builder.with_seed_dataset(dd.LocalFileSeedSource(path="path/to/seed.parquet"))

    # config_builder.add_column(...)
    # config_builder.add_processor(...)

    return config_builder

仅在任务需要时才包含 Pydantic 模型、自定义生成器、种子数据集和额外依赖。

🤖 AI 评测

这个 Skill 质量较好,能有效帮助生成合成数据集。它在数据生成方面做得不错,生成的脚本正确率高,使用起来也比较安全。主要优点是能根据需求自动设计数据方案,操作流程清晰。不足之处是文档不够完善,缺少一些使用说明,另外在某些情况下响应效率还有优化空间。总体来说值得使用,但入手时可能需要多花点时间熟悉操作方式。

📊 多维度评分

适应性4.4
规范性4.4
有效性4.7
可靠性4.4
可信度4.5

📁 包含文件 (11 个)

📄 BENCHMARK.md 3.7 KB
📄 README.md 980 B
📄 SKILL.md 4.4 KB
📄 evals/evals.json 1.4 KB
📄 references/person-sampling.md 2.3 KB
📄 references/preview-review.md 1.8 KB
📄 references/seed-datasets.md 1.1 KB
📄 scripts/get_person_object_schema.py 1.7 KB
📄 skill-card.md 3.6 KB
📄 workflows/autopilot.md 2.6 KB
📄 workflows/interactive.md 3.2 KB