| """ | |
| Module de chargement du modèle ML. | |
| Charge le fichier .pkl du modèle Random Forest. | |
| """ | |
| import os | |
| import joblib | |
| def charger_modele(): | |
| """ | |
| Charge le modèle de prédiction du churn depuis un fichier .pkl. | |
| Returns: | |
| Le modèle RandomForestClassifier entraîné | |
| """ | |
| # Chemin vers le modèle (depuis la racine du projet) | |
| chemin_modele = os.path.join( | |
| os.path.dirname(__file__), # src/utils/ | |
| "..", # src/ | |
| "models", # src/models/ | |
| "rf_classifier_model.pkl", # src/models/rf_classifier_model.pkl | |
| ) | |
| print(f"Chargement du modèle depuis : {chemin_modele}") | |
| modele = joblib.load(chemin_modele) | |
| print("Modèle chargé avec succès!") | |
| return modele | |
| # Variable globale pour stocker le modèle en mémoire au démarrage | |
| modele = None | |
| def get_modele(): | |
| """ | |
| Fonction pour obtenir le modèle (avec caching). | |
| Si le modèle est déjà chargé, il renvoie le même (pas de rechargement). | |
| """ | |
| global modele | |
| if modele is None: | |
| modele = charger_modele() | |
| return modele | |