mcpField
D
data-designer

data-designer

github.com/nvidia数据与数据库3.8k2.5k 次安装今天更新
代码仓库

关于 data-designer

data-designer 是一项用于通过 Data Designer 库构建合成数据集的技能,面向需要生成定制数据集的用户。它依据需求选择交互或 Autopilot 流程,并生成 Python 配置文件。

主要功能

  1. 01交互式或 Autopilot 流程
  2. 02根据描述构建合成数据集
  3. 03生成配置构建器 Python 文件
  4. 04遵循数据列保留规则
  5. 05提供采样与验证配置提示

适用场景

  1. 01按需求生成客户评论数据集
  2. 02在无需反复确认时自动确定数据集设计
  3. 03为数据集创建可复用的配置脚本

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/nvidia/skills --skill data-designer

安装后在 Claude Code 中输入/data-designer确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

BENCHMARK.md
skill-card.md
skill.oms.sig
evals/
evals.json
references/
person-sampling.md
preview-review.md
seed-datasets.md
scripts/
get_person_object_schema.py
workflows/
autopilot.md
interactive.md

详细介绍

开始之前

请勿先探索工作区。工作流的 Learn 步骤会提供所需的一切。

目标

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

$ARGUMENTS

工作流

如果用户表示不想回答问题,请使用 Autopilot 模式——例如,他们说“你来决定”“做出合理假设”“直接构建”“给我惊喜”等。否则,使用 Interactive 模式(默认)。

只读取与所选模式匹配的工作流文件,然后按其说明操作:

  • Interactive → 读取 workflows/interactive.md
  • Autopilot → 读取 workflows/autopilot.md

规则

  • 默认保留输出中的所有列。只有以下情况可以删除列:(1)用户明确要求;或(2)该列仅作为用于推导其他列的辅助列(例如,采样得到的人物对象,用于提取姓名、城市等)。如有疑问,请保留该列。
  • 不要建议或询问是否使用种子数据集。只有在用户明确提供种子数据或要求基于现有记录构建时,才使用种子数据集。使用种子数据时,请读取 references/seed-datasets.md。
  • 如果数据集需要个人数据(姓名、人口统计信息、地址),请读取 references/person-sampling.md。
  • 如果已存在与数据集描述相符的数据集脚本,请询问用户是要编辑该脚本还是创建新脚本。

使用提示和常见问题

  • 采样器和验证列都需要同时指定类型和参数。 例如,sampler_type="category" 搭配 params=dd.CategorySamplerParams(...)。
  • prompt、system_prompt 和 expr 字段中的 Jinja2 模板: 使用 {{ column_name }} 引用列,使用 {{ column_name.field }} 引用嵌套字段。
  • SamplerColumnConfig: 使用 params,而不是 sampler_params。
  • LLM judge 分数的访问方式: LLMJudgeColumnConfig 会生成一个嵌套字典,其中每个分数名称都映射到 {reasoning: str, score: int}。要获取数值分数,请使用 .score 属性。例如,对于名为 quality、分数名为 correctness 的评审列,请使用 {{ quality.correctness.score }}。使用 {{ quality.correctness }} 会返回完整字典,而不是数值分数。

故障排除

  • 找不到 data-designer CLI: 告知用户此环境中未安装 data-designer(需要 Python >= 3.11)。询问他们是否希望你创建虚拟环境并安装,或者他们更愿意自行操作。未经用户许可,不要安装任何内容。
  • 预览期间出现网络错误: 沙盒环境可能阻止了出站请求。请征求用户许可,在禁用沙盒的情况下重试命令。只有在最后手段下,也就是在沙盒外重试仍失败时,才告知用户自行运行该命令。

输出模板

在当前目录中创建一个 Python 文件,其中包含一个返回 DataDesignerConfigBuilder 的 load_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


# Use Pydantic models when the output needs to conform to a specific schema
class MyStructuredOutput(BaseModel):
    field_one: str = Field(description="...")
    field_two: int = Field(description="...")


# Use custom generators when built-in column types aren't enough
@dd.custom_column_generator(
    required_columns=["col_a"],
    side_effect_columns=["extra_col"],
)
def generator_function(row: dict) -> dict:
    # add custom logic here that depends on "col_a" and update row in place
    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()

    # Seed dataset (only if the user explicitly mentions a seed dataset path)
    # config_builder.with_seed_dataset(dd.LocalFileSeedSource(path="path/to/seed.parquet"))

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

    return config_builder

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

评论

支持 Markdown