用途
Hugging Face API Tool Builder 的目标是创建可复用的命令行脚本和实用工具,用于调用 Hugging Face API 以及 hf 命令行工具,并支持链式调用、管道和中间处理。它适合需要围绕 Hugging Face API 或 hf CLI 构建可组合、shell 友好接口的场景,例如自动化重复的 Hub 任务,而不是临时性的 API 调用。
主要能力
- 创建带 --help 参数的命令行脚本,用于说明输入与输出。
- 支持链式、管道和中间处理,便于组合多个工具。
- 可直接访问 Hugging Face API,也可使用 hf 命令行工具。
- 可从仓库直接访问模型卡和数据集卡。
- 提供参考示例脚本,涵盖认证、模型检索、模型卡解析、元数据富化等用途。
- 支持通过 HF_TOKEN 环境变量作为 Authorization 头,以获得更高速率限制和适当的数据访问授权。
使用方式
脚本规则要求:脚本必须接受 --help 命令行参数以描述输入和输出;非破坏性脚本在交付用户前应经过测试;优先使用 Shell 脚本,若复杂度或用户需求需要,可使用 Python 或 TSX。使用 HF_TOKEN 环境变量作为 Authorization 头,例如:curl -H "Authorization: Bearer ${HF_TOKEN}" https://huggingface.co/api/。在确定最终设计前,应先调查 API 结果的形态;在可组合性有优势时,利用管道和链式调用,优先选择简单方案。完成后分享使用示例。在存在疑问或需要澄清时,确认用户偏好。
高层 API 端点包括:/api/datasets、/api/models、/api/spaces、/api/collections、/api/daily_papers、/api/notifications、/api/settings、/api/whoami-v2、/api/trending、/oauth/userinfo。API 以 OpenAPI 标准记录在 https://huggingface.co/.well-known/openapi.json。注意:不要尝试直接读取该 OpenAPI 文件,因为它太大无法处理;应使用 jq 查询和提取相关部分。例如获取所有端点:curl -s "https://huggingface.co/.well-known/openapi.json" | jq '.paths | keys | sort'。查询模型搜索端点详情:curl -s "https://huggingface.co/.well-known/openapi.json" | jq '.paths["/api/models"]'。也可以查询端点以查看数据形态,此时应将结果限制在较小数量,便于处理且具有代表性。
hf 命令行工具提供对 Hugging Face 仓库内容和基础设施的进一步访问。其命令包括:auth(管理认证,如登录、登出)、cache(管理本地缓存目录)、download(从 Hub 下载文件)、endpoints(管理 Hugging Face Inference Endpoints)、env(打印环境信息)、jobs(在 Hub 上运行和管理 Jobs)、repo(管理 Hub 上的仓库)、repo-files(管理仓库中的文件)、upload(上传文件或文件夹到 Hub)、upload-large-folder(上传大文件夹到 Hub)、version(打印 hf 版本信息)。hf CLI 命令已取代现已弃用的 huggingface_hub CLI 命令。
参考示例脚本
以下路径相对于该技能目录。
参考示例:
- references/hf_model_papers_auth.sh — 自动使用 HF_TOKEN,并链式执行 trending → 模型元数据 → 模型卡解析,带降级回退;演示多步 API 使用以及针对受限/私有内容的认证卫生。
- references/find_models_by_paper.sh — 通过 --token 可选使用 HF_TOKEN,一致的认证搜索,以及当 arXiv 前缀搜索范围过窄时的重试路径;展示弹性查询策略和清晰的用户帮助。
- references/hf_model_card_frontmatter.sh — 使用 hf CLI 下载模型卡,提取 YAML frontmatter,并输出 NDJSON 摘要(license、pipeline tag、tags、gated prompt 标志),便于过滤。
基线示例(极简、最小逻辑、带 HF_TOKEN 头的原始 JSON 输出):
- references/baseline_hf_api.sh — bash
- references/baseline_hf_api.py — python
- references/baseline_hf_api.tsx — typescript 可执行文件
可组合实用工具(stdin → NDJSON):
- references/hf_enrich_models.sh — 从 stdin 读取模型 ID,按 ID 获取元数据,每行输出一个 JSON 对象,用于流式管道。
通过管道实现可组合性(shell 友好的 JSON 输出): <support-root>/references/baseline_hf_api.sh 25 | jq -r '.[].id' | references/hf_enrich_models.sh | jq -s 'sort_by(.downloads) | reverse | .[:10]'
<support-root>/references/baseline_hf_api.sh 50 | jq '[.[] | {id, downloads}] | sort_by(.downloads) | reverse | .[:10]'
printf '%s\n' openai/gpt-oss-120b meta-llama/Meta-Llama-3.1-8B | references/hf_model_card_frontmatter.sh | jq -s 'map({id, license, has_extra_gated_prompt})'
支持材料可用性
本目录副本包含以下内联指导,但不包含以下支持路径。它们是外部前置条件,而非捆绑文件:
<support-root>/references/hf_model_papers_auth.sh <support-root>/references/find_models_by_paper.sh <support-root>/references/hf_model_card_frontmatter.sh <support-root>/references/baseline_hf_api.sh <support-root>/references/baseline_hf_api.py <support-root>/references/baseline_hf_api.tsx <support-root>/references/hf_enrich_models.sh
在使用依赖这些路径的步骤之前,请索取原始支持材料或已有安装;本目录未指明这些材料的已验证下载来源。请相对于该安装解析每个路径,检查其内容,并验证任何适用的许可证和执行前置条件。在所需文件存在之前,不要运行命令或声称已遵循引用的过程。不要伪造缺失的脚本,也不要将同名的无关文件视为等价。此处完整记录的独立步骤可在用户授权范围内进行;任何依赖步骤应报告为不可用。
适用场景
- 需要围绕 Hugging Face API 或 hf 命令行工具构建可复用 CLI 脚本。
- 需要支持链式、管道和中间处理的 shell 友好实用工具。
- 自动化重复的 Hub 任务,需要可组合接口而非临时 API 调用。
限制
仅当任务明确匹配上述范围时使用此技能。不要将输出视为环境特定验证、测试或专家审查的替代品。如果缺少必需输入、权限、安全边界或成功标准,应停止并请求澄清。