AutoML_MLOps_PipeLine / app /utils /model_loader.py
Abeshith's picture
Add FastAPI application
5c61354
from mlpipeline.pipeline.prediction_pipeline import PredictionPipeline
from threading import Lock
class ModelLoader:
_instance = None
_lock = Lock()
def __new__(cls):
if cls._instance is None:
with cls._lock:
if cls._instance is None:
cls._instance = super().__new__(cls)
cls._instance.pipeline = None
return cls._instance
def get_pipeline(self) -> PredictionPipeline:
if self.pipeline is None:
self.pipeline = PredictionPipeline()
self.pipeline.load_model()
return self.pipeline
def reload_model(self):
self.pipeline = PredictionPipeline()
self.pipeline.load_model()
return self.pipeline
def is_loaded(self) -> bool:
return self.pipeline is not None and self.pipeline.model is not None
model_loader = ModelLoader()