Diff of /prediction_api/app.py [000000] .. [a5e8ec]

Switch to side-by-side view

--- a
+++ b/prediction_api/app.py
@@ -0,0 +1,46 @@
+import logging
+from os import getenv, path
+
+from dotenv import load_dotenv
+from flask import Flask
+import requests
+
+from src.controller import model_controller
+import src.prediction_system as ps
+
+logging.basicConfig(
+    level=logging.DEBUG,
+    format="%(asctime)s [%(levelname)s]: %(message)s",
+    handlers=[
+        logging.StreamHandler()
+    ],
+)
+
+logger = logging.getLogger(__name__)
+
+load_dotenv()
+
+app = Flask(__name__)
+
+app.register_blueprint(model_controller)
+
+model_url = getenv('AUTOPOSTURE_MODEL_URL', '')
+model_folder = getenv('MODELS_FOLDER', '')
+model_name = getenv('MODEL_NAME', 'autoposture-model.h5')
+
+def download_autoposture_model(url):
+    model_name = path.basename(url)
+    r = requests.get(url, allow_redirects=True)
+    model_path = path.join(model_folder, model_name)
+    open(model_path, 'wb').write(r.content)
+    return model_path
+
+if model_url != '':
+    logger.debug(f'Model downlodaded at {download_autoposture_model(model_url)}')
+else:
+    if path.exists(path.join(model_folder, model_name)):
+        logger.debug(f'{model_name} found at \'{model_folder}\'')
+    else:
+        logger.error(f'{path.join(model_folder, model_name)} not found')
+
+ps.initialize_model()