nemo-data-designer-plugin
NVIDIA/skills
Construa conjuntos de dados sintéticos e pipelines de geração de dados usando a biblioteca Data Designer.
...Expandir tudoAntes de Começar
Não explore o espaço de trabalho primeiro. A etapa "Aprender" do fluxo de trabalho fornece tudo o que você precisa.
Objetivo
Crie um conjunto de dados sintético usando a biblioteca Data Designer que corresponda a esta descrição:
$ARGUMENTOS
Fluxo de Trabalho
Use o modo Autopilot se o usuário implicar que não deseja responder a perguntas — por exemplo, se ele disser algo como "tenha opinião própria", "você decide", "faça suposições razoáveis", "apenas construa", "surpreenda-me", etc. Caso contrário, use o modo Interativo (padrão).
Leia apenas o arquivo de fluxo de trabalho que corresponde ao modo selecionado, e então siga-o:
- Interativo → leia
workflows/interactive.md - Autopilot → leia
workflows/autopilot.md
Regras
- Mantenha todas as colunas na saída por padrão. As únicas exceções para remover uma coluna são: (1) o usuário solicita explicitamente, ou (2) é uma coluna auxiliar que existe apenas para derivar outras colunas (por exemplo, um objeto de pessoa amostrada usado para extrair nome, cidade, etc.). Em caso de dúvida, mantenha a coluna.
- Não sugira nem pergunte sobre conjuntos de dados de semente. Use apenas um quando o usuário fornecer explicitamente dados de semente ou solicitar a construção a partir de registros existentes. Ao usar uma semente, leia
references/seed-datasets.md. - Quando o conjunto de dados requer dados de pessoas (nomes, dados demográficos, endereços), leia
references/person-sampling.md. - Se já existir um script de conjunto de dados que corresponda à descrição do conjunto de dados, pergunte ao usuário se deseja editá-lo ou criar um novo.
- Para comandos e contexto específicos deste plugin da plataforma NeMo (por exemplo, obtenção de configurações de modelo de provedores IGW ou
ModelConfigs no script, instalação ou publicação de locais de Personas Nemotron, ponteiros de recursos do lado da plataforma), leiareferences/nemo-platform-plugin-additions.md.
Dicas de Uso e Armadilhas Comuns
- Colunas de amostragem e validação precisam de um tipo e parâmetros. Por exemplo,
sampler_type="category"comparams=dd.CategorySamplerParams(...). - Modelos Jinja2 nos campos
prompt,system_prompteexpr: referencie colunas com{{ column_name }}, campos aninhados com{{ column_name.field }}. **SamplerColumnConfig:** Recebeparams, nãosampler_params.- Acesso à pontuação do juiz LLM:
LLMJudgeColumnConfigproduz um dicionário aninhado onde cada nome de pontuação mapeia para{reasoning: str, score: int}. Para obter a pontuação numérica, use o atributo.score. Por exemplo, para uma coluna de juiz chamadaqualitycom uma pontuação chamadacorrectness, use{{ quality.correctness.score }}. Usar{{ quality.correctness }}retorna o dicionário completo, não a pontuação numérica.
Solução de Problemas
**nemo data-designerCLI não encontrado:** Informe ao usuário quenemo data-designernão está instalado neste ambiente (requere Python >= 3.11). Pergunte se deseja que você crie um ambiente virtual e o instale, ou se ele prefere fazer isso sozinho. Não instale nada sem a permissão do usuário.- Erros de rede durante a visualização: Um ambiente de sandbox pode estar bloqueando solicitações de saída. Peça permissão ao usuário para tentar novamente o comando com a sandbox desativada. Apenas como último recurso, se tentar novamente fora da sandbox também falhar, informe ao usuário para executar o comando ele mesmo.
Modelo de Saída
Escreva um arquivo Python no diretório atual com uma função load_config_builder() que retorne um DataDesignerConfigBuilder. Nomeie o arquivo de forma descritiva (por exemplo, customer_reviews.py). Use metadados inline PEP 723 para dependências.
# /// script
# dependencies = [
# "data-designer", # sempre obrigatório
# "pydantic", # apenas se este script importar do pydantic
# # adicione dependências adicionais aqui
# ]
# ///
import data_designer.config as dd
from pydantic import BaseModel, Field
# Use modelos Pydantic quando a saída precisar conformar-se a um esquema específico
class MyStructuredOutput(BaseModel):
field_one: str = Field(description="...")
field_two: int = Field(description="...")
# Use geradores personalizados quando os tipos de coluna integrados não forem suficientes
@dd.custom_column_generator(
required_columns=["col_a"],
side_effect_columns=["extra_col"],
)
def generator_function(row: dict) -> dict:
# adicione lógica personalizada aqui que depende de "col_a" e atualize row in-place
row["name_in_custom_column_config"] = "valor personalizado"
row["extra_col"] = "valor extra"
return row
def load_config_builder() -> dd.DataDesignerConfigBuilder:
config_builder = dd.DataDesignerConfigBuilder(
# Declarar configurações de modelo programaticamente aqui é o caminho portátil:
# funciona tanto para `run` local quanto para `submit` em cluster, enquanto a alternativa
# de registro YAML local só funciona para `run`. O provedor abaixo
# é um padrão comum criado durante `nemo setup` — confirme-o (ou
# descubra outros) com `nemo inference providers list`. Veja
# references/nemo-platform-plugin-additions.md para a alternativa YAML local.
model_configs=[
dd.ModelConfig(
alias="text",
model="...",
provider="default/nvidia-build",
inference_parameters=dd.ChatCompletionInferenceParams(),
),
],
)
# Conjunto de dados de semente (apenas se o usuário mencionar explicitamente um caminho de conjunto de dados de semente)
# config_builder.with_seed_dataset(dd.LocalFileSeedSource(path="path/to/seed.parquet"))
# config_builder.add_column(...)
# config_builder.add_processor(...)
return config_builder
Inclua apenas modelos Pydantic, geradores personalizados, conjuntos de dados de semente e dependências extras quando a tarefa exigir. Prefira incluir model_configs quando o conjunto de dados usa colunas LLM — declará-lo no script mantém a configuração portátil entre run local e submit em cluster, enquanto a alternativa de registro YAML local só funciona para run.
---
name: nemo-data-designer-plugin
description: Build synthetic datasets and data generation pipelines using the Data Designer library.
license: Apache-2.0
---
# Before You Start
Do not explore the workspace first. The workflow's Learn step gives you everything you need.
# Goal
Build a synthetic dataset using the Data Designer library that matches this description:
$ARGUMENTS
# Workflow
Use **Autopilot** mode if the user implies they don't want to answer questions — e.g., they say something like "be opinionated", "you decide", "make reasonable assumptions", "just build it", "surprise me", etc. Otherwise, use **Interactive** mode (default).
Read **only** the workflow file that matches the selected mode, then follow it:
- **Interactive** → read `workflows/interactive.md`
- **Autopilot** → read `workflows/autopilot.md`
# Rules
- Keep all columns in the output by default. The only exceptions for dropping a column are: (1) the user explicitly asks, or (2) it is a helper column that exists solely to derive other columns (e.g., a sampled person object used to extract name, city, etc.). When in doubt, keep the column.
- Do not suggest or ask about seed datasets. Only use one when the user explicitly provides seed data or asks to build from existing records. When using a seed, read `references/seed-datasets.md`.
- When the dataset requires person data (names, demographics, addresses), read `references/person-sampling.md`.
- If a dataset script that matches the dataset description already exists, ask the user whether to edit it or create a new one.
- For commands and context specific to this NeMo Platform plugin (e.g., sourcing model configs from IGW providers or in-script `ModelConfig`s, installing or publishing Nemotron Personas locales, platform-side resource pointers), read `references/nemo-platform-plugin-additions.md`.
# Usage Tips and Common Pitfalls
- **Sampler and validation columns need both a type and params.** E.g., `sampler_type="category"` with `params=dd.CategorySamplerParams(...)`.
- **Jinja2 templates** in `prompt`, `system_prompt`, and `expr` fields: reference columns with `{{ column_name }}`, nested fields with `{{ column_name.field }}`.
- `**SamplerColumnConfig`:** Takes `params`, not `sampler_params`.
- **LLM judge score access:** `LLMJudgeColumnConfig` produces a nested dict where each score name maps to `{reasoning: str, score: int}`. To get the numeric score, use the `.score` attribute. For example, for a judge column named `quality` with a score named `correctness`, use `{{ quality.correctness.score }}`. Using `{{ quality.correctness }}` returns the full dict, not the numeric score.
# Troubleshooting
- `**nemo data-designer` CLI not found:** Tell the user that `nemo data-designer` is not installed in this environment (requires Python >= 3.11). Ask if they would like you to create a virtual environment and install it, or if they prefer to do it themselves. Do not install anything without the user's permission.
- **Network errors during preview:** A sandbox environment may be blocking outbound requests. Ask the user for permission to retry the command with the sandbox disabled. Only as a last resort, if retrying outside the sandbox also fails, tell the user to run the command themselves.
# Output Template
Write a Python file to the current directory with a `load_config_builder()` function returning a `DataDesignerConfigBuilder`. Name the file descriptively (e.g., `customer_reviews.py`). Use PEP 723 inline metadata for dependencies.
```python
# /// 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(
# Declaring model configs programmatically here is the portable path:
# it works for both local `run` and cluster `submit`, while the local
# YAML registry alternative only works for `run`. The provider below
# is a common default created during `nemo setup` — confirm it (or
# discover others) with `nemo inference providers list`. See
# references/nemo-platform-plugin-additions.md for the local-YAML alternative.
model_configs=[
dd.ModelConfig(
alias="text",
model="...",
provider="default/nvidia-build",
inference_parameters=dd.ChatCompletionInferenceParams(),
),
],
)
# 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
```
Only include Pydantic models, custom generators, seed datasets, and extra dependencies when the task requires them. Prefer including `model_configs` when the dataset uses LLM columns — declaring it in the script keeps the config portable between local `run` and cluster `submit`, while the local YAML registry alternative only works for `run`.
Todos os arquivos
12 arquivosInstalar nemo-data-designer-plugin
Baixe e extraia os arquivos de habilidade para o diretório .claude/skills/.
Baixar ZIPClone o repositório e copie os arquivos da habilidade para o seu projeto.
git clone https://github.com/NVIDIA/skills/tree/main/skills/nemo-data-designer-plugin # Copy SKILL.md to your .claude/skills/ directory
Copiar





Lar
