crowdroute / app /models /loader.py
UAVDETECTION's picture
Initial CrowdRoute API deployment
90776a1
Raw
History Blame Contribute Delete
1.1 kB
import joblib
import os
BACKEND_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
MODEL_PATH = os.path.join(BACKEND_DIR, "ml", "saved_models", "crowd_model.joblib")
COLUMNS_PATH = os.path.join(BACKEND_DIR, "ml", "saved_models", "feature_columns.joblib")
print(f"πŸ“‚ Looking for model at: {MODEL_PATH}")
class ModelLoader:
_model = None
_feature_columns = None
@classmethod
def get_model(cls):
if cls._model is None:
print("πŸ”„ Loading ML model...")
if not os.path.exists(MODEL_PATH):
raise FileNotFoundError(
f"❌ Model not found at {MODEL_PATH}\n"
f"πŸ‘‰ Run: cd backend/ml && python create_dummy_model.py"
)
cls._model = joblib.load(MODEL_PATH)
print("βœ… Model loaded successfully!")
return cls._model
@classmethod
def get_feature_columns(cls):
if cls._feature_columns is None:
cls._feature_columns = joblib.load(COLUMNS_PATH)
return cls._feature_columns