data-designer について
Data Designer ライブラリで合成データセットを構築するワークフロースキルです。説明から設定を作りたい利用者向けに、対話モードまたは自動モードを選び、設定ビルダー関数を含む Python ファイルを生成します。
主な機能
- 01説明に基づく合成データセットの設計
- 02対話モードまたは自動モード
- 03設定ビルダーのPythonファイル生成
- 04サンプラー列と検証列の設定
- 05必要に応じた人物サンプリングとシードデータ
活用シーン
- 01顧客レビューなどの合成データ作成
- 02列のサンプラーと検証器の設定
- 03既存レコードに基づくデータセット作成
- 04LLM評価データへの判定列の追加
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ promptingcompany/ nv-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詳細
作業を始める前に
最初にワークスペースを調べないでください。ワークフローの「学習」ステップで必要な情報がすべて得られます。
目標
Data Designer ライブラリを使用して、次の説明に合った合成データセットを作成します。
$ARGUMENTS
ワークフロー
ユーザーが質問に答えたくない意向を示している場合は、Autopilot モードを使用します。たとえば、「判断を任せます」「お任せします」「妥当な前提を置いてください」「そのまま作ってください」「お楽しみで」などと伝えている場合です。それ以外の場合は、Interactive モード(デフォルト)を使用します。
選択したモードに対応するワークフローファイルだけを読み、その手順に従います。
- Interactive →
workflows/interactive.mdを読む - Autopilot →
workflows/autopilot.mdを読む
ルール
- デフォルトでは、出力にすべての列を残してください。列を削除できるのは、次のいずれかに該当する場合のみです。(1)ユーザーが明示的に削除を求めた場合、または(2)ほかの列を導出するためだけに存在する補助列の場合(例:名前や都市などを抽出するためにサンプリングした人物オブジェクト)。判断に迷った場合は、その列を残してください。
- シードデータセットを提案したり、使用するか尋ねたりしないでください。ユーザーがシードデータを明示的に提供した場合、または既存のレコードをもとに作成するよう求めた場合にのみ使用してください。シードを使用するときは、
references/seed-datasets.mdを読んでください。 - データセットに人物データ(名前、人口統計、住所)が必要な場合は、
references/person-sampling.mdを読んでください。 - データセットの説明に合致するデータセットスクリプトがすでに存在する場合は、それを編集するか新規作成するかをユーザーに尋ねてください。
使用上のヒントとよくある落とし穴
- サンプラー列と検証列には、型と params の両方が必要です。 例:
sampler_type="category"とparams=dd.CategorySamplerParams(...)。 prompt、system_prompt、exprフィールドの Jinja2 テンプレート:{{ column_name }}で列を参照し、{{ column_name.field }}でネストされたフィールドを参照します。SamplerColumnConfig:sampler_paramsではなくparamsを受け取ります。- LLM 判定スコアへのアクセス:
LLMJudgeColumnConfigは、各スコア名が{reasoning: str, score: int}に対応するネストされた辞書を生成します。数値スコアを取得するには、.score属性を使用してください。たとえば、qualityという名前の判定列でcorrectnessという名前のスコアを使う場合は、{{ quality.correctness.score }}を使用します。{{ quality.correctness }}を使用すると、数値ではなく辞書全体が返されます。
トラブルシューティング
data-designerCLI が見つからない場合: この環境にはdata-designerがインストールされていないこと(Python >= 3.10 が必要)をユーザーに伝えてください。仮想環境を作成してインストールするか、自分で行うかを尋ねてください。ユーザーの許可なくインストールしないでください。- プレビュー中のネットワークエラー: サンドボックス環境によって、外部へのリクエストがブロックされている可能性があります。サンドボックスを無効にしてコマンドを再試行する許可をユーザーに求めてください。最後の手段として、サンドボックス外で再試行しても失敗する場合に限り、ユーザー自身でコマンドを実行するよう伝えてください。
出力テンプレート
現在のディレクトリに、DataDesignerConfigBuilder を返す load_config_builder() 関数を含む Python ファイルを作成します。ファイルには、内容を説明する名前(例: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 モデル、カスタムジェネレーター、シードデータセット、追加の依存関係は含めないでください。