Files
hair/run_worker.sh
T
xslandClaude Opus 4.8 8d3b145111 feat(worker): 接口1 四庭七眼测量真实实现(替换 Mock)
worker 侧从 Mock 替换为真实算法:
- face_analysis 包:detector(MediaPipe 478点) / pose(solvePnP 姿态) /
  calibration(虹膜直径法) / hair_segmenter+bisenet_model(方案B 头发分割) /
  measure(方案A兜底+B/A决策+七眼+换算) / annotation(numpy渐变线+中文标注)
- app.py:/api/v1/face/measure 接真实实现,返回 annotated_image_base64
  (不落盘不拼URL,落盘由网关做);加 X-Internal-Token 鉴权、/health 就绪态、
  可配置分辨率门槛、异常兜底
- 部署:start.sh/run_worker.sh/hair-worker.service 监听 8187;worker_config 示例
- 测试 tests/:Tier1合成真值<1e-6 + Tier2缩放不变 + Tier3叠加 + 错误码集成 +
  数值回归,pytest 24 项全绿
- 文档补实测基线表 + RTX5090/torch 说明

注:worker 为 RTX 5090(sm_120),pinned torch 2.2.2(cu121) 只到 sm_90,
BiSeNet 已自动回退 CPU(方案B 正常);要用 GPU 需换 torch cu128(≥2.7)。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-14 16:07:28 +08:00

32 lines
1.1 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
# worker 开发启动脚本(接口1 四庭七眼测量)。
#
# 用法:
# ./run_worker.sh # 开发模式:127.0.0.1:8187 + --reload(改代码自动重启)
# ./run_worker.sh --prod # 部署模式:0.0.0.0:8187,无 reload
# HOST=0.0.0.0 PORT=9000 ./run_worker.sh # 用环境变量覆盖 host/port
#
# 鉴权密码读 worker_config.json 的 accept_passwords(本地默认 testpass),
# 也可用 WORKER_ACCEPT_PASSWORDS=逗号分隔 覆盖。
set -euo pipefail
cd "$(dirname "$0")"
VENV_PY="./venv/bin/uvicorn"
if [ ! -x "$VENV_PY" ]; then
echo "找不到 $VENV_PY,请先创建 venv 并安装依赖(见 README/requirements.txt" >&2
exit 1
fi
MODE="${1:-dev}"
if [ "$MODE" = "--prod" ]; then
HOST="${HOST:-0.0.0.0}"
PORT="${PORT:-8187}"
echo ">> 部署模式 worker: ${HOST}:${PORT}"
exec "$VENV_PY" app:app --host "$HOST" --port "$PORT"
else
HOST="${HOST:-127.0.0.1}"
PORT="${PORT:-8187}"
echo ">> 开发模式 worker: ${HOST}:${PORT} (--reload)"
exec "$VENV_PY" app:app --host "$HOST" --port "$PORT" --reload
fi