SignalMod / src /service /model_catalog.py
Mirae Kang
feat: implement new models and improve UI, #23
46cc63a
raw
history blame
986 Bytes
"""Load inference model catalog from configs/model_catalog.yaml."""
from __future__ import annotations
from pathlib import Path
from typing import Any
import yaml
PROJECT_ROOT = Path(__file__).resolve().parents[2]
CATALOG_PATH = PROJECT_ROOT / "configs" / "model_catalog.yaml"
_DEFAULT_CATALOG: dict[str, dict[str, Any]] = {
"Meta-Feature Stacking (Production)": {
"type": "meta_stack",
"description": "Hybrid meta-feature stacking (Notebook 14).",
"accuracy": "F1 0.805",
"production_default": True,
"model_path": "models/production_final/meta_stack_final.joblib",
"requires": "uv sync --extra hf",
},
}
def load_model_catalog() -> dict[str, dict[str, Any]]:
if not CATALOG_PATH.exists():
return dict(_DEFAULT_CATALOG)
with CATALOG_PATH.open(encoding="utf-8") as f:
data = yaml.safe_load(f) or {}
if not isinstance(data, dict) or not data:
return dict(_DEFAULT_CATALOG)
return data