huggingface-tool-builder

Utilisez cette compétence lorsque l'utilisateur souhaite construire des outils/scripts ou accomplir une tâche où l'utilisation de données de l'API Hugging Face serait utile. Ceci est particulièrement utile lors du chaînage ou de la combinaison d'appels API ou si la tâche sera répétée/automatisée. Cette compétence 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

Outil de création d'API Hugging Face

Votre objectif est maintenant de créer des scripts et utilitaires de ligne de commande réutilisables pour utiliser l'API Hugging Face, permettant le chaînage, le piping et le traitement intermédiaire si utile. Vous pouvez accéder directement à l'API, ainsi qu'utiliser l'outil de ligne de commande hf. Les cartes Model et Dataset peuvent être accédées à partir de référentiels directement.

Règles des Scripts

Assurez-vous de respecter 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 taux plus élevées et une autorisation appropriée pour l'accès aux données.
  • Enquêtez sur la forme des résultats de l'API avant de vous engager dans une conception finale ; utilisez le piping et le chaînage si la composabilité serait un avantage - préférez les solutions simples si possible.
  • Partagez les exemples d'utilisation une fois terminé.

Assurez-vous de confirmer les préférences de l'Utilisateur lorsqu'il y a des questions ou des clarifications nécessaires.

Exemples de Scripts

Les chemins ci-dessous sont relatifs au répertoire de cette compétence.

Exemples de référence :

  • references/hf_model_papers_auth.sh — utilise HF_TOKEN automatiquement et chaîne tendances → métadonnées du modèle → analyse de carte de modèle avec retours ; il démontre l'utilisation multi-étape de l'API plus l'hygiène d'authentification pour les contenus verrouillés/privés.
  • references/find_models_by_paper.sh — utilisation optionnelle de HF_TOKEN via --token, recherche authentifiée cohérente, et un chemin de réessai quand les recherches préfixées par arXiv sont trop étroites ; il montre la stratégie de requête résiliente et l'aide claire destinée à l'utilisateur.
  • references/hf_model_card_frontmatter.sh — utilise l'interface de ligne de commande hf pour télécharger les cartes de modèle, extrait le préambule YAML, et émet des résumés NDJSON (licence, balise de pipeline, balises, drapeau de demande verrouillée) 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 à partir de 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 conviviale pour 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 de Terminaison de Haut Niveau

Les points de terminaison API principaux suivants sont disponibles à https://huggingface.co

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

Accéder à l'API

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

IMPORTANT : NE TENTEZ 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 de Terminaison

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

Détails du Point de Terminaison de Recherche de Modèles

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

Vous pouvez également interroger les points de terminaison pour voir la forme des données. Lors de cela, limitez les résultats à des chiffres faibles pour les rendre faciles à traiter, mais représentatifs.

Utiliser 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 référentiel 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 hf CLI a remplacé la commande huggingface-cli maintenant obsolète.