55 lines
1.7 KiB
Python
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)
|