agritech-api / src /config.py
github-actions
Deploy API from GitHub Actions
42dfbed
Raw
History Blame Contribute Delete
1.79 kB
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")