用途
本技能用于在 Hugging Face Hub 上创建、配置和管理数据集,并提供基于 SQL 的数据查询、转换与导出能力。它被设计为对现有 Hugging Face MCP 服务器的补充:MCP 服务器负责数据集的发现、搜索和元数据检索,而本技能负责数据集的创建、内容编辑、SQL 查询、数据转换和结构化数据格式化。
适用时机:需要创建、配置或更新 Hugging Face Hub 上的数据集;希望对 Hub 数据集进行 SQL 风格的查询、转换或导出;需要直接管理数据集内容与元数据,而不仅仅是搜索已有数据集。
主要能力
-
数据集生命周期管理:初始化新的数据集仓库并建立正确结构;存储包含系统提示词和元数据的详细配置;以流式方式高效追加行,无需下载整个数据集。
-
基于 SQL 的数据集查询(新增):通过 scripts/sql_manager.py 使用 DuckDB SQL 查询任意 Hugging Face 数据集,包括直接查询(使用 hf:// 协议)、模式发现(描述结构与列类型)、数据采样(随机抽样探索)、聚合(计数、直方图、唯一值分析)、转换(过滤、连接、重塑)以及导出与推送(保存到本地或推送到新的 Hub 仓库)。
-
多格式数据集支持:通过模板系统支持多种数据集类型,包括聊天/对话(聊天模板、多轮对话、工具使用示例)、文本分类(情感分析、意图识别、主题分类)、问答(阅读理解、事实问答、知识库)、文本补全(语言建模、代码补全、创意写作)、表格数据(用于回归/分类任务的结构化数据)以及自定义格式(灵活的模式定义)。
-
质量保障:上传时进行 JSON 校验以确保数据完整性;批处理以高效处理大型数据集;对上传失败和冲突进行优雅的错误恢复。
使用方式
技能包含两个使用 PEP 723 内联依赖管理的 Python 脚本,所有路径相对于包含 SKILL.md 的目录,运行方式为 uv run scripts/script_name.py [arguments]:
- scripts/dataset_manager.py:数据集创建与管理
- scripts/sql_manager.py:基于 SQL 的数据集查询与转换
前置条件:已安装 uv 包管理器;必须设置 HF_TOKEN 环境变量,且令牌需具备写权限。
SQL 查询示例:
# 查询数据集
uv run scripts/sql_manager.py query \
--dataset "cais/mmlu" \
--sql "SELECT * FROM data WHERE subject='nutrition' LIMIT 10"
# 获取数据集模式
uv run scripts/sql_manager.py describe --dataset "cais/mmlu"
# 随机采样
uv run scripts/sql_manager.py sample --dataset "cais/mmlu" --n 5
# 带过滤条件的计数
uv run scripts/sql_manager.py count --dataset "cais/mmlu" --where "subject='nutrition'"
SQL 语法中统一使用 data 作为表名,它会被替换为实际的 hf:// 路径。支持基本查询、过滤、聚合、列选择与转换、正则匹配和字符串函数等。
数据集创建推荐工作流:先用 HF MCP 工具发现已有数据集,再用本技能初始化仓库(init)、配置系统提示词(config)、快速设置模板(quick_setup)以及添加数据(add_rows)。
模板数据结构包括:聊天模板(messages、scenario、complexity)、分类模板(text、label、confidence、metadata)、问答模板(question、answer、context、answer_type、difficulty)、补全模板(prompt、completion、domain、style)和表格模板(columns、data)。
常用命令:list_templates 列出模板;quick_setup 快速设置;init 初始化仓库;config 配置系统提示词;add_rows 校验并添加数据;stats 查看数据集统计。
错误处理:仓库已存在时会提示并继续配置;无效 JSON 会给出清晰的解析错误信息;网络问题会自动重试瞬时故障;操作开始前会校验令牌权限。
适用场景
- 从已有数据集创建训练子集(如按主题筛选后推送为新仓库)
- 转换和重塑数据(如将 MMLU 转为问答格式并提取正确答案)
- 合并多个数据集拆分(导出多个 split 后合并)
- 质量过滤(如按上下文和问题长度筛选高质量样本)
- 创建自定义训练数据集(查询源数据、经自有流程处理后推送)
限制
仅当任务明确符合上述范围时使用本技能。不应将输出视为环境特定验证、测试或专家评审的替代。如果缺少必需的输入、权限、安全边界或成功标准,应停止并请求澄清。