diff --git a/src/serve.py b/src/serve.py index a865c7d..d47fe5b 100644 --- a/src/serve.py +++ b/src/serve.py @@ -28,28 +28,34 @@ logger.setLevel(PYINFRA_CONFIG.logging_level_root) def process_request(request_message): dossier_id = request_message["dossierId"] file_id = request_message["fileId"] - logger.info(f"Processing {dossier_id=} {file_id=} ...") target_file_name = f"{dossier_id}/{file_id}.{request_message['targetFileExtension']}" response_file_name = f"{dossier_id}/{file_id}.{request_message['responseFileExtension']}" + logger.info("Processing file %s w/ file_id=%s, and daossier_id=%s", target_file_name, file_id, dossier_id) bucket = PYINFRA_CONFIG.storage_bucket storage = get_storage(PYINFRA_CONFIG) + logger.debug("loading model pipeline") pipeline = load_pipeline(verbose=IMAGE_CONFIG.service.verbose, batch_size=IMAGE_CONFIG.service.batch_size) - if not storage.exists(bucket, target_file_name): - publish_result = False - else: - publish_result = True + if storage.exists(bucket, target_file_name): + logger.info("fetching file for file_id=%s, and daossier_id=%s", file_id, dossier_id) object_bytes = storage.get_object(bucket, target_file_name) object_bytes = gzip.decompress(object_bytes) + classifications = list(pipeline(pdf=object_bytes)) + logger.info("predictions ready for file_id=%s, and daossier_id=%s", file_id, dossier_id) result = {**request_message, "data": classifications} storage_bytes = gzip.compress(json.dumps(result).encode("utf-8")) + + logger.info("storing predictions for file_id=%s, and daossier_id=%s", file_id, dossier_id) storage.put_object(bucket, response_file_name, storage_bytes) - return publish_result, {"dossierId": dossier_id, "fileId": file_id} + return {"dossierId": dossier_id, "fileId": file_id} + else: + logger.info("no files found for file_id=%s, and daossier_id=%s", file_id, dossier_id) + return None def main():