Option
HeimHeim Skill Datenbankverwaltung nemo-data-designer-plugin

nemo-data-designer-plugin

NVIDIA/skills NVIDIA/skills

Erstellen Sie synthetische Datensätze und Datengenerierungspipelines unter Verwendung der Data Designer-Bibliothek.

...Alle erweitern
1
Zeit aktualisiert 27. September 2026

Bevor Sie beginnen

Erkunden Sie den Arbeitsbereich nicht zuerst. Der Learn-Schritt des Workflows bietet Ihnen alles, was Sie benötigen.

Ziel

Erstellen Sie einen synthetischen Datensatz mit der Data-Designer-Bibliothek, der dieser Beschreibung entspricht:

$ARGUMENTS

Workflow

Verwenden Sie den Modus Autopilot, wenn der Benutzer andeutet, dass er keine Fragen beantworten möchte – z. B. sagt er etwas wie „nehmen Sie eine Entscheidung“, „Sie entscheiden“, „treffen Sie vernünftige Annahmen“, „bauen Sie es einfach“, „überraschen Sie mich“ usw. Andernfalls verwenden Sie den Modus Interaktiv (Standard).

Lesen Sie nur die Workflow-Datei, die dem ausgewählten Modus entspricht, und folgen Sie ihr:

  • Interaktiv → lesen Sie workflows/interactive.md
  • Autopilot → lesen Sie workflows/autopilot.md

Regeln

  • Behalten Sie standardmäßig alle Spalten in der Ausgabe. Die einzigen Ausnahmen für das Entfernen einer Spalte sind: (1) der Benutzer fordert dies explizit an, oder (2) es handelt sich um eine Hilfsspalte, die ausschließlich dazu dient, andere Spalten abzuleiten (z. B. ein stichprobenhaftes Personobjekt, das verwendet wird, um Name, Stadt usw. zu extrahieren). Wenn Sie unsicher sind, behalten Sie die Spalte.
  • Schlagen Sie keine Startdatensätze vor oder fragen Sie danach. Verwenden Sie nur einen, wenn der Benutzer explizit Startdaten bereitstellt oder bittet, aus vorhandenen Datensätzen zu erstellen. Wenn Sie einen Startdatensatz verwenden, lesen Sie references/seed-datasets.md.
  • Wenn der Datensatz Personendaten (Namen, demografische Daten, Adressen) erfordert, lesen Sie references/person-sampling.md.
  • Wenn ein Datensatzskript, das der Beschreibung des Datensatzes entspricht, bereits existiert, fragen Sie den Benutzer, ob er es bearbeiten oder ein neues erstellen möchte.
  • Für Befehle und Kontext, die spezifisch für dieses NeMo-Platform-Plugin sind (z. B. das Beziehen von Modellkonfigurationen von IGW-Anbietern oder in-Skript-ModelConfigs, das Installieren oder Veröffentlichen von Nemotron-Persona-Lokalisierungen, plattformspezifische Ressourcenzeiger), lesen Sie references/nemo-platform-plugin-additions.md.

Nutzungshinweise und häufige Fallstricke

  • Sampler- und Validierungsspalten benötigen sowohl einen Typ als auch Parameter. Z. B. sampler_type="category" mit params=dd.CategorySamplerParams(...).
  • Jinja2-Vorlagen in den Feldern prompt, system_prompt und expr: Verweisen Sie auf Spalten mit {{ column_name }}, verschachtelte Felder mit {{ column_name.field }}.
  • **SamplerColumnConfig:** Nimmt params entgegen, nicht sampler_params.
  • LLM-Bewertungszugriff: LLMJudgeColumnConfig erzeugt ein verschachteltes Wörterbuch, in dem jeder Bewertungsnamen auf {reasoning: str, score: int} abbildet. Um den numerischen Wert zu erhalten, verwenden Sie das Attribut .score. Beispiel: Für eine Bewerterspalte namens quality mit einem Bewertungsnamen correctness verwenden Sie {{ quality.correctness.score }}. Die Verwendung von {{ quality.correctness }} gibt das vollständige Wörterbuch zurück, nicht den numerischen Wert.

Fehlerbehebung

  • **nemo data-designer CLI nicht gefunden:** Teilen Sie dem Benutzer mit, dass nemo data-designer in dieser Umgebung nicht installiert ist (erfordert Python >= 3.11). Fragen Sie, ob Sie eine virtuelle Umgebung erstellen und sie installieren sollen, oder ob er es selbst vorziehen würde. Installieren Sie ohne Erlaubnis des Benutzers nichts.
  • Netzwerkfehler während der Vorschau: Eine Sandbox-Umgebung könnte ausgehende Anfragen blockieren. Fragen Sie den Benutzer um Erlaubnis, den Befehl mit deaktivierter Sandbox erneut auszuführen. Nur als letztes Mittel, wenn das erneute Ausführen außerhalb der Sandbox ebenfalls fehlschlägt, teilen Sie dem Benutzer mit, dass er den Befehl selbst ausführen soll.

Ausgabevorlage

Schreiben Sie eine Python-Datei in das aktuelle Verzeichnis mit einer Funktion load_config_builder(), die einen DataDesignerConfigBuilder zurückgibt. Benennen Sie die Datei beschreibend (z. B. customer_reviews.py). Verwenden Sie PEP 723 Inline-Metadaten für Abhängigkeiten.

# /// script
# dependencies = [
#   "data-designer", # immer erforderlich
#   "pydantic", # nur wenn dieses Skript aus pydantic importiert
#   # weitere Abhängigkeiten hier hinzufügen
# ]
# ///
import data_designer.config as dd
from pydantic import BaseModel, Field


# Verwenden Sie Pydantic-Modelle, wenn die Ausgabe einem bestimmten Schema entsprechen muss
class MyStructuredOutput(BaseModel):
    field_one: str = Field(description="...")
    field_two: int = Field(description="...")


# Verwenden Sie benutzerdefinierte Generatoren, wenn integrierte Spaltentypen nicht ausreichen
@dd.custom_column_generator(
    required_columns=["col_a"],
    side_effect_columns=["extra_col"],
)
def generator_function(row: dict) -> dict:
    # fügen Sie hier benutzerdefinierte Logik hinzu, die von "col_a" abhängt, und aktualisieren Sie 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(
        # Die programmatische Deklaration von Modellkonfigurationen hier ist der tragfähige Weg:
        # er funktioniert sowohl für lokales `run` als auch für Cluster-`submit`, während die lokale
        # YAML-Registry-Alternative nur für `run` funktioniert. Der unten angegebene Anbieter
        # ist ein häufiger Standard, der während `nemo setup` erstellt wird – bestätigen Sie ihn (oder
        # entdecken Sie andere) mit `nemo inference providers list`. Siehe
        # references/nemo-platform-plugin-additions.md für die lokale-YAML-Alternative.
        model_configs=[
            dd.ModelConfig(
                alias="text",
                model="...",
                provider="default/nvidia-build",
                inference_parameters=dd.ChatCompletionInferenceParams(),
            ),
        ],
    )

    # Startdatensatz (nur wenn der Benutzer explizit einen Pfad zu einem Startdatensatz erwähnt)
    # config_builder.with_seed_dataset(dd.LocalFileSeedSource(path="path/to/seed.parquet"))

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

    return config_builder

Fügen Sie nur dann Pydantic-Modelle, benutzerdefinierte Generatoren, Startdatensätze und zusätzliche Abhängigkeiten ein, wenn die Aufgabe dies erfordert. Ziehen Sie die Aufnahme von model_configs vor, wenn der Datensatz LLM-Spalten verwendet – die Deklaration im Skript hält die Konfiguration zwischen lokalem run und Cluster-submit tragfähig, während die lokale YAML-Registry-Alternative nur für run funktioniert.

Auf GitHub ansehen
---
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`.

nemo-data-designer-plugin installieren

Laden Sie die Skill-Dateien herunter und extrahieren Sie diese in Ihr .claude/skills/-Verzeichnis.

ZIP herunterladen

Klonen Sie das Repository und kopieren Sie die Skill-Dateien in Ihr Projekt.

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

Kopieren Kopieren
Schnelle Einrichtung: Kopieren Sie den Ordner „skill“ nach .claude/skills/. Claude erkennt und verwendet die Fähigkeit automatisch.
Repository NVIDIA/skills

Ähnliche Skills

microservices-patterns
Zeit aktualisiert 29. Juni 2026
jpa-patterns
Zeit aktualisiert 30. Juni 2026
fabric-lakehouse
Zeit aktualisiert 30. Juni 2026
prisma-expert
Zeit aktualisiert 29. Juni 2026
OR