from pathlib import Path from dotenv import load_dotenv import os ### Configuration des chemins de données try: PROJECT_ROOT = Path(__file__).resolve().parents[1] except NameError: PROJECT_ROOT = Path.cwd() DATA_RAW_DIR = os.path.join(PROJECT_ROOT, 'data', 'raw') DATA_PROCESSED_DIR = os.path.join(PROJECT_ROOT, 'data', 'processed') ### Configuration des paramètres de modélisation RANDOM_STATE = 42 TEST_SIZE = 0.2 STRATIFY = "item" ### Configuration de MLflow DB_PATH = (PROJECT_ROOT / "mlflow.db").resolve() ARTIFACT_ROOT = (PROJECT_ROOT / "artifacts").resolve() ARTIFACT_ROOT_FINAL_MODEL = (PROJECT_ROOT / "artifacts" / "final_model").resolve() EXPERIMENT_BENCHMARK_MODELS_NAME = "benchmark_models" EXPERIMENT_BENCHMARK_OPTIMIZATION_MODELS_NAME_NO_AERA = "benchmark_optimizations_no_aera" EXPERIMENT_BENCHMARK_OPTIMIZATION_MODELS_NAME = "benchmark_optimizations" EXPERIMENT_OPTUNA_RF= "optuna_rf" EXPERIMENT_OPTUNA_CB = "optuna_catboost" EXPERIMENT_COMPARISON_FINAL_MODEL = "comparison_final_model" EXPERIMENT_FINAL_MODEL="final_model_registry" FINAL_MODEL_NAME="random_forest_final" REGISTERED_MODEL_NAME="agritech_yield_predictor_rf" MLFLOW_TRACKING_URI = f"sqlite:///{PROJECT_ROOT / 'mlflow.db'}" MODEL_SOURCE = os.getenv("MODEL_SOURCE", "local") MODEL_PATH = os.getenv("MODEL_PATH", "models/final_model") FINAL_MODEL_PATH = PROJECT_ROOT / MODEL_PATH HF_MODEL_REPO = os.getenv("HF_MODEL_REPO", "donizetti-yoann/agritech-final-model") HF_TOKEN = os.getenv("HF_TOKEN") load_dotenv() POSTGRES_HOST = os.getenv("POSTGRES_HOST") POSTGRES_PORT = os.getenv("POSTGRES_PORT", "5432") POSTGRES_DB = os.getenv("POSTGRES_DB") POSTGRES_USER = os.getenv("POSTGRES_USER") POSTGRES_PASSWORD = os.getenv("POSTGRES_PASSWORD") POSTGRES_SSLMODE = os.getenv("POSTGRES_SSLMODE", "require")