| from __future__ import annotations |
|
|
| from abc import ABC, abstractmethod |
| from typing import Any |
|
|
|
|
| class BaseForecastModel(ABC): |
| @abstractmethod |
| def load_model(self) -> None: |
| """Load and initialize model artifacts.""" |
|
|
| @abstractmethod |
| def predict(self, context_data: Any, prediction_length: int, **kwargs: Any) -> dict[str, Any]: |
| """Generate forecasts and return standardized outputs.""" |
|
|
| @abstractmethod |
| def get_model_info(self) -> dict[str, Any]: |
| """Return human-readable metadata describing model capabilities.""" |
|
|