关于 data-designer
data-designer 是一项用于通过 Data Designer 库构建合成数据集的技能,面向需要生成定制数据集的用户。它依据需求选择交互或 Autopilot 流程,并生成 Python 配置文件。
主要功能
- 01交互式或 Autopilot 流程
- 02根据描述构建合成数据集
- 03生成配置构建器 Python 文件
- 04遵循数据列保留规则
- 05提供采样与验证配置提示
适用场景
- 01按需求生成客户评论数据集
- 02在无需反复确认时自动确定数据集设计
- 03为数据集创建可复用的配置脚本
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ nvidia/ skills --skill data-designer安装后在 Claude Code 中输入/data-designer确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
BENCHMARK.mdskill-card.mdskill.oms.sigevals/evals.jsonreferences/person-sampling.mdpreview-review.mdseed-datasets.mdscripts/get_person_object_schema.pyworkflows/autopilot.mdinteractive.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-designerCLI: 告知用户此环境中未安装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