option
MaisonMaison Skill Gestion de base de données nemo-data-designer-plugin

nemo-data-designer-plugin

NVIDIA/skills NVIDIA/skills

Créez des ensembles de données synthétiques et des pipelines de génération de données à l'aide de la bibliothèque Data Designer.

...Développer tout
1
Heure mise à jour 27 septembre 2026

Avant de commencer

N'explorez pas l'espace de travail dans un premier temps. L'étape « Apprendre » du workflow vous fournit tout ce dont vous avez besoin.

Objectif

Créer un ensemble de données synthétiques à l’aide de la bibliothèque Data Designer, correspondant à la description suivante :

$ARGUMENTS

Workflow

Utilisez le mode Autopilot si l'utilisateur laisse entendre qu'il ne souhaite pas répondre aux questions — par exemple, s'il dit quelque chose comme « faites preuve d'initiative », « c'est vous qui décidez », « faites des hypothèses raisonnables », « créez-le simplement », « surprenez-moi », etc. Sinon, utilisez le mode interactif (par défaut).

Lisez uniquement le fichier de workflow correspondant au mode sélectionné, puis suivez-le :

  • Interactif → lire workflows/interactive.md
  • Pilote automatique → lire workflows/autopilot.md

Règles

  • Conservez toutes les colonnes dans la sortie par défaut. Les seules exceptions justifiant la suppression d’une colonne sont : (1) l’utilisateur le demande explicitement, ou (2) il s’agit d’une colonne auxiliaire qui existe uniquement pour dériver d’autres colonnes (par exemple, un objet « personne » échantillonné utilisé pour extraire le nom, la ville, etc.). En cas de doute, conservez la colonne.
  • Ne suggérez pas et ne posez pas de questions concernant les ensembles de données de départ. N’en utilisez un que lorsque l’utilisateur fournit explicitement des données de départ ou demande de créer un ensemble à partir d’enregistrements existants. Lorsque vous utilisez un ensemble de données de départ, lisez references/seed-datasets.md.
  • Lorsque le jeu de données nécessite des données sur des personnes (noms, données démographiques, adresses), lisez references/person-sampling.md.
  • Si un script de jeu de données correspondant à la description du jeu de données existe déjà, demandez à l’utilisateur s’il souhaite le modifier ou en créer un nouveau.
  • Pour les commandes et le contexte spécifiques à ce plugin de la plateforme NeMo (par exemple, l’obtention de configurations de modèles auprès de fournisseurs IGW ou de ModelConfig, l’installation ou la publication de locales Nemotron Personas, les pointeurs de ressources côté plateforme), consultez references/nemo-platform-plugin-additions.md.

Conseils d’utilisation et pièges courants

  • Les colonnes d’échantillonnage et de validation nécessitent à la fois un type et des paramètres. Par exemple, sampler_type="category" avec params=dd.CategorySamplerParams(...).
  • les modèles Jinja2 dans prompt, system_prompt, et expr champs : les colonnes de référence comportant {{ column_name }}, les champs imbriqués avec {{ column_name.field }}.
  • **SamplerColumnConfig:** Prend params, et non sampler_params.
  • accès aux notes des juges LLM : LLMJudgeColumnConfig produit un dictionnaire imbriqué où chaque nom de note correspond à {reasoning: str, score: int}. Pour obtenir la note numérique, utilisez l’ .score . Par exemple, pour une colonne de juge nommée quality et dont la note s’appelle correctness, utilisez {{ quality.correctness.score }}. La fonction {{ quality.correctness }} renvoie le dictionnaire complet, et non la note numérique.

Dépannage

  • **nemo data-designer CLI introuvable :** Indiquez à l'utilisateur que nemo data-designer n’est pas installé dans cet environnement (nécessite Python >= 3.11). Demandez-lui si vous devez créer un environnement virtuel et l’installer, ou s’il préfère le faire lui-même. N’installez rien sans l’autorisation de l’utilisateur.
  • Erreurs réseau pendant l’aperçu : un environnement sandbox peut bloquer les requêtes sortantes. Demandez à l’utilisateur l’autorisation de réessayer la commande avec le sandbox désactivé. En dernier recours uniquement, si la nouvelle tentative en dehors du sandbox échoue également, demandez à l’utilisateur d’exécuter la commande lui-même.

Modèle de sortie

Écrivez un fichier Python dans le répertoire courant contenant une load_config_builder() fonction renvoyant un DataDesignerConfigBuilder. Donnez au fichier un nom descriptif (par exemple, customer_reviews.py). Utilisez les métadonnées en ligne conformes à la PEP 723 pour les dépendances.

# /// 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

N'incluez les modèles Pydantic, les générateurs personnalisés, les ensembles de données de départ et les dépendances supplémentaires que lorsque la tâche l'exige. Privilégiez l'inclusion model_configs lorsque le jeu de données utilise des colonnes LLM — le fait de le déclarer dans le script garantit la portabilité de la configuration entre les environnements locaux run et le cluster submit, alors que l'alternative du registre YAML local ne fonctionne que pour run.

Voir sur GitHub
---
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`.

Installer nemo-data-designer-plugin

Téléchargez et décompressez les fichiers de compétences dans votre répertoire .claude/skills/.

Télécharger le ZIP

Clonez le dépôt et copiez les fichiers de compétence dans votre projet.

git clone https://github.com/NVIDIA/skills/tree/main/skills/nemo-data-designer-plugin # Copy SKILL.md to your .claude/skills/ directory

Copier Copier
Configuration rapide: Copiez le dossier de la compétence dans .claude/skills/ Claude détectera automatiquement la compétence et l'utilisera
Dépôt NVIDIA/skills

Compétences similaires

microservices-patterns
Heure mise à jour 29 juin 2026
jpa-patterns
Heure mise à jour 30 juin 2026
fabric-lakehouse
Heure mise à jour 30 juin 2026
prisma-expert
Heure mise à jour 29 juin 2026
OR