demo / backend /tests /test_hf_upload.py
tfrere's picture
first commit
970eef1
raw
history blame
2.71 kB
"""
Script de test pour vérifier l'upload vers Hugging Face Hub
Ce script crée un dataset simple et tente de l'uploader vers le Hub
en utilisant le token et l'organisation définis dans les variables d'environnement.
"""
import os
import sys
import datasets
from huggingface_hub import HfApi, login
from datasets import Dataset
from dotenv import load_dotenv
from pathlib import Path
def test_hf_upload():
# Charger les variables d'environnement depuis le fichier .env
dotenv_path = Path('.env')
load_dotenv(dotenv_path=dotenv_path)
# Récupérer le token et l'organisation des variables d'environnement
hf_token = os.getenv("HF_TOKEN")
org_name = os.getenv("HF_ORGANIZATION", "yourbench")
if not hf_token:
print("Erreur: La variable HF_TOKEN n'est pas définie dans le fichier .env.")
sys.exit(1)
dataset_name = "test_dataset_upload"
repo_id = f"{org_name}/{dataset_name}"
print(f"Tentative d'upload vers {repo_id} avec le token {hf_token[:5]}... (token tronqué pour la sécurité)")
try:
# Se connecter à l'API Hugging Face
print("Connexion à l'API Hugging Face...")
login(token=hf_token)
api = HfApi(token=hf_token)
# Créer un dataset simple
print("Création d'un dataset de test...")
data = {
"text": ["Ceci est un test", "Un autre exemple", "Troisième exemple"],
"label": [1, 0, 1]
}
dataset = Dataset.from_dict(data)
# Vérifier si le repo existe déjà et le supprimer si nécessaire
try:
api.delete_repo(repo_id=repo_id, repo_type="dataset")
print(f"Repo existant {repo_id} supprimé.")
except Exception:
print(f"Le repo {repo_id} n'existait pas encore.")
# Uploader le dataset
print(f"Upload du dataset vers {repo_id}...")
dataset.push_to_hub(
repo_id=repo_id,
token=hf_token,
private=True,
commit_message="Test d'upload de dataset"
)
print(f"Succès! Dataset uploadé vers https://huggingface.co/datasets/{repo_id}")
return True
except Exception as e:
print(f"Erreur lors de l'upload: {str(e)}")
print("\nTraceback complet:")
import traceback
traceback.print_exc()
return False
if __name__ == "__main__":
print("=== Test d'upload vers Hugging Face Hub ===")
success = test_hf_upload()
if success:
print("\n✅ Le test a réussi! L'upload fonctionne correctement.")
else:
print("\n❌ Le test a échoué. Vérifiez les erreurs ci-dessus.")