add logging & only return one object from process_request()

This commit is contained in:
Francisco Schulz 2023-02-14 16:29:04 +01:00
parent d239368d70
commit 9065ec1d12

View File

@ -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():