Spotix-API / backend /app /ai /model_loader.py
Anish-530
Fixed visual problem of the vanishing heatmap. Also fixed redundant logs
09cc5a2
import logging
from pathlib import Path
from app.core.config import settings
logger = logging.getLogger(__name__)
class ModelLoader:
def __init__(self):
self.current_version = "meta_model.pkl"
# Try settings.MODEL_DIR first
self.model_dir = Path(settings.MODEL_DIR)
# If running from root directory (e.g. HF Spaces), "../models/" goes out of bounds.
# Fallback to looking relative to this file to robustly find the 'models' directory.
if not self.model_dir.exists() or not list(self.model_dir.glob("*.pkl")):
repo_root = Path(__file__).resolve().parent.parent.parent.parent
fallback_dir = repo_root / "models"
if fallback_dir.exists():
self.model_dir = fallback_dir
self.model_dir.mkdir(parents=True, exist_ok=True)
def get_latest_model_version(self) -> str:
try:
files = [f.name for f in self.model_dir.iterdir() if f.is_file()]
if not files:
logger.warning("No model files found in directory. Using generated meta_model.")
return self.current_version
latest_file = sorted(files)[-1]
self.current_version = latest_file
return self.current_version
except Exception as e:
logger.error(f"Failed to scan directory: {e}")
return "unknown_error"
model_loader = ModelLoader()