File size: 3,413 Bytes
6176ea5 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | from dotenv import load_dotenv
import os
from huggingface_hub import login, HfApi
import sys
def setup_huggingface():
"""Configure l'authentification Hugging Face."""
try:
print("=== Début de la configuration Hugging Face ===")
print(f"Python version: {sys.version}")
print(f"Working directory: {os.getcwd()}")
# Charger les variables d'environnement depuis .env
load_dotenv(verbose=True, override=True)
print("Variables d'environnement chargées depuis .env")
# Récupérer le token depuis les variables d'environnement
print("\nRecherche du token...")
# Liste des noms possibles pour le token
token_names = ["HF_TOKEN", "HUGGINGFACE_API_TOKEN", "HUGGINGFACE_TOKEN"]
# Afficher toutes les variables d'environnement liées à Hugging Face
env_vars = {k: v if k != "HF_TOKEN" else f"{v[:4]}...{v[-4:]}" for k, v in os.environ.items()
if k.startswith("HF") or "HUGGING" in k}
print("\nVariables d'environnement disponibles :")
for k, v in env_vars.items():
print(f"- {k}: {v}")
# Essayer de récupérer le token
hf_token = None
for name in token_names:
value = os.environ.get(name)
if value:
print(f"\nToken trouvé dans {name}")
if len(value.strip()) > 0:
hf_token = value.strip()
break
else:
print(f"Token trouvé dans {name} mais vide")
else:
print(f"Token non trouvé dans {name}")
if not hf_token:
print("\nErreur : Token Hugging Face non trouvé ou vide dans les variables d'environnement")
return False
print(f"\nToken trouvé (longueur: {len(hf_token)})")
print(f"Début du token : {hf_token[:4]}...")
print(f"Fin du token : ...{hf_token[-4:]}")
# Configurer le token comme HF_TOKEN
os.environ["HF_TOKEN"] = hf_token
print("Token configuré comme HF_TOKEN")
# Se connecter à Hugging Face
print("\nTentative de connexion à Hugging Face...")
try:
login(token=hf_token, add_to_git_credential=True)
print("Login réussi")
except Exception as e:
print(f"Erreur lors du login : {str(e)}")
raise
# Vérifier la connexion
print("\nVérification de la connexion...")
try:
api = HfApi()
user_info = api.whoami()
print(f"Connecté avec succès en tant que : {user_info['name']}")
print(f"Type de compte : {user_info.get('account_type', 'inconnu')}")
print(f"Organisations : {', '.join(user_info.get('orgs', []))}")
except Exception as e:
print(f"Erreur lors de la vérification de la connexion : {str(e)}")
raise
print("\n=== Configuration Hugging Face terminée avec succès ===")
return True
except Exception as e:
print(f"\nErreur lors de la configuration Hugging Face : {str(e)}")
import traceback
print("\nTrace complète :")
print(traceback.format_exc())
return False
if __name__ == "__main__":
setup_huggingface()
|