feat: force 500 html response if onnx models files are missing
Browse files
app.py
CHANGED
@@ -54,11 +54,26 @@ async def request_middleware(request, call_next):
|
|
54 |
|
55 |
@app.get("/health")
|
56 |
async def health() -> JSONResponse:
|
|
|
57 |
from samgis_web.__version__ import __version__ as version_web
|
58 |
from samgis_core.__version__ import __version__ as version_core
|
|
|
|
|
59 |
|
60 |
-
|
61 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
62 |
|
63 |
|
64 |
def infer_samgis_fn(request_input: ApiRequestBody | str) -> str | JSONResponse:
|
|
|
54 |
|
55 |
@app.get("/health")
|
56 |
async def health() -> JSONResponse:
|
57 |
+
from onnxruntime import __version__ as ort_version
|
58 |
from samgis_web.__version__ import __version__ as version_web
|
59 |
from samgis_core.__version__ import __version__ as version_core
|
60 |
+
|
61 |
+
from samgis_core.utilities.constants import MODEL_ENCODER_NAME, MODEL_DECODER_NAME
|
62 |
|
63 |
+
msg_model_folder_error = f"health_check: model_folder:'{model_folder}' is not a directory."
|
64 |
+
msg_model_file_error = f"health_check: model_file:'{model_folder}' not found."
|
65 |
+
try:
|
66 |
+
assert model_folder.is_dir(), msg_model_folder_error
|
67 |
+
encoder_model_path = Path(model_folder) / MODEL_ENCODER_NAME
|
68 |
+
decoder_model_path = Path(model_folder) / MODEL_DECODER_NAME
|
69 |
+
assert encoder_model_path.is_file(), msg_model_file_error
|
70 |
+
assert decoder_model_path.is_file(), msg_model_file_error
|
71 |
+
app_logger.info(f"still alive, version_onnxruntime:{ort_version}, version_web:{version_web}, version_core:{version_core}.")
|
72 |
+
app_logger.info(f"still alive, encoder_model:{encoder_model_path}, decoder_model:{decoder_model_path}.")
|
73 |
+
return JSONResponse(status_code=200, content={"msg": "still alive..."})
|
74 |
+
except AssertionError as ae:
|
75 |
+
app_logger.error(f"health_check: AssertionError:{ae}.")
|
76 |
+
raise HTTPException(500, detail=msg_model_folder_error)
|
77 |
|
78 |
|
79 |
def infer_samgis_fn(request_input: ApiRequestBody | str) -> str | JSONResponse:
|