Python 统一 U0-U4:venv py3.12.13 + 四树 cp312 重编译 + 端口互换 8091/8092/8093 + 旧服务停而不删
- U0:新建 plantai-rag-new-venv(3.12.13,130 包),torch 2.13.0+cpu/cython 3.2.8/faiss 1.14.3/openai 3.3.1,requirements.lock 固化 - U1:四树全 venv 重编译(sdk 15/qa 45/methodology 28/legacy 283 .so 全 cp312),audit 双审计过 - U2:备用端口影子对照:金标 search evidence 30/30 与生产一致、SDK pytest 125 过、五上游绿 - U3:统一树切终态 8091/8092/8093 + BFF 8090(venv),停旧服务(容器/进程不删,30 天窗) - U4:minerupy311→minerupy312 断链修复、GF_PYTHON_ENV 回退统一、start-dev/run/bff_restart 去 conda、server.env/README 更新 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+3
-3
@@ -2,9 +2,9 @@
|
||||
|
||||
| 目录 | 服务 | 端口 | 入口(白名单明文) | conda |
|
||||
|---|---|---|---|---|
|
||||
| qa/ | QA V1.1.73 断言锚定检索 | 8091(浸泡影子 7921) | scripts/qa_v1_1_73_server.py | gfpy312 |
|
||||
| methodology/ | Methodology 提取 | 8092(浸泡影子 8001) | scripts/methodology_server.py | gfpy312 |
|
||||
| legacy-rag/ | 旧路由族(app 3 路由/main 11 族) | 8093(浸泡影子 7911) | api/app.py | plantai-bff |
|
||||
| qa/ | QA V1.1.73 断言锚定检索 | 8091 | scripts/qa_v1_1_73_server.py | plantai-rag-new-venv |
|
||||
| methodology/ | Methodology 提取 | 8092 | scripts/methodology_server.py | plantai-rag-new-venv |
|
||||
| legacy-rag/ | 旧路由族(app 3 路由/main 11 族) | 8093 | api/app.py | plantai-rag-new-venv |
|
||||
| vendor/ | 共享源码池(非服务) | — | — | — |
|
||||
|
||||
约束:仅 shell 启动(`scripts/{start,stop,status,restart}.sh`);编译产物 `.so` 隐藏源码;`compile.manifest` 记录模块级白名单。vendor 为源码单份,编译时复制进各 agent 暂存目录。
|
||||
|
||||
@@ -32,7 +32,7 @@ REVIEW_RESULTS_CSV = BATCH_DIR / "review_results.csv"
|
||||
# 2026-08-31 新工程适配:上传目录/产出根支持 env 覆盖
|
||||
UPLOAD_JOBS_DIR = Path(os.environ.get("METHODOLOGY_UPLOAD_JOBS_DIR", PROJECT_ROOT / "data" / "evaluation" / "methodology_upload_jobs"))
|
||||
UPLOAD_OUTPUT_ROOT = Path(os.environ.get("METHODOLOGY_UPLOAD_OUTPUT_ROOT", PROJECT_ROOT / "data" / "evaluation" / "0505"))
|
||||
DEFAULT_MINERU_CMD = str(conda_env_path("minerupy311") / "bin" / "mineru")
|
||||
DEFAULT_MINERU_CMD = str(conda_env_path("minerupy312") / "bin" / "mineru")
|
||||
DEFAULT_MINERU_API_URL = "http://127.0.0.1:50215"
|
||||
DEFAULT_MINERU_BACKEND = "hybrid-auto-engine"
|
||||
DEFAULT_MINERU_METHOD = "auto"
|
||||
@@ -554,7 +554,7 @@ def run_uploaded_methodology_job(
|
||||
}
|
||||
)
|
||||
batch_cmd = [
|
||||
str(conda_env_path(os.environ.get("GF_PYTHON_ENV", "gfpy312")) / "bin" / "python"),
|
||||
str(conda_env_path(os.environ.get("GF_PYTHON_ENV", "/home/xzq/5090/teamWorkspace/zh/plantai-rag-new-venv")) / "bin" / "python"),
|
||||
"scripts/run_methodology_batch.py",
|
||||
"--papers",
|
||||
str(papers_csv),
|
||||
|
||||
@@ -2,6 +2,6 @@
|
||||
# agent/legacy/scripts/restart.sh —— 重启(停 → 起)
|
||||
set -euo pipefail
|
||||
AGENT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
PORT="${1:-7920}"
|
||||
PORT="${1:-8093}"
|
||||
bash "$AGENT_ROOT/scripts/stop.sh" "$PORT" || true
|
||||
bash "$AGENT_ROOT/scripts/start.sh" "$PORT"
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
#!/usr/bin/env bash
|
||||
# agent/legacy-rag/scripts/start.sh —— 旧路由族服务唯一启动接口
|
||||
main]|main]
|
||||
# 用法:bash scripts/start.sh [port] [app|main]
|
||||
# app = 3 路由(生产 7900 同源,默认) / main = 11 路由裁剪版
|
||||
set -euo pipefail
|
||||
AGENT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
PORT="${1:-8093}" # 终态端口(浸泡期显式传 7911)
|
||||
PORT="${1:-8093}" # 终态端口
|
||||
ENTRY="${2:-app}"
|
||||
ENV_FILE="${LEGACY_ENV_FILE:-$AGENT_ROOT/env/prod.env}"
|
||||
LOG_FILE="${LEGACY_LOG_FILE:-/tmp/plantai-agent-legacy-$PORT.log}"
|
||||
PID_FILE="$AGENT_ROOT/run/legacy-$PORT.pid"
|
||||
PYTHON="${LEGACY_PYTHON:-/home/xzq/miniconda3/envs/test4py311/bin/python}"
|
||||
PYTHON="${LEGACY_PYTHON:-/home/xzq/5090/teamWorkspace/zh/plantai-rag-new-venv/bin/python}"
|
||||
BIND="${LEGACY_API_HOST:-127.0.0.1}"
|
||||
|
||||
case "$ENTRY" in
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
# agent/legacy/scripts/stop.sh —— 停止 legacy-rag 服务(停而不删,保留日志/pid 供回滚诊断)
|
||||
set -euo pipefail
|
||||
AGENT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
PORT="${1:-7920}"
|
||||
PORT="${1:-8093}"
|
||||
PID_FILE="$AGENT_ROOT/run/legacy-$PORT.pid"
|
||||
if [[ -f "$PID_FILE" ]]; then
|
||||
PID="$(cat "$PID_FILE")"
|
||||
|
||||
@@ -32,7 +32,7 @@ REVIEW_RESULTS_CSV = BATCH_DIR / "review_results.csv"
|
||||
# 2026-08-31 新工程适配:上传目录/产出根支持 env 覆盖(数据根迁移时无需改代码)
|
||||
UPLOAD_JOBS_DIR = Path(os.environ.get("METHODOLOGY_UPLOAD_JOBS_DIR", PROJECT_ROOT / "data" / "evaluation" / "methodology_upload_jobs"))
|
||||
UPLOAD_OUTPUT_ROOT = Path(os.environ.get("METHODOLOGY_UPLOAD_OUTPUT_ROOT", PROJECT_ROOT / "data" / "evaluation" / "0505"))
|
||||
DEFAULT_MINERU_CMD = str(conda_env_path("minerupy311") / "bin" / "mineru")
|
||||
DEFAULT_MINERU_CMD = str(conda_env_path("minerupy312") / "bin" / "mineru")
|
||||
DEFAULT_MINERU_API_URL = "http://127.0.0.1:50215"
|
||||
DEFAULT_MINERU_BACKEND = "hybrid-auto-engine"
|
||||
DEFAULT_MINERU_METHOD = "auto"
|
||||
@@ -554,7 +554,7 @@ def run_uploaded_methodology_job(
|
||||
}
|
||||
)
|
||||
batch_cmd = [
|
||||
str(conda_env_path(os.environ.get("GF_PYTHON_ENV", "gfpy312")) / "bin" / "python"),
|
||||
str(conda_env_path(os.environ.get("GF_PYTHON_ENV", "/home/xzq/5090/teamWorkspace/zh/plantai-rag-new-venv")) / "bin" / "python"),
|
||||
"scripts/run_methodology_batch.py",
|
||||
"--papers",
|
||||
str(papers_csv),
|
||||
|
||||
@@ -2,6 +2,6 @@
|
||||
# agent/methodology/scripts/restart.sh —— 重启(停 → 起)
|
||||
set -euo pipefail
|
||||
AGENT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
PORT="${1:-7920}"
|
||||
PORT="${1:-8092}"
|
||||
bash "$AGENT_ROOT/scripts/stop.sh" "$PORT" || true
|
||||
bash "$AGENT_ROOT/scripts/start.sh" "$PORT"
|
||||
|
||||
@@ -3,11 +3,11 @@
|
||||
# 用法:bash scripts/start.sh [port] (默认 8092 终态;浸泡期影子用 8001)
|
||||
set -euo pipefail
|
||||
AGENT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
PORT="${1:-8092}" # 终态端口(浸泡期显式传 8001)
|
||||
PORT="${1:-8092}" # 终态端口
|
||||
ENV_FILE="${METHODOLOGY_ENV_FILE:-$AGENT_ROOT/env/prod.env}"
|
||||
LOG_FILE="${METHODOLOGY_LOG_FILE:-/tmp/plantai-agent-methodology-$PORT.log}"
|
||||
PID_FILE="$AGENT_ROOT/run/methodology-$PORT.pid"
|
||||
PYTHON="${METHODOLOGY_PYTHON:-/home/xzq/miniconda3/envs/gfpy312/bin/python}"
|
||||
PYTHON="${METHODOLOGY_PYTHON:-/home/xzq/5090/teamWorkspace/zh/plantai-rag-new-venv/bin/python}"
|
||||
BIND="${METHODOLOGY_API_HOST:-0.0.0.0}"
|
||||
|
||||
mkdir -p "$AGENT_ROOT/run"
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
# agent/methodology/scripts/stop.sh —— 停止 Methodology 服务(停而不删,保留日志/pid 供回滚诊断)
|
||||
set -euo pipefail
|
||||
AGENT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
PORT="${1:-7920}"
|
||||
PORT="${1:-8092}"
|
||||
PID_FILE="$AGENT_ROOT/run/methodology-$PORT.pid"
|
||||
if [[ -f "$PID_FILE" ]]; then
|
||||
PID="$(cat "$PID_FILE")"
|
||||
|
||||
@@ -2,6 +2,6 @@
|
||||
# agent/qa/scripts/restart.sh —— 重启(停 → 起)
|
||||
set -euo pipefail
|
||||
AGENT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
PORT="${1:-7920}"
|
||||
PORT="${1:-8091}"
|
||||
bash "$AGENT_ROOT/scripts/stop.sh" "$PORT" || true
|
||||
bash "$AGENT_ROOT/scripts/start.sh" "$PORT"
|
||||
|
||||
@@ -3,11 +3,11 @@
|
||||
# 用法:bash scripts/start.sh [port] (默认 8091 终态;浸泡期影子用 7921)
|
||||
set -euo pipefail
|
||||
AGENT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
PORT="${1:-8091}" # 终态端口(浸泡期显式传 7921)
|
||||
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:-/home/xzq/miniconda3/envs/gfpy312/bin/python}"
|
||||
PYTHON="${QA_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; }
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
# agent/qa/scripts/stop.sh —— 停止 QA 服务(停而不删,保留日志/pid 供回滚诊断)
|
||||
set -euo pipefail
|
||||
AGENT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
PORT="${1:-7920}"
|
||||
PORT="${1:-8091}"
|
||||
PID_FILE="$AGENT_ROOT/run/qa-$PORT.pid"
|
||||
if [[ -f "$PID_FILE" ]]; then
|
||||
PID="$(cat "$PID_FILE")"
|
||||
|
||||
Regular → Executable
+18
-17
@@ -1,38 +1,39 @@
|
||||
#!/bin/bash
|
||||
# deploy/bff_restart.sh —— 远端 BFF 重启(PM 使用,在远端执行)
|
||||
# 用法:ssh 192.168.0.175 -p 26518 'bash ~/5090/teamWorkspace/zh/PlantAI-rag-new/deploy/bff_restart.sh [bind_addr]'
|
||||
# 参数:可选绑定地址(默认 127.0.0.1;内网演示传 0.0.0.0)
|
||||
# 要点:用 setsid 完全脱离 SSH 会话,stdout/stderr 全部落日志。
|
||||
# deploy/bff_restart.sh —— 远端 BFF 重启(PM 使用,在远端执行)
|
||||
# 用法:ssh 192.168.0.175 -p 26518 'bash ~/5090/teamWorkspace/zh/PlantAI-rag-new/deploy/bff_restart.sh [bind_addr]'
|
||||
# 参数:可选绑定地址(默认 127.0.0.1;内网演示传 0.0.0.0)
|
||||
# 要点:用 setsid 完全脱离 SSH 会话,stdout/stderr 全部落日志。
|
||||
# 2026-09-01 统一 Python:conda plantai-bff → plantai-rag-new-venv(py3.12.13)
|
||||
set -uo pipefail
|
||||
ROOT="/home/xzq/5090/teamWorkspace/zh/PlantAI-rag-new"
|
||||
SDK_ROOT="/home/xzq/5090/teamWorkspace/zh/plantai-rag-new-deploy-unified/sdk"
|
||||
PYTHON="/home/xzq/5090/teamWorkspace/zh/plantai-rag-new-venv/bin/python"
|
||||
BIND="${1:-127.0.0.1}"
|
||||
source ~/miniconda3/etc/profile.d/conda.sh
|
||||
conda activate plantai-bff
|
||||
[[ -x "$PYTHON" ]] || { echo "BFF Python 不可执行: $PYTHON" >&2; exit 1; }
|
||||
|
||||
# 杀旧进程([u] 正则技巧防 pkill 自匹配)
|
||||
# 杀旧进程([u] 正则技巧防 pkill 自匹配)
|
||||
pkill -f "[a]pp.main:app" 2>/dev/null
|
||||
sleep 2
|
||||
|
||||
cd "$ROOT/sdk"
|
||||
# 加载运行时凭据(sdk/.env,不入 git)并导出给应用进程。
|
||||
# pydantic-settings 会把 .env 载入 settings 对象,但 services/neo4j.py 的
|
||||
# _env() 直接读 os.environ,故需显式 set -a 导出。
|
||||
cd "$SDK_ROOT"
|
||||
# 加载运行时凭据(sdk/.env,不入 git)并导出给应用进程。
|
||||
# pydantic-settings 会把 .env 载入 settings 对象,但 services/neo4j.py 的
|
||||
# _env() 直接读 os.environ,故需显式 set -a 导出。
|
||||
set -a
|
||||
[ -f .env ] && source .env
|
||||
set +a
|
||||
setsid python -m uvicorn app.main:app --host "$BIND" --port 8090 \
|
||||
setsid "$PYTHON" -m uvicorn app.main:app --host "$BIND" --port 8090 \
|
||||
> /tmp/plantai-bff.log 2>&1 < /dev/null &
|
||||
disown
|
||||
|
||||
sleep 12
|
||||
if ss -tln | grep -q ":8090 "; then
|
||||
echo "BFF UP ($BIND:8090)"
|
||||
echo "BFF UP ($BIND:8090, venv py3.12.13)"
|
||||
curl -s --max-time 20 http://127.0.0.1:8090/api/health | head -c 200
|
||||
echo
|
||||
# 生产形态:静态托管 ui/dist(存在时 BFF 单进程服务整个前端)
|
||||
curl -s --max-time 10 http://127.0.0.1:8090/ | grep -o "<title>[^<]*" || echo "(静态托管未生效,需同步 dist)"
|
||||
# 生产形态:静态托管 ui/dist(存在时 BFF 单进程服务整个前端)
|
||||
curl -s --max-time 10 http://127.0.0.1:8090/ | grep -o "<title>[^<]*" || echo "(静态托管未生效,需同步 dist)"
|
||||
else
|
||||
echo "BFF FAIL —— 日志尾部:"
|
||||
echo "BFF FAIL —— 日志尾部:"
|
||||
tail -15 /tmp/plantai-bff.log
|
||||
exit 1
|
||||
fi
|
||||
|
||||
+2
-2
@@ -3,8 +3,8 @@
|
||||
set -euo pipefail
|
||||
ROOT="/home/xzq/5090/teamWorkspace/zh/PlantAI-rag-new"
|
||||
echo "== 启动 BFF (127.0.0.1:8090) =="
|
||||
(cd "$ROOT/sdk" && source ~/miniconda3/etc/profile.d/conda.sh && conda activate plantai-bff && \
|
||||
nohup uvicorn app.main:app --host 127.0.0.1 --port 8090 > /tmp/plantai-bff.log 2>&1 &)
|
||||
(cd "$ROOT/sdk" && \
|
||||
nohup /home/xzq/5090/teamWorkspace/zh/plantai-rag-new-venv/bin/python -m uvicorn app.main:app --host 127.0.0.1 --port 8090 > /tmp/plantai-bff.log 2>&1 &)
|
||||
echo "== 启动 Vite dev (127.0.0.1:5180) =="
|
||||
(cd "$ROOT/ui" && nohup npm run dev > /tmp/plantai-vite.log 2>&1 &)
|
||||
sleep 3
|
||||
|
||||
+6
-15
@@ -1,21 +1,12 @@
|
||||
#!/usr/bin/env bash
|
||||
# run.sh —— 本地起 BFF(ARCHITECTURE.md §3:127.0.0.1:8090,占用则退 8091)。
|
||||
# 用法:bash sdk/run.sh
|
||||
# run.sh —— 本地起 BFF(ARCHITECTURE.md §3:127.0.0.1:8090,占用则退 8091)。
|
||||
# 用法:bash sdk/run.sh
|
||||
# 2026-09-01 统一 Python:conda plantai-bff → plantai-rag-new-venv(py3.12.13)
|
||||
set -euo pipefail
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
PORT="${PORT:-8090}"
|
||||
PYTHON="${PLANTAI_BFF_PYTHON:-/home/xzq/5090/teamWorkspace/zh/plantai-rag-new-venv/bin/python}"
|
||||
|
||||
if ! command -v conda >/dev/null 2>&1; then
|
||||
echo "run.sh: 未找到 conda,尝试直接使用当前 python 运行" >&2
|
||||
exec python -m uvicorn app.main:app --host 127.0.0.1 --port "$PORT"
|
||||
fi
|
||||
|
||||
if ! conda env list | awk '{print $1}' | grep -qx "plantai-bff"; then
|
||||
echo "run.sh: conda 环境 plantai-bff 不存在" >&2
|
||||
echo " 创建:conda create -n plantai-bff python=3.11 -y && conda activate plantai-bff && pip install -e '.[dev]'" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
exec conda run --no-capture-output -n plantai-bff \
|
||||
python -m uvicorn app.main:app --host 127.0.0.1 --port "$PORT"
|
||||
[[ -x "$PYTHON" ]] || { echo "run.sh: 统一 venv 不可执行: $PYTHON" >&2; exit 1; }
|
||||
exec "$PYTHON" -m uvicorn app.main:app --host 127.0.0.1 --port "$PORT"
|
||||
|
||||
@@ -33,13 +33,17 @@ bash "$SCRIPT_DIR/compile/compile_methodology.sh" \
|
||||
bash "$SCRIPT_DIR/compile/compile_legacy.sh" \
|
||||
"$PROJECT_ROOT/agent/legacy-rag" "$BUILD_ROOT/compiled/legacy-rag" "$LEGACY_PYTHON"
|
||||
|
||||
# ---- 2. 双审计 ----
|
||||
# ---- 2. 双审计(各树用编译时的 Python——ABI 后缀必须匹配) ----
|
||||
echo "[2/6] 编译树审计"
|
||||
AUDIT="$SCRIPT_DIR/compile/tools/audit_compiled_tree.py"
|
||||
declare -A TREE_PY=( [sdk]="$SDK_PYTHON" [qa]="$QA_PYTHON" [methodology]="$METHODOLOGY_PYTHON" [legacy-rag]="$LEGACY_PYTHON" )
|
||||
for tree in sdk qa methodology legacy-rag; do
|
||||
"$SDK_PYTHON" "$AUDIT" --tree "$BUILD_ROOT/compiled/$tree" --project "$tree" --write-marker \
|
||||
py="${TREE_PY[$tree]}"
|
||||
"$py" "$AUDIT" --tree "$BUILD_ROOT/compiled/$tree" --project "$tree" --write-marker \
|
||||
| python3 -c "import json,sys; r=json.load(sys.stdin); print(f' $tree: ok={r[\"ok\"]} exts={r[\"extension_count\"]}'); sys.exit(0 if r['ok'] else 1)" \
|
||||
|| { echo "$tree 审计失败" >&2; exit 2; }
|
||||
"$py" "$AUDIT" --tree "$BUILD_ROOT/compiled/$tree" --project "$tree" --require-marker \
|
||||
>/dev/null || { echo "$tree marker 校验失败" >&2; exit 2; }
|
||||
done
|
||||
|
||||
# ---- 3. 冒烟(起服务探 /health,全 .so import 检查) ----
|
||||
|
||||
@@ -47,8 +47,8 @@ SECRETS_DIR=/home/xzq/5090/PlanAI-cooperate/hsj-workspace/encryption-test/server
|
||||
# OUT_DIR=/home/xzq/5090/PlanAI-cooperate/hsj-workspace/encryption-test/server/plantai_server_package/out/1.0.0
|
||||
|
||||
# 与目标部署环境 ABI 一致的 Python。
|
||||
PLANTAI_PYTHON=/home/xzq/miniconda3/envs/test4py311/bin/python
|
||||
QA_PYTHON=/home/xzq/miniconda3/envs/gfpy312/bin/python
|
||||
PLANTAI_PYTHON=/home/xzq/5090/teamWorkspace/zh/plantai-rag-new-venv/bin/python
|
||||
QA_PYTHON=/home/xzq/5090/teamWorkspace/zh/plantai-rag-new-venv/bin/python
|
||||
|
||||
# 供应商私钥口令文件,权限应为 600。
|
||||
SUPPLIER_KEY_PASSPHRASE_FILE=/home/xzq/5090/PlanAI-cooperate/hsj-workspace/encryption-test/server/plantai_server_package/secrets/private_key.pass
|
||||
|
||||
@@ -0,0 +1,130 @@
|
||||
aiofiles==25.1.0
|
||||
aiohappyeyeballs==2.6.2
|
||||
aiohttp==3.13.5
|
||||
aiosignal==1.4.0
|
||||
aiosqlite==0.22.1
|
||||
annotated-doc==0.0.5
|
||||
annotated-types==0.8.0
|
||||
anyio==4.14.2
|
||||
attrs==26.1.0
|
||||
biopython==1.87
|
||||
certifi==2026.7.22
|
||||
charset-normalizer==3.5.1
|
||||
click==8.4.2
|
||||
coverage==7.15.4
|
||||
Cython==3.2.8
|
||||
distro==1.9.0
|
||||
et_xmlfile==2.0.0
|
||||
faiss-cpu==1.14.3
|
||||
fastapi==0.141.1
|
||||
filelock==3.29.4
|
||||
frozenlist==1.8.0
|
||||
fsspec==2026.6.0
|
||||
greenlet==3.5.1
|
||||
grpcio==1.80.0
|
||||
h11==0.16.0
|
||||
h2==4.3.0
|
||||
hf-xet==1.5.1
|
||||
hpack==4.1.0
|
||||
httpcore==1.0.9
|
||||
httpcore2==2.12.0
|
||||
httptools==0.8.0
|
||||
httpx==0.28.1
|
||||
httpx-sse==0.4.3
|
||||
httpx2==2.12.0
|
||||
huggingface_hub==1.19.0
|
||||
hyperframe==6.1.0
|
||||
idna==3.19
|
||||
iniconfig==2.3.0
|
||||
Jinja2==3.1.6
|
||||
jiter==0.16.0
|
||||
joblib==1.5.3
|
||||
jsonpatch==1.33
|
||||
jsonpointer==3.1.1
|
||||
langchain==1.3.2
|
||||
langchain-classic==1.0.7
|
||||
langchain-community==0.4.2
|
||||
langchain-core==1.4.0
|
||||
langchain-huggingface==1.2.2
|
||||
langchain-protocol==0.0.16
|
||||
langchain-text-splitters==1.1.2
|
||||
langgraph==1.2.2
|
||||
langgraph-checkpoint==4.1.1
|
||||
langgraph-prebuilt==1.1.0
|
||||
langgraph-sdk==0.3.15
|
||||
langsmith==0.8.7
|
||||
loguru==0.7.3
|
||||
lxml==6.1.2
|
||||
markdown-it-py==4.2.0
|
||||
MarkupSafe==3.0.3
|
||||
mdurl==0.1.2
|
||||
mpmath==1.3.0
|
||||
multidict==6.7.1
|
||||
narwhals==2.25.0
|
||||
neo4j==6.2.0
|
||||
networkx==3.6.1
|
||||
numpy==2.4.6
|
||||
openai==3.3.1
|
||||
openpyxl==3.1.5
|
||||
orjson==3.11.9
|
||||
ormsgpack==1.12.2
|
||||
packaging==26.3
|
||||
pandas==3.0.5
|
||||
pluggy==1.6.0
|
||||
portalocker==3.2.0
|
||||
propcache==0.5.2
|
||||
protobuf==7.35.0
|
||||
pydantic==2.13.4
|
||||
pydantic-settings==2.15.0
|
||||
pydantic_core==2.46.4
|
||||
Pygments==2.21.0
|
||||
pymupdf==1.28.2
|
||||
pytest==9.1.1
|
||||
pytest-asyncio==1.4.0
|
||||
pytest-cov==7.1.0
|
||||
python-dateutil==2.9.0.post0
|
||||
python-docx==1.1.2
|
||||
python-dotenv==1.2.3
|
||||
python-multipart==0.0.32
|
||||
pytz==2026.3.post1
|
||||
PyYAML==6.0.3
|
||||
qdrant-client==1.18.0
|
||||
rank-bm25==0.2.2
|
||||
redis==8.0.0
|
||||
regex==2026.5.9
|
||||
requests==2.34.2
|
||||
requests-toolbelt==1.0.0
|
||||
respx==0.23.1
|
||||
rich==15.0.0
|
||||
safetensors==0.8.0
|
||||
scikit-learn==1.9.0
|
||||
scipy==1.17.1
|
||||
sentence-transformers==5.6.0
|
||||
setuptools==81.0.0
|
||||
shellingham==1.5.4
|
||||
six==1.17.0
|
||||
sniffio==1.3.1
|
||||
SQLAlchemy==2.0.50
|
||||
starlette==1.6.0
|
||||
sympy==1.14.0
|
||||
tenacity==9.1.4
|
||||
threadpoolctl==3.6.0
|
||||
tokenizers==0.22.2
|
||||
torch==2.13.0+cpu
|
||||
tqdm==4.67.3
|
||||
transformers==5.12.1
|
||||
truststore==0.10.4
|
||||
typer==0.25.1
|
||||
typing-inspection==0.4.4
|
||||
typing_extensions==4.16.0
|
||||
urllib3==2.7.0
|
||||
uuid_utils==0.16.0
|
||||
uvicorn==0.52.4
|
||||
uvloop==0.22.1
|
||||
watchfiles==1.2.0
|
||||
websockets==16.0
|
||||
wheel==0.47.0
|
||||
xlrd==2.0.1
|
||||
xxhash==3.7.0
|
||||
yarl==1.24.2
|
||||
zstandard==0.25.0
|
||||
+5
-5
@@ -6,11 +6,11 @@ VERSION=2.0.0
|
||||
PROJECT_ROOT=/home/xzq/5090/teamWorkspace/zh/PlantAI-rag-new
|
||||
|
||||
# 编译 Python 环境(ABI 各服务独立)
|
||||
SDK_PYTHON=/home/xzq/miniconda3/envs/plantai-bff/bin/python
|
||||
QA_PYTHON=/home/xzq/miniconda3/envs/gfpy312/bin/python
|
||||
METHODOLOGY_PYTHON=/home/xzq/miniconda3/envs/gfpy312/bin/python
|
||||
LEGACY_PYTHON=/home/xzq/miniconda3/envs/test4py311/bin/python # 仅编译;运行用 plantai-bff
|
||||
LEGACY_RUN_PYTHON=/home/xzq/miniconda3/envs/plantai-bff/bin/python
|
||||
SDK_PYTHON=/home/xzq/5090/teamWorkspace/zh/plantai-rag-new-venv/bin/python
|
||||
QA_PYTHON=/home/xzq/5090/teamWorkspace/zh/plantai-rag-new-venv/bin/python
|
||||
METHODOLOGY_PYTHON=/home/xzq/5090/teamWorkspace/zh/plantai-rag-new-venv/bin/python
|
||||
LEGACY_PYTHON=/home/xzq/5090/teamWorkspace/zh/plantai-rag-new-venv/bin/python
|
||||
LEGACY_RUN_PYTHON=/home/xzq/5090/teamWorkspace/zh/plantai-rag-new-venv/bin/python
|
||||
|
||||
# KB(定版后启用 SKIP_KB=0)
|
||||
SKIP_KB=1
|
||||
|
||||
Reference in New Issue
Block a user