Pull request #8: Exception handling

Merge in RR/fb_detr_prediction_container from exception_handling to master

Squashed commit of the following:

commit 591339edfc9fd9c1dfb26119b5b35336fde696f1
Author: Matthias Bisping <matthias.bisping@iqser.com>
Date:   Fri Feb 18 11:49:10 2022 +0100

    removed debug prints

commit bbbf50c3ba1a3b3f0e0a91fbc64b38a5f3a8d8eb
Author: Matthias Bisping <matthias.bisping@iqser.com>
Date:   Fri Feb 18 11:48:18 2022 +0100

    fixed docker.sh base-dockerfile name

commit 82b0453dcfd7f099336185bcb059d49c37336d28
Author: Matthias Bisping <matthias.bisping@iqser.com>
Date:   Fri Feb 18 11:00:56 2022 +0100

    dinge

commit bd8778256624b11cab4ed083d41e254120fdc158
Author: Matthias Bisping <matthias.bisping@iqser.com>
Date:   Fri Feb 18 10:58:48 2022 +0100

    fixed docker.shs

commit 42cb54fb150d506243bde1b654cc3f7b90ae2069
Author: Matthias Bisping <matthias.bisping@iqser.com>
Date:   Fri Feb 18 10:56:11 2022 +0100

    fixed (?) path to submodule in planspec script

commit 981304483870ccce0868a59514234cec8c6b5234
Author: Matthias Bisping <matthias.bisping@iqser.com>
Date:   Fri Feb 18 10:53:38 2022 +0100

    added submodule init call to docker-build.sh

commit 6a1745a4d3857f49c460ac1a2479d44e79adf695
Author: Matthias Bisping <matthias.bisping@iqser.com>
Date:   Fri Feb 18 10:27:30 2022 +0100

    debug echos

commit 659828d3a9220d4f009f53d7bae0dc44786e831e
Merge: 91af62c 91ee3b7
Author: Matthias Bisping <matthias.bisping@iqser.com>
Date:   Fri Feb 18 10:09:33 2022 +0100

    Merge branch 'master' into exception_handling

commit 91ee3b778201b095d279f8e1f9ec6bef7f863edb
Merge: 08b2583 b7ca7cb
Author: Matthias Bisping <matthias.bisping@iqser.com>
Date:   Fri Feb 18 10:09:09 2022 +0100

    Merge branch 'master' of ssh://git.iqser.com:2222/rr/fb_detr_prediction_container

commit 91af62c09e852f7393aac8172634c06d2b7f7e75
Author: Matthias Bisping <matthias.bisping@iqser.com>
Date:   Fri Feb 18 09:53:17 2022 +0100

    renaming

commit 0e5f861b79f747a4e338c0d9b083d2e4a35d9893
Merge: 08b2583 03274d4
Author: Matthias Bisping <matthias.bisping@iqser.com>
Date:   Fri Feb 18 09:52:10 2022 +0100

    Merge branch 'master' of ssh://git.iqser.com:2222/rr/fb_detr_prediction_container into exception_handling

commit 08b2583b0db78cf6c87a2c68f372a91800abde7b
Author: Matthias Bisping <matthias.bisping@iqser.com>
Date:   Fri Feb 18 09:49:49 2022 +0100

    renaming

commit e5053345669eb1336d3327ece5c5514c694e1801
Author: Matthias Bisping <matthias.bisping@iqser.com>
Date:   Fri Feb 18 09:49:31 2022 +0100

    applied black

commit e051ef6cc4aa95ed9ec8b83c96a1a087edb652b6
Author: Matthias Bisping <matthias.bisping@iqser.com>
Date:   Fri Feb 18 09:48:33 2022 +0100

    exception handling
This commit is contained in:
Matthias Bisping 2022-02-18 12:35:59 +01:00
parent b7ca7cb447
commit 6a06f8f7df
3 changed files with 24 additions and 10 deletions

View File

@ -18,4 +18,4 @@ WORKDIR /app/service
EXPOSE 5000
EXPOSE 8080
CMD ["python3", "src/run_service.py"]
CMD ["python3", "src/serve.py"]

View File

@ -11,5 +11,5 @@ dvc pull
git submodule update --init --recursive
docker build -f Dockerfile-base -t detr-server-base .
docker build -f Dockerfile_base -t detr-server-base .
docker build -f Dockerfile -t detr-server .

View File

@ -1,17 +1,19 @@
import argparse
import logging
import os
from flask import Flask, request, jsonify
from pdf2image import pdf2image
from fb_detr.locations import DATA_DIR
from fb_detr.locations import TORCH_HOME
from fb_detr.predictor import Predictor
from waitress import serve
from flask import Flask, request, jsonify
from pdf2image import pdf2image
from fb_detr.utils.config import read_config
def suppress_userwarnings():
import warnings
warnings.filterwarnings("ignore")
@ -71,13 +73,23 @@ def run_server(resume):
@app.route("/", methods=["POST"])
def predict_request():
def inner():
pdf = request.data
pdf = request.data
pages = pdf2image.convert_from_bytes(pdf)
predictions = predictor.predict(pages)
pages = pdf2image.convert_from_bytes(pdf)
predictions = predictor.predict(pages)
return jsonify(list(predictions))
return jsonify(list(predictions))
try:
return inner()
except Exception as err:
logging.warning("Analysis failed")
logging.exception(err)
resp = jsonify("Analysis failed")
resp.status_code = 500
return resp
@app.route("/status", methods=["GET"])
def status():
@ -86,7 +98,9 @@ def run_server(resume):
predictor = initialize_predictor()
serve(app, host="127.0.0.1", port=5000)
logging.info("Predictor ready.")
app.run(host="127.0.0.1", port=5000, debug=True)
if __name__ == "__main__":