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:
|