face/run_face_service.sh

36 lines
954 B
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
# Optional: activate local virtualenv if present
if [ -d ".venv" ]; then
# shellcheck disable=SC1091
source ".venv/bin/activate"
fi
# Model configuration (can be overridden via env)
export FACE_MODEL_NAME="${FACE_MODEL_NAME:-buffalo_l}"
export FACE_DET_SIZE="${FACE_DET_SIZE:-1024}"
# Tune CPU thread usage and workers
CPU_CORES="$(nproc || echo 4)"
DEFAULT_WORKERS="${CPU_CORES}"
if [ "$DEFAULT_WORKERS" -lt 2 ]; then
DEFAULT_WORKERS=2
fi
export OMP_NUM_THREADS="${OMP_NUM_THREADS:-2}"
export MKL_NUM_THREADS="${MKL_NUM_THREADS:-2}"
WORKERS="${UVICORN_WORKERS:-$DEFAULT_WORKERS}"
# Match genealog-api FACE_SERVICE_URL: http://host.docker.internal:18081
PORT="${PORT:-18081}"
echo "Starting face service on port ${PORT} with ${WORKERS} workers (CPU cores: ${CPU_CORES})"
exec uvicorn app.main:app \
--host 0.0.0.0 \
--port "${PORT}" \
--workers "${WORKERS}" \
--loop uvloop \
--http httptools