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>
This commit is contained in:
Executable
+31
@@ -0,0 +1,31 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user