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()