aletrn commited on
Commit
2ee2b25
·
1 Parent(s): 674e242

feat: force 500 html response if onnx models files are missing

Browse files
Files changed (1) hide show
  1. app.py +17 -2
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
- app_logger.info(f"still alive, version_web:{version_web}, version_core:{version_core}.")
61
- return JSONResponse(status_code=200, content={"msg": "still alive..."})
 
 
 
 
 
 
 
 
 
 
 
 
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: