-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
38 lines (24 loc) · 924 Bytes
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import logging
from pathlib import Path
from toolz import merge
from flask import Flask, jsonify, request
from flask_cors import CORS
from model import model_load, predict, MODEL
logging.basicConfig(
filename="{}".format(Path.home() / "logs" / "predictor.log"),
format="%(asctime)s == PILLITUP == PREDICTOR == [%(levelname)-8s] %(message)s",
level=logging.DEBUG,
)
app = Flask("pill-it-up-cloud-predictor")
CORS(app)
model = model_load()
@app.route("/predict", methods=["GET", "POST"])
def prediction():
logging.debug("Received prediction request.")
img = request.files["media"]
predicted_pill, all_probs = predict(model, img.stream)
logging.debug("Found {}.".format(predicted_pill))
ret_dict = merge({"medication": str(predicted_pill).replace("_", " ")}, {"all_probs": all_probs})
return jsonify(ret_dict)
if __name__ == "__main__":
app.run(host="0.0.0.0", debug=True)