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