huggingface-tool-builder

Utilisez cette skill lorsque l'utilisateur souhaite créer des outils/scripts ou accomplir une tâche pour laquelle l'utilisation de données provenant de l'API Hugging Face serait utile. C'est particulièrement pertinent lorsqu'il s'agit d'enchaîner ou de combiner des appels API, ou lorsque la tâche doit être répétée/automatisée. Cette skill crée un script réutilisable pour récupérer, enrichir ou traiter des données.

npx skills add https://github.com/huggingface/skills --skill huggingface-tool-builder

Générateur d'outil API Hugging Face

Votre objectif est désormais de créer des scripts en ligne de commande réutilisables et des utilitaires pour utiliser l'API Hugging Face, permettant l'enchaînement, le piping et le traitement intermédiaire où utile. Vous pouvez accéder à l'API directement, ainsi qu'utiliser l'outil en ligne de commande hf. Les cartes de modèles et de datasets peuvent être consultées directement depuis les repositories.

Règles de script

Assurez-vous de suivre ces règles :

  • Les scripts doivent accepter un argument de ligne de commande --help pour décrire leurs entrées et sorties
  • Les scripts non-destructifs doivent être testés avant remise à l'utilisateur
  • Les scripts shell sont préférés, mais utilisez Python ou TSX si la complexité ou les besoins de l'utilisateur l'exigent.
  • IMPORTANT : Utilisez la variable d'environnement HF_TOKEN comme en-tête Authorization. Par exemple : curl -H "Authorization: Bearer ${HF_TOKEN}" https://huggingface.co/api/. Cela fournit des limites de débit plus élevées et une autorisation appropriée pour l'accès aux données.
  • Investiguer la structure des résultats API avant de s'engager dans une conception finale ; faites usage du piping et de l'enchaînement où la composabilité serait un avantage - préférez les solutions simples quand possible.
  • Partagez des exemples d'utilisation une fois terminé.

Assurez-vous de confirmer les préférences de l'utilisateur en cas de questions ou de clarifications nécessaires.

Scripts exemple

Les chemins ci-dessous sont relatifs à ce répertoire de skill.

Exemples de référence :

  • references/hf_model_papers_auth.sh — utilise HF_TOKEN automatiquement et enchaîne tendances → métadonnées de modèle → parsing de carte de modèle avec fallbacks ; cela démontre l'utilisation multi-étapes de l'API et la conformité d'authentification pour le contenu protégé/privé.
  • references/find_models_by_paper.sh — utilisation optionnelle de HF_TOKEN via --token, recherche authentifiée cohérente, et un chemin de retry quand les recherches préfixées par arXiv sont trop étroites ; cela montre une stratégie de requête résiliente et une aide claire tournée vers l'utilisateur.
  • references/hf_model_card_frontmatter.sh — utilise la CLI hf pour télécharger les cartes de modèles, extrait le frontmatter YAML, et émet des résumés NDJSON (licence, pipeline tag, tags, flag gated prompt) pour un filtrage facile.

Exemples de base (ultra-simples, logique minimale, sortie JSON brute avec en-tête HF_TOKEN) :

  • references/baseline_hf_api.sh — bash
  • references/baseline_hf_api.py — python
  • references/baseline_hf_api.tsx — typescript exécutable

Utilitaire composable (stdin → NDJSON) :

  • references/hf_enrich_models.sh — lit les ID de modèles depuis stdin, récupère les métadonnées par ID, émet un objet JSON par ligne pour les pipelines de streaming.

Composabilité via piping (sortie JSON adaptée au shell) :

  • references/baseline_hf_api.sh 25 | jq -r '.[].id' | references/hf_enrich_models.sh | jq -s 'sort_by(.downloads) | reverse | .[:10]'
  • 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})'

Points d'accès haut niveau

Les principaux points d'accès API disponibles à https://huggingface.co sont :

/api/datasets
/api/models
/api/spaces
/api/collections
/api/daily_papers
/api/notifications
/api/settings
/api/whoami-v2
/api/trending
/oauth/userinfo

Accès à l'API

L'API est documentée selon la norme OpenAPI à https://huggingface.co/.well-known/openapi.json.

IMPORTANT : N'ESSAYEZ PAS de lire https://huggingface.co/.well-known/openapi.json directement car c'est trop volumineux pour être traité.

IMPORTANT Utilisez jq pour interroger et extraire les parties pertinentes. Par exemple,

Commande pour obtenir les 160 points d'accès

curl -s "https://huggingface.co/.well-known/openapi.json" | jq '.paths | keys | sort'

Détails du point d'accès de recherche de modèles

curl -s "https://huggingface.co/.well-known/openapi.json" | jq '.paths["/api/models"]'

Vous pouvez aussi interroger les points d'accès pour voir la structure des données. Lors de cette interrogation, limitez les résultats à de petits nombres pour qu'ils soient faciles à traiter, tout en restant représentatifs.

Utilisation de l'outil de ligne de commande HF

L'outil de ligne de commande hf vous donne un accès supplémentaire au contenu et à l'infrastructure du repository Hugging Face.

❯ hf --help
Usage: hf [OPTIONS] COMMAND [ARGS]...

  Hugging Face Hub CLI

Options:
  --help                Show this message and exit.

Commands:
  auth                 Manage authentication (login, logout, etc.).
  buckets              Commands to interact with buckets.
  cache                Manage local cache directory.
  collections          Interact with collections on the Hub.
  datasets             Interact with datasets on the Hub.
  discussions          Manage discussions and pull requests on the Hub.
  download             Download files from the Hub.
  endpoints            Manage Hugging Face Inference Endpoints.
  env                  Print information about the environment.
  extensions           Manage hf CLI extensions.
  jobs                 Run and manage Jobs on the Hub.
  models               Interact with models on the Hub.
  papers               Interact with papers on the Hub.
  repos                Manage repos on the Hub.
  skills               Manage skills for AI assistants.
  spaces               Interact with spaces on the Hub.
  sync                 Sync files between local directory and a bucket.
  upload               Upload a file or a folder to the Hub.
  upload-large-folder  Upload a large folder to the Hub.
  version              Print information about the hf version.
  webhooks             Manage webhooks on the Hub.

La commande CLI hf a remplacé la commande désormais dépréciée huggingface-cli.

Skills similaires