[a5e8ec]: / prediction_api / app.py

Download this file

47 lines (35 with data), 1.2 kB

 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
39
40
41
42
43
44
45
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()