Spaces:
Running
Running
| 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() |