diff --git a/medcat-service/docker/docker-compose.example.deid.yml b/medcat-service/docker/docker-compose.example.deid.yml index 47725a4cb..3e92e5ff8 100644 --- a/medcat-service/docker/docker-compose.example.deid.yml +++ b/medcat-service/docker/docker-compose.example.deid.yml @@ -8,5 +8,7 @@ services: - APP_MEDCAT_MODEL_PACK=/cat/models/examples/example-deid-model-pack.zip - DEID_MODE=True - DEID_REDACT=True + - APP_ENABLE_METRICS=True + - APP_ENABLE_DEMO_UI=True ports: - "5555:5000" diff --git a/medcat-service/docker/docker-compose.example.v1.yml b/medcat-service/docker/docker-compose.example.v1.yml index 9af029ffb..92064620d 100644 --- a/medcat-service/docker/docker-compose.example.v1.yml +++ b/medcat-service/docker/docker-compose.example.v1.yml @@ -6,5 +6,7 @@ services: environment: # Uses a preloaded model pack example inside the image - APP_MEDCAT_MODEL_PACK=/cat/models/examples/example-medcat-v1-model-pack.zip + - APP_ENABLE_METRICS=True + - APP_ENABLE_DEMO_UI=True ports: - "5555:5000" diff --git a/medcat-service/docker/docker-compose.example.yml b/medcat-service/docker/docker-compose.example.yml index f77d0c8e7..5ca0a6830 100644 --- a/medcat-service/docker/docker-compose.example.yml +++ b/medcat-service/docker/docker-compose.example.yml @@ -5,6 +5,8 @@ services: restart: unless-stopped environment: # Uses a preloaded model pack example inside the image - - APP_MEDCAT_MODEL_PACK=/cat/models/examples/example-medcat-v2-model-pack.zip + - APP_MEDCAT_MODEL_PACK=/cat/models/examples/example-medcat-v2-model-pack.zip + - APP_ENABLE_METRICS=True + - APP_ENABLE_DEMO_UI=True ports: - "5555:5000" diff --git a/medcat-service/medcat_service/main.py b/medcat-service/medcat_service/main.py index d6318e745..6d3425e58 100644 --- a/medcat-service/medcat_service/main.py +++ b/medcat-service/medcat_service/main.py @@ -37,10 +37,6 @@ app.include_router(process.router) -if settings.enable_demo_ui: - mount_gradio_app(app, path=settings.demo_ui_path) - - def configure_observability(settings: Settings, app: FastAPI): if settings.observability.enable_metrics: from prometheus_fastapi_instrumentator import Instrumentator @@ -52,6 +48,9 @@ def configure_observability(settings: Settings, app: FastAPI): configure_observability(settings, app) +if settings.enable_demo_ui: + mount_gradio_app(app, path=settings.demo_ui_path) + @app.exception_handler(HealthCheckFailedException) async def healthcheck_failed_exception_handler(request: Request, exc: HealthCheckFailedException): diff --git a/medcat-service/scripts/integration_test_functions.sh b/medcat-service/scripts/integration_test_functions.sh index b5c78ee8f..f080e3069 100644 --- a/medcat-service/scripts/integration_test_functions.sh +++ b/medcat-service/scripts/integration_test_functions.sh @@ -1,13 +1,34 @@ smoketest_medcat_service() { + local localhost_name="$1" + local docker_compose_file="$2" + local port="${3:-5555}" + + local apis=( + "/api/info" + "/api/health/live" + "/api/health/ready" + "/metrics" + "/docs" + ) + + for api in "${apis[@]}"; do + test_medcat_service_api "$localhost_name" "$docker_compose_file" "$api" "$port" + done +} + + +test_medcat_service_api() { local localhost_name="$1" local docker_compose_file="$2" - local port=${3:-5555} + local resource="${3:-/api/info}" + local port="${4:-5555}" if [ -z "$localhost_name" ] || [ -z "$docker_compose_file" ]; then - echo "Invalid arguments. Usage: health_check " >&2 + echo "Invalid arguments. Usage: smoketest_medcat_service [resource] [port]" >&2 + echo " resource: e.g. /api/info (default: /api/info)" >&2 return 1 fi - API="http://${localhost_name}:${port}/api/info" + API="http://${localhost_name}:${port}${resource}" MAX_RETRIES=12 RETRY_DELAY=5 @@ -23,7 +44,7 @@ smoketest_medcat_service() { break else echo "Attempt $((COUNT+1))/$MAX_RETRIES: Not ready (HTTP $IS_READY)." - docker compose -f ${DOCKER_COMPOSE_FILE} logs + docker compose -f "$docker_compose_file" logs COUNT=$((COUNT+1)) fi done