1. main.py 指向了新extension_stage_lightweight.api接口
2. 优化了start_*_9000.sh启动时优先根据env配置启动的逻辑 3. 增加了一键启动脚本manage_plantai.sh,可以由Agent通过promot直接说启动、重启等进行服务的启动和关闭及重启
This commit is contained in:
@@ -4191,6 +4191,9 @@ def _attach_agent_manifest_status(task: Dict) -> None:
|
||||
print(f"[API DEBUG] Failed to attach agent manifest status: {e}")
|
||||
|
||||
app = FastAPI(title="BotanicalBaseAgent API")
|
||||
from gfa_core.extension_stage_lightweight.api import create_lightweight_extension_router
|
||||
|
||||
app.include_router(create_lightweight_extension_router())
|
||||
# MainAgent runtime state. Analysis planning and execution remain owned by
|
||||
# the original IntentAgent/PlanningAgent/frontend flow below.
|
||||
llm_manager = None
|
||||
|
||||
Executable
+161
@@ -0,0 +1,161 @@
|
||||
#!/bin/bash
|
||||
# PlantAI-dev 9000 服务管理脚本
|
||||
# 用法: bash manage_plantai.sh {start|stop|restart|status}
|
||||
#
|
||||
# 项目: /home/xzq/5090/teamWorkspace/zh/PlantAI-dev
|
||||
# 端口: 9000 (web), Redis DB 14 (queue prefix: plantai_dev_9002)
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
# Conda 环境:启动脚本内部也依赖这个环境
|
||||
CONDA_ENV="${CONDA_ENV:-/home/xzq/miniconda3/envs/test4py311}"
|
||||
export PATH="$CONDA_ENV/bin:$PATH"
|
||||
|
||||
# 项目配置(与 .env 和启动脚本保持一致)
|
||||
PROJECT_DIR="/home/xzq/5090/teamWorkspace/zh/PlantAI-dev"
|
||||
WEB_PORT="9000"
|
||||
QUEUE_PREFIX="plantai_dev_9002"
|
||||
WEB_LOG="/tmp/plantai_9000.log"
|
||||
CELERY_LOG="/tmp/celery_9000.log"
|
||||
|
||||
red() { echo -e "\033[31m$*\033[0m"; }
|
||||
green(){ echo -e "\033[32m$*\033[0m"; }
|
||||
cyan() { echo -e "\033[36m$*\033[0m"; }
|
||||
|
||||
status() {
|
||||
echo ""
|
||||
cyan "=== PlantAI-dev 9000 服务状态 ==="
|
||||
echo ""
|
||||
|
||||
# Web 服务
|
||||
WEB_PID=$(ss -tlnp 2>/dev/null | grep ":$WEB_PORT " | grep -oP 'pid=\K\d+' || true)
|
||||
if [ -n "${WEB_PID:-}" ]; then
|
||||
green "[✓] Web 服务运行中 (端口 $WEB_PORT, PID $WEB_PID)"
|
||||
else
|
||||
red "[✗] Web 服务未启动 (端口 $WEB_PORT)"
|
||||
fi
|
||||
|
||||
# Redis
|
||||
if redis-cli ping > /dev/null 2>&1; then
|
||||
green "[✓] Redis 运行中 (localhost:6379)"
|
||||
else
|
||||
red "[✗] Redis 未启动"
|
||||
fi
|
||||
|
||||
# Celery workers
|
||||
CELERY_COUNT=$(pgrep -fc "$QUEUE_PREFIX" || echo 0)
|
||||
if [ "$CELERY_COUNT" -gt 0 ]; then
|
||||
green "[✓] Celery workers 运行中 (${CELERY_COUNT} 进程, 队列前缀: $QUEUE_PREFIX)"
|
||||
echo " Worker 列表:"
|
||||
ps aux | grep "$QUEUE_PREFIX" | grep -v grep | grep -oP "queues=\K\S+" | sort | while read q; do
|
||||
echo " - $q"
|
||||
done
|
||||
else
|
||||
red "[✗] Celery workers 未启动 (队列前缀: $QUEUE_PREFIX)"
|
||||
fi
|
||||
echo ""
|
||||
}
|
||||
|
||||
stop() {
|
||||
echo ""
|
||||
cyan "=== 停止 PlantAI-dev 9000 服务 ==="
|
||||
echo ""
|
||||
|
||||
# 停止 Web 服务
|
||||
WEB_PID=$(ss -tlnp 2>/dev/null | grep ":$WEB_PORT " | grep -oP 'pid=\K\d+' || true)
|
||||
if [ -n "${WEB_PID:-}" ]; then
|
||||
echo "正在停止 Web 服务 (PID $WEB_PID)..."
|
||||
kill "$WEB_PID" 2>/dev/null || true
|
||||
sleep 1
|
||||
# 如果还没死,强制 kill
|
||||
if ss -tlnp 2>/dev/null | grep -q ":$WEB_PORT"; then
|
||||
kill -9 "$WEB_PID" 2>/dev/null || true
|
||||
fi
|
||||
green "[✓] Web 服务已停止"
|
||||
else
|
||||
echo "[ ] Web 服务未运行"
|
||||
fi
|
||||
|
||||
# 停止 Celery workers
|
||||
CELERY_PIDS=$(pgrep -f "$QUEUE_PREFIX" 2>/dev/null) || true
|
||||
if [ -n "${CELERY_PIDS:-}" ]; then
|
||||
echo "正在停止 Celery workers..."
|
||||
echo "$CELERY_PIDS" | xargs -r kill 2>/dev/null || true
|
||||
sleep 2
|
||||
# 清理残留
|
||||
REMAIN=$(pgrep -f "$QUEUE_PREFIX" 2>/dev/null) || true
|
||||
if [ -n "${REMAIN:-}" ]; then
|
||||
echo " 强制清理残留进程..."
|
||||
echo "$REMAIN" | xargs -r kill -9 2>/dev/null || true
|
||||
fi
|
||||
green "[✓] Celery workers 已停止"
|
||||
else
|
||||
echo "[ ] Celery workers 未运行"
|
||||
fi
|
||||
echo ""
|
||||
}
|
||||
|
||||
start() {
|
||||
echo ""
|
||||
cyan "=== 启动 PlantAI-dev 9000 服务 ==="
|
||||
echo ""
|
||||
|
||||
# 检查是否已在运行
|
||||
if ss -tlnp 2>/dev/null | grep -q ":$WEB_PORT"; then
|
||||
red "[!] 端口 $WEB_PORT 已被占用,请先停止服务"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! redis-cli ping > /dev/null 2>&1; then
|
||||
red "[!] Redis 未运行,请先启动 Redis"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd "$PROJECT_DIR"
|
||||
|
||||
# 启动 Celery workers
|
||||
echo "正在启动 Celery workers..."
|
||||
nohup bash start_celery_9000.sh > "$CELERY_LOG" 2>&1 &
|
||||
sleep 3
|
||||
CELERY_COUNT=$(pgrep -fc "$QUEUE_PREFIX" || echo 0)
|
||||
if [ "$CELERY_COUNT" -gt 0 ]; then
|
||||
green " [✓] Celery workers 已启动 (${CELERY_COUNT} 进程)"
|
||||
else
|
||||
red " [✗] Celery workers 启动失败,查看 $CELERY_LOG"
|
||||
fi
|
||||
|
||||
# 启动 Web 服务
|
||||
echo "正在启动 Web 服务..."
|
||||
nohup bash start_plantai_9000.sh > "$WEB_LOG" 2>&1 &
|
||||
sleep 3
|
||||
if ss -tlnp 2>/dev/null | grep -q ":$WEB_PORT"; then
|
||||
green " [✓] Web 服务已启动 (http://0.0.0.0:$WEB_PORT)"
|
||||
else
|
||||
red " [✗] Web 服务启动失败,查看 $WEB_LOG"
|
||||
fi
|
||||
|
||||
# 最终状态
|
||||
echo ""
|
||||
echo "日志文件:"
|
||||
echo " Web: $WEB_LOG"
|
||||
echo " Celery: $CELERY_LOG"
|
||||
echo " Worker: $PROJECT_DIR/logs/celery_plantai_dev_9000/"
|
||||
echo ""
|
||||
}
|
||||
|
||||
restart() {
|
||||
stop
|
||||
sleep 1
|
||||
start
|
||||
}
|
||||
|
||||
case "${1:-status}" in
|
||||
start) start ;;
|
||||
stop) stop ;;
|
||||
restart) restart ;;
|
||||
status) status ;;
|
||||
*)
|
||||
echo "用法: bash manage_plantai.sh {start|stop|restart|status}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
@@ -25,13 +25,13 @@ fi
|
||||
if [ -n "$EXTERNAL_BBAV5_WORKER_NAME_PREFIX" ]; then
|
||||
BBAV5_WORKER_NAME_PREFIX="$EXTERNAL_BBAV5_WORKER_NAME_PREFIX"
|
||||
fi
|
||||
if [ -z "$EXTERNAL_BBAV5_QUEUE_PREFIX" ]; then
|
||||
if [ -z "${BBAV5_QUEUE_PREFIX-}" ]; then
|
||||
BBAV5_QUEUE_PREFIX="plantai_dev_9000"
|
||||
fi
|
||||
if [ -z "$EXTERNAL_BBAV5_REDIS_URL" ]; then
|
||||
if [ -z "${BBAV5_REDIS_URL-}" ]; then
|
||||
BBAV5_REDIS_URL="redis://localhost:6379/10"
|
||||
fi
|
||||
if [ -z "$EXTERNAL_BBAV5_CELERY_LOG_DIR" ]; then
|
||||
if [ -z "${BBAV5_CELERY_LOG_DIR-}" ]; then
|
||||
BBAV5_CELERY_LOG_DIR="logs/celery_plantai_dev_9000"
|
||||
fi
|
||||
if [ -z "$EXTERNAL_BBAV5_WORKER_NAME_PREFIX" ]; then
|
||||
|
||||
@@ -15,12 +15,17 @@ export PATH="$CONDA_ENV/bin:$PATH"
|
||||
# the caller's shell; GWAS/other sandboxes have dedicated restart scripts.
|
||||
export BBAV5_PROJECT_ROOT="$SCRIPT_DIR"
|
||||
export PLANTAI_PROJECT_ROOT="$SCRIPT_DIR"
|
||||
if [ -f "$SCRIPT_DIR/.env" ]; then
|
||||
set -a
|
||||
. "$SCRIPT_DIR/.env"
|
||||
set +a
|
||||
fi
|
||||
export BBAV5_PROJECT_ENV_FILE="${BBAV5_PROJECT_ENV_FILE:-$SCRIPT_DIR/.env}"
|
||||
export BBAV5_LIGHTWEIGHT_EXTENSION_STORE="${BBAV5_LIGHTWEIGHT_EXTENSION_STORE:-$SCRIPT_DIR/.runtime/lightweight-extension/store}"
|
||||
export BBAV5_LIGHTWEIGHT_INPUT="${BBAV5_LIGHTWEIGHT_INPUT:-$SCRIPT_DIR/input}"
|
||||
export BBAV5_LIGHTWEIGHT_WORKSPACE="${BBAV5_LIGHTWEIGHT_WORKSPACE:-$SCRIPT_DIR/workspace}"
|
||||
export BBAV5_QUEUE_PREFIX="plantai_dev_9000"
|
||||
export BBAV5_REDIS_URL="redis://localhost:6379/10"
|
||||
export BBAV5_QUEUE_PREFIX="${BBAV5_QUEUE_PREFIX:-plantai_dev_9000}"
|
||||
export BBAV5_REDIS_URL="${BBAV5_REDIS_URL:-redis://localhost:6379/10}"
|
||||
export PLANTAI_WEB_PORT="9000"
|
||||
export GENE_FAMILY_MAS_API="http://127.0.0.1:7926"
|
||||
export DUAL_KB_QA_BASE_URL="http://127.0.0.1:7926"
|
||||
|
||||
Reference in New Issue
Block a user