Matthias Bisping 7a64af156b refactoring
2022-03-29 22:59:01 +02:00

55 lines
1.7 KiB
Python

import os
from funcy import rcompose
from image_prediction.classifier.classifier import Classifier
from image_prediction.classifier.image_classifier import ImageClassifier
from image_prediction.config import CONFIG
from image_prediction.estimator.adapter.adapter import EstimatorAdapter
from image_prediction.extractor_classifier.extractor_classifier import ExtractorClassifier
from image_prediction.formatter.formatters.info_formatter import EnumFormatter
from image_prediction.image_extractor.extractors.parsable import ParsablePDFImageExtractor
from image_prediction.locations import MLRUNS_DIR
from image_prediction.model_loader.loader import ModelLoader
from image_prediction.model_loader.loaders.mlflow import MlflowConnector
from image_prediction.redai_adapter.mlflow import MlflowModelReader
os.environ["TF_CPP_MIN_LOG_LEVEL"] = "3"
def get_image_classifier():
model_loader = ModelLoader(MlflowConnector(MlflowModelReader(MLRUNS_DIR)))
model = model_loader.load_model(CONFIG.service.run_id)
classes = model_loader.load_classes(CONFIG.service.run_id)
classifier = Classifier(EstimatorAdapter(model), classes)
image_classifier = ImageClassifier(classifier)
return image_classifier
def get_extractor():
image_extractor = ParsablePDFImageExtractor(verbose=True)
return image_extractor
def get_extractor_classifier():
extractor_classifier = ExtractorClassifier(get_extractor(), get_image_classifier())
return extractor_classifier
def get_formatter():
formatter = EnumFormatter()
return formatter
class Pipeline:
def __init__(self):
self.pipe = rcompose(get_extractor_classifier(), get_formatter())
def __call__(self, pdf: bytes):
return self.pipe(pdf)