Hugging Face 数据集管理技能
在 Hugging Face Hub 上创建、配置、流式写入数据集,并用 DuckDB SQL 直接查询、转换、再发布任意公开数据集。
技能通过HF_TOKEN写入外部Hugging Face Hub、创建仓库并推送数据,属外部副作用;token经f-string直接拼入CREATE SECRET语句,SQL辅助函数直接拼接列名/where子句存在注入面;push_to_hub默认private、init可--private是好的最小化实践,但无操作前确认、无回滚说明。扣分点:确认与恢复机制缺失、凭证拼接处理。
两个脚本结构自洽、内嵌uv依赖元数据、错误消息较清晰(模板缺失提示可用模板、JSON解析错误提示等);但sql_manager.py源文件在证据中被截断(raw/transform CLI分支与--push-to处理未完整可见),文档示例中histogram默认bins与CLI不一致、_build_hf_path默认config='default'与实际数据集布局可能不符;无测试、无执行证据,静态上限10,扣分:关键路径未复现、潜在路径拼接不匹配。
受众与场景明确(数据集创建、SQL查询/转换),与HF MCP server职责边界有清晰划分,模板系统支持多格式;但仅英文,核心功能完全依赖huggingface.co与hf://协议,中国大陆网络可达性存疑,无降级路径。扣分:环境适配与中文支持、无边界/不可用场景声明不足。
SKILL.md分层良好(概览→依赖→快速开始→API参考→组合示例),声明版本2.1.0,脚本内嵌依赖清单,templates/目录提供机器可读模板;但脚本版本号(2.0.0/1.0.0)与SKILL.md(2.1.0)不一致,README生成文案自称'Claude Dataset Skill'溯源混乱,无changelog与明确维护者/更新路径。扣分:版本不一致、归因文案矛盾、治理信息缺失。
文档与脚本一致性较高,示例可直接复制使用,覆盖查询、导出、推送等核心任务,边际价值明确(将DuckDB hf://访问封装为一行命令);但无任何执行或输出验证证据,输出格式正确性未验证,静态上限7,扣分:无代表性输出验证、比较收益仅凭声明。
有可审计的一手材料(完整源码、模板JSON、示例数据),但无测试套件、无CI工作流证据、无第三方执行佐证,docstring示例不可独立复现。静态上限5,扣分:证据类型单一、复现覆盖薄弱。
- 使用前需自备具写权限的HF_TOKEN;token以字符串拼接方式注入DuckDB SECRET,建议检查环境与凭证安全。
- SQL辅助函数(histogram/unique/count/transform)将列名与where子句直接拼入SQL,仅应使用受信任输入,避免注入。
- 技能会创建并推送外部Hub仓库(有外部副作用),推送前请确认目标repo_id;默认private但仍需人工复核。
- 核心功能依赖huggingface.co与hf://协议,中国大陆网络环境下可能不可用,无降级方案。
- 未执行验证:文档示例与脚本(sql_manager.py文件截断、路径默认config='default')可能存在不一致,首次使用请先用sample/describe小规模验证。
这个 Skill 能做什么,适合哪些场景?
这是一个面向 Hugging Face Hub 的数据集管理技能,版本 2.1.0。它包含两个脚本:dataset_manager.py 负责初始化数据集仓库、写入系统提示词配置、按模板(chat、classification、qa、completion、tabular)添加行数据;sql_manager.py 通过 DuckDB 的 hf:// 协议直接对任意公开(或私有)数据集执行 SQL 查询、模式探查、抽样、聚合、转换,并将结果导出到本地(Parquet/JSONL)或推送到新的 Hub 仓库。技能设计为与 HF MCP 服务器互补:MCP 负责发现和检索,本技能负责创建、编辑和查询。依赖 huggingface_hub、duckdb、datasets 三个 Python 库,并要求设置具备写权限的 HF_TOKEN。
读取:通过 hf:// 协议访问任意 Hugging Face 数据集的 Parquet 文件。运行:dataset_manager.py 提供 init、config、quick_setup、add_rows、stats、list_templates 命令;sql_manager.py 提供 query、describe、sample、count、unique、histogram、transform、export、raw 命令,SQL 中用 data 作为表名并替换为实际 hf:// 路径。产出:新建/更新的 Hub 数据集仓库、本地 Parquet 或 JSONL 导出文件、数据集统计信息。写入 Hub 时需要 HF_TOKEN 环境变量且具备写权限。
- 数据工程师想从 cais/mmlu 等公开数据集中按 subject 筛选出医学子集并推送到自己的私有仓库,用于微调。
- 做训练数据准备的从业者需要用模板(qa、chat、classification 等)从零构建结构化训练集,带系统提示词和 JSON 校验。
- 分析师想用 SQL 快速了解一个陌生数据集的模式、行数、列值分布,而无需下载整个数据集。
- 团队需要把多个数据集按 SQL join 合并,或将长问题子集(如 duorc)导出为本地 Parquet/JSONL 供下游管线使用。
- 研究者想将 MMLU 转换成 QA 格式(提取 choices[answer] 作为正确答案)并发布为新数据集。
这个 Skill 有哪些优点和局限?
- SQL 查询走 DuckDB 的 hf:// 协议,无需下载整个数据集即可过滤、聚合、抽样。
- 查询结果可一键推送到新 Hub 仓库(支持 --private),也可导出为 Parquet/JSONL。
- 提供五种模板(chat/classification/qa/completion/tabular)并自带 JSON 校验和错误恢复。
- 支持指定 config、split(含全部 split)和跨数据集的 raw SQL join。
- 写入操作强制要求具备 Write 权限的 HF_TOKEN,对只读使用场景多一道门槛。
- 来源未提供任何测试套件、CI 或测试覆盖的证据。
- 文档未说明该技能在具体 Agent 平台上的安装/触发方式。
- SQL 中必须用 data 作为表名,复杂查询需改用 raw 模式手写完整 hf:// 路径,有一定学习成本。
- 依赖 DuckDB 对 Parquet 的自动转换 revision(@~parquet),极端自定义格式的数据集可能不在覆盖范围内(来源未明确说明边界)。
如何安装这个 Skill?
来源未说明该技能文件夹应放在哪个目录(如 ~/.claude/skills/),只描述了脚本依赖。可验证的安装步骤:1) 安装依赖:uv add huggingface_hub duckdb datasets;2) 设置 HF_TOKEN 环境变量(需 Write 权限的 token);3) 激活虚拟环境:source .venv/bin/activate;4) 脚本位于技能目录下的 scripts/ 子目录(dataset_manager.py 与 sql_manager.py)。具体的技能目录放置方式未在来源中记录。
如何使用这个 Skill?
激活环境后直接用命令行调用脚本,例如:python scripts/sql_manager.py query --dataset "cais/mmlu" --sql "SELECT * FROM data WHERE subject='nutrition' LIMIT 10";python scripts/sql_manager.py describe --dataset "cais/mmlu";python scripts/dataset_manager.py init --repo_id "your-username/dataset-name";python scripts/dataset_manager.py add_rows --repo_id "..." --template qa --rows_ "$(cat your_qa_data.)"。也可在 Python 中 import:from sql_manager import HFDatasetSQL; sql.query("cais/mmlu", "SELECT * FROM data LIMIT 10")。推荐流程是先用 HF MCP 服务器做数据集发现,再用本技能做创建和查询。
这个 Skill 与同类方案有什么区别?
SKILL.md 明确将其与 HF MCP 服务器做了分工:HF MCP 服务器负责数据集发现、搜索和元数据检索;本技能负责数据集创建、内容编辑、SQL 查询和数据转换。两者设计为配合使用。