💻

data-designer

👤 肖俊偉 ✓ 已認證 📦 v1.0.0 ⭐ 4.5 ⬇️ 133 下載
💻 開發程式設計 免費

📖 技能介紹


name: data-designer description: 在使用者想要建立資料集、生成合成資料或構建資料生成流水線時使用。 argument-hint: [describe the dataset you want to generate] license: Apache-2.0 metadata: owner: DataDesigner


開始之前

不要先探索工作空間。工作流的"學習"步驟會提供你需要的一切。

目標

使用 Data Designer 庫構建一個與以下描述匹配的合成數據集:

$ARGUMENTS

發現更多技能外掛,請訪問7w4.net。

工作流

如果使用者暗示他們不想回答問題——例如,他們說"你來決定"、"你做主"、"做合理假設"、"直接構建"、"給我驚喜"等——則使用自動導航模式。否則,使用互動式模式(預設)。

讀取與所選模式匹配的工作流檔案,然後按照它操作:

  • 互動式 → 讀取 workflows/interactive.md
  • 自動導航 → 讀取 workflows/autopilot.md

規則

  • 預設保留輸出中的所有列。刪除列的唯一例外是:(1)使用者明確要求,或(2)該列是僅用於派生其他列的輔助列(例如,用於提取姓名、城市等的取樣 person 物件)。如有疑問,保留該列。
  • 不要建議或詢問種子資料集。僅在使用者明確提供種子資料或要求從現有記錄構建時使用。使用種子時,閱讀 references/seed-datasets.md
  • 當資料集需要人員資料(姓名、人口統計資訊、地址)時,閱讀 references/person-sampling.md
  • 如果已存在與資料集描述匹配的資料集指令碼,詢問使用者是編輯它還是建立新的。

使用技巧和常見陷阱

  • 取樣器和驗證列需要同時指定 type 和 params。 例如,sampler_type="category" 配合 params=dd.CategorySamplerParams(...)
  • promptsystem_promptexpr 欄位中的 Jinja2 模板: 使用 {{ column_name }} 引用列,使用 {{ column_name.field }} 引用巢狀欄位。
  • SamplerColumnConfig 接受 params,而非 sampler_params
  • LLM 評判器評分訪問: LLMJudgeColumnConfig 生成一個巢狀字典,其中每個評分名稱對映到 {reasoning: str, score: int}。要獲取數值評分,使用 .score 屬性。例如,對於一個名為 quality 的評判器列,其評分名為 correctness,使用 {{ quality.correctness.score }}。使用 {{ quality.correctness }} 會返回完整字典,而非數值評分。

故障排除

  • data-designer CLI 未找到: 告知使用者 data-designer 未在此環境中安裝(需要 Python >= 3.10)。詢問是否希望你建立虛擬環境並安裝,或者他們自行安裝。未經使用者許可不要安裝任何內容。
  • 預覽期間網路錯誤: 沙箱環境可能正在阻止出站請求。請求使用者允許在停用沙箱的情況下重試命令。作為最後手段,如果在沙箱外重試也失敗,讓使用者自行執行命令。

輸出模板

在當前目錄寫入一個 Python 檔案,其中包含返回 DataDesignerConfigBuilderload_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


# 當輸出需要符合特定模式時使用 Pydantic 模型
class MyStructuredOutput(BaseModel):
    field_one: str = Field(description="...")
    field_two: int = Field(description="...")


# 當內建列型別不足時使用自定義生成器
@dd.custom_column_generator(
    required_columns=["col_a"],
    side_effect_columns=["extra_col"],
)
def generator_function(row: dict) -> dict:
    # 在此新增依賴於 "col_a" 的自定義邏輯,並原地更新 row
    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()

    # 種子資料集(僅在使用者明確提到種子資料集路徑時使用)
    # config_builder.with_seed_dataset(dd.LocalFileSeedSource(path="path/to/seed.parquet"))

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

    return config_builder

僅在任務需要時才包含 Pydantic 模型、自定義生成器、種子資料集和額外依賴。

🤖 AI 評測

這個 Skill 質量較好,能有效幫助生成合成資料集。它在資料生成方面做得不錯,生成的指令碼正確率高,使用起來也比較安全。主要優點是能根據需求自動設計資料方案,操作流程清晰。不足之處是文件不夠完善,缺少一些使用說明,另外在某些情況下響應效率還有最佳化空間。總體來說值得使用,但入手時可能需要多花點時間熟悉操作方式。

📊 多維度評分

適應性4.4
規範性4.4
有效性4.7
可靠性4.4
可信度4.5

📁 包含檔案 (11 個)

📄 BENCHMARK.md 3.7 KB
📄 README.md 980 B
📄 SKILL.md 4.4 KB
📄 evals/evals.json 1.4 KB
📄 references/person-sampling.md 2.3 KB
📄 references/preview-review.md 1.8 KB
📄 references/seed-datasets.md 1.1 KB
📄 scripts/get_person_object_schema.py 1.7 KB
📄 skill-card.md 3.6 KB
📄 workflows/autopilot.md 2.6 KB
📄 workflows/interactive.md 3.2 KB