video_editing_poc/tools/run_local_cv_worker.sh

35 lines
1.0 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
HOST="${LOCAL_CV_HOST:-127.0.0.1}"
PORT="${LOCAL_CV_PORT:-8091}"
MODEL="${LOCAL_CV_YOLO_MODEL:-yolov8n.pt}"
BOOTSTRAP_MODE="${LOCAL_CV_BOOTSTRAP_MODE:-auto}"
if [ ! -d ".venv-local-cv" ]; then
python3 -m venv .venv-local-cv
fi
. .venv-local-cv/bin/activate
if [ "${BOOTSTRAP_MODE}" = "always" ]; then
python -m pip install --upgrade pip
python -m pip install -r tools/local_cv_requirements.txt
elif [ "${BOOTSTRAP_MODE}" = "auto" ] && [ ! -x ".venv-local-cv/bin/uvicorn" ]; then
python -m pip install --upgrade pip
python -m pip install -r tools/local_cv_requirements.txt
else
echo "Local CV bootstrap skipped; using existing virtualenv."
fi
if [ "${LOCAL_CV_DISABLE_YOLO:-false}" != "true" ]; then
LOCAL_CV_YOLO_MODEL="$MODEL" python -c "import os; from ultralytics import YOLO; YOLO(os.environ['LOCAL_CV_YOLO_MODEL'])"
fi
if [ "${LOCAL_CV_PRELOAD_ONLY:-false}" = "true" ]; then
echo "Local CV dependencies and model are ready."
exit 0
fi
exec uvicorn tools.local_cv_worker:app --host "$HOST" --port "$PORT"