Files
PlantAI-rag-new/agent/qa/scripts/start.sh
T
admin afa7cce938 feat(aqua): unlock normalized KB identity via env with plant fallback
- normalized_release EXPECTED_RELEASE defaults to NORMALIZED_RELEASE_ID (plant value)
- from_env falls back to constant on empty env; backend_guard uses env-or-constant
- start.sh sources env/active_library.env after prod.env (qa + legacy-rag)
- build_all.sh --library <name|dir> renders library identity (no name whitelist)
- add kb-libraries skeleton (plant/aqua identity cards) and tooling/aqua_kb
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-12 19:10:08 +08:00

53 lines
1.8 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
if [[ -f "$AGENT_ROOT/env/active_library.env" ]]; then
set -a; . "$AGENT_ROOT/env/active_library.env"; set +a
fi
# 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