Files
PlantAI-rag-new/agent/qa/scripts/start.sh
T
adminandClaude Fable 5 a57c1994e8 feat(deploy): 176 部署完成与启动脚本可移植化
- start.sh×3: venv 解析改为安装包内 ../venv 优先(175 旧路径回退), 176 等目标机免改
- build_all.sh: start_all 模板补 vstore 拉起 + BFF 前 source sdk/.env + PYBIN 可移植解析 + env 目录 mkdir
- DEPLOY_FLOW.md: §5.1 重写(176 实战模板: venv/torch 安装顺序/.env 键/ollama 离线携带/下载源可达性/内网直连), §0 增 176 已部署行

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-09 01:01:30 +08:00

49 lines
1.7 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
# agent/qa/scripts/start.sh —— QA V1.1.73 服务唯一启动接口
# 用法:bash scripts/start.sh [port] (默认 8091 终态;浸泡期影子用 7921)
set -euo pipefail
AGENT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
PORT="${1:-8091}" # 终态端口
ENV_FILE="${QA_ENV_FILE:-$AGENT_ROOT/env/prod.env}"
LOG_FILE="${QA_LOG_FILE:-/tmp/plantai-agent-qa-$PORT.log}"
PID_FILE="$AGENT_ROOT/run/qa-$PORT.pid"
PYTHON="${QA_PYTHON:-$AGENT_ROOT/../venv/bin/python}"
[[ -x "$PYTHON" ]] || PYTHON="/home/xzq/5090/teamWorkspace/zh/plantai-rag-new-venv/bin/python"
mkdir -p "$AGENT_ROOT/run"
[[ -x "$PYTHON" ]] || { echo "QA Python 不可执行: $PYTHON" >&2; exit 1; }
[[ -f "$ENV_FILE" ]] || { echo "缺少 env 文件: $ENV_FILE" >&2; exit 1; }
if [[ -f "$PID_FILE" ]] && kill -0 "$(cat "$PID_FILE")" 2>/dev/null; then
echo "QA 已在运行 pid=$(cat "$PID_FILE")" >&2
exit 1
fi
set -a
# shellcheck disable=SC1090
. "$ENV_FILE"
set +a
# reranker 模型路径回退:env 未指定时用安装包内模型(install/models/bge-reranker-base)
if [[ -z "${QA_V1_BGE_RERANKER_MODEL:-}" && -d "$AGENT_ROOT/../models/bge-reranker-base" ]]; then
export QA_V1_BGE_RERANKER_MODEL="$AGENT_ROOT/../models/bge-reranker-base"
fi
cd "$AGENT_ROOT"
setsid "$PYTHON" -m uvicorn scripts.qa_v1_1_73_server:app \
--host 127.0.0.1 --port "$PORT" \
> "$LOG_FILE" 2>&1 < /dev/null &
echo $! > "$PID_FILE"
disown
for _ in $(seq 1 30); do
if curl -sf --max-time 3 "http://127.0.0.1:$PORT/health" >/dev/null 2>&1; then
echo "QA UP (127.0.0.1:$PORT, pid=$(cat "$PID_FILE"))"
exit 0
fi
sleep 2
done
echo "QA FAIL —— 日志尾部:" >&2
tail -30 "$LOG_FILE" >&2
exit 1