52 lines
1.8 KiB
Bash
52 lines
1.8 KiB
Bash
#!/bin/bash
|
||||
|
|
# deploy/toggle_paper.sh —— 论文撰写快速开关(dev 树 175;不触碰生产 176 /srv/plantai)。
|
|||
|
|
# 用法:bash deploy/toggle_paper.sh off|on
|
|||
|
|
# 原理:BFF main.py 按 PAPER_WRITER_ENABLED 决定是否注册 /api/paper 路由;
|
|||
|
|
# 不注册时 /api/paper/health 返回 404,前端探活落 offline,触发词落 docgen 单发降级。
|
|||
|
|
set -uo pipefail
|
|||
|
|
|
|||
|
|
ACTION="${1:-}"
|
|||
|
|
SDK_DIR="/home/xzq/5090/teamWorkspace/zh/PlantAI-rag-new/sdk"
|
|||
|
|
ENV_FILE="$SDK_DIR/.env"
|
|||
|
|
PY="/home/xzq/5090/teamWorkspace/zh/plantai-rag-new-venv/bin/python"
|
|||
|
|
BIND="${PAPER_BFF_BIND:-0.0.0.0}"
|
|||
|
|
|
|||
|
|
if [ "$ACTION" != "off" ] && [ "$ACTION" != "on" ]; then
|
|||
|
|
echo "用法: $0 <off|on>" >&2
|
|||
|
|
exit 2
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
VAL="true"
|
|||
|
|
[ "$ACTION" = "off" ] && VAL="false"
|
|||
|
|
|
|||
|
|
# 1. 改 env(追加或覆盖)
|
|||
|
|
if grep -q "^PAPER_WRITER_ENABLED=" "$ENV_FILE"; then
|
|||
|
|
sed -i "s/^PAPER_WRITER_ENABLED=.*/PAPER_WRITER_ENABLED=$VAL/" "$ENV_FILE"
|
|||
|
|
else
|
|||
|
|
echo "PAPER_WRITER_ENABLED=$VAL" >> "$ENV_FILE"
|
|||
|
|
fi
|
|||
|
|
echo "PAPER_WRITER_ENABLED -> $VAL"
|
|||
|
|
|
|||
|
|
# 2. 重启 BFF 8090(dev 树;仅取 LISTEN 者;venv 必须绝对路径,cd sdk 后才能 import app.main)
|
|||
|
|
kill $(lsof -ti tcp:8090 -sTCP:LISTEN) 2>/dev/null || true
|
|||
|
|
sleep 2
|
|||
|
|
cd "$SDK_DIR" && set -a && . .env && set +a
|
|||
|
|
( cd "$SDK_DIR" && setsid "$PY" -m uvicorn app.main:app --host "$BIND" --port 8090 \
|
|||
|
|
> /tmp/plantai-bff.log 2>&1 < /dev/null & ) && disown -a
|
|||
|
|
|
|||
|
|
# 3. 自检
|
|||
|
|
for i in $(seq 1 20); do
|
|||
|
|
sleep 2
|
|||
|
|
curl -s -m 3 http://127.0.0.1:8090/api/health >/dev/null 2>&1 && break
|
|||
|
|
done
|
|||
|
|
curl -s -m 10 http://127.0.0.1:8090/api/health | head -c 120
|
|||
|
|
echo
|
|||
|
|
if [ "$ACTION" = "off" ]; then
|
|||
|
|
CODE=$(curl -s -o /dev/null -w "%{http_code}" -m 8 http://127.0.0.1:8090/api/paper/health)
|
|||
|
|
echo "paper/health HTTP $CODE (off 期望 404)"
|
|||
|
|
[ "$CODE" = "404" ] && echo "OFF_OK" || echo "OFF_CHECK_FAIL"
|
|||
|
|
else
|
|||
|
|
curl -s -m 8 http://127.0.0.1:8090/api/paper/health | head -c 150
|
|||
|
|
echo
|
|||
|
|
fi
|