Files
PlantAI-dev/memory/2026-04-04.md
T
2026-08-21 11:06:49 +08:00

3.7 KiB
Executable File

2026-04-04 项目记录 - bbav20311

项目信息

  • 项目: bbav20311 (BotanicalBaseAgent)
  • 路径: /home/xia-lab/wutx/00test/bbav20311
  • 记录时间: 2026-04-04

今日修订内容

1. 前端停止执行按钮 ✅

需求: 添加停止执行按钮,用户可随时取消正在运行的分析

修改文件: /home/xia-lab/wutx/00test/bbav20311/apps/web/vue3/index.html

修改内容:

  • 左侧控制面板:执行按钮下方添加红色"⏹ 停止执行"按钮(执行时显示)
  • 右侧结果面板:执行状态卡片添加"⏹ 停止"按钮
  • 新增数据变量:isExecuting, isStopping, currentTaskId
  • 新增方法:stopExecution() - 调用 /api/agent/cancel/{task_id} 停止任务

按钮显示逻辑:

<!-- 执行按钮 -->
<el-button :disabled="!selectedStage || isExecuting" :loading="isExecuting">
    {{ isExecuting ? '⏳ 执行中...' : '🚀 执行分析' }}
</el-button>

<!-- 停止按钮 -->
<el-button v-if="isExecuting" type="danger" @click="stopExecution">
    {{ isStopping ? '⏹ 正在停止...' : '⏹ 停止执行' }}
</el-button>

2. RNA-seq 文件检测修复 ✅

问题: Agent执行时(对话框输入)找不到 samples.yaml,但手动执行可以

原因:

  • 对话框执行时 session_id 是 "session_xxx" 格式,不是 "job_xxx" 格式
  • 原代码只查找最新的 job_ 目录,没有考虑配置文件位置

修改文件: /home/xia-lab/wutx/00test/bbav20311/gfa_core/mas/core/orchestrator.py

修复内容:

  1. 新增辅助方法 _get_input_dir():
def _get_input_dir(self, session_id: str, stage_name: str = "") -> tuple[Path, str]:
    """获取输入目录,优先查找包含samples.yaml的job目录"""
  1. 应用到以下方法:
    • _execute_rnaseq_qc (RNA-QC)
    • _execute_rnaseq_align (RNA-ALN)
    • _execute_rnaseq_quant (RNA-QUAN)
    • _execute_rnaseq_de (RNA-DE)
    • _execute_rnaseq_enrich (RNA-ENRICH)
    • _execute_kaks (KaKs)

查找逻辑:

  • 如果 session_id 不是 job_ 开头,查找所有 job_ 目录
  • 优先选择包含 samples.yaml 或 group_sample.yaml 的目录
  • 如果没有配置文件,使用最新的 job 目录

3. RNA-seq 缓存结果问题修复 ✅

问题: 对话框执行15秒就返回"完成",但实际执行需要15分钟

原因:

  • 代码逻辑 if has_results 只要结果文件存在就返回成功
  • 之前执行的结果文件还在,系统直接返回缓存结果

修改文件: /home/xia-lab/wutx/00test/bbav20311/gfa_core/mas/core/orchestrator.py

修复内容:

  1. 严格的成功判断:
# 修改前:只要结果文件存在就算成功
if has_results:

# 修改后:必须执行成功且结果文件存在
execution_success = (result.returncode == 0) and has_results
if execution_success:
  1. 结果文件时效检查:
# 如果结果文件超过24小时,删除旧结果重新执行
if age_hours > 24:
    shutil.rmtree(qc_dir)
    qc_dir.mkdir(parents=True, exist_ok=True)

修改文件清单

文件路径 修改类型 说明
apps/web/vue3/index.html 修改 添加停止执行按钮、状态管理
gfa_core/mas/core/orchestrator.py 修改 添加_get_input_dir()方法、修复RNA-seq执行逻辑、修复缓存问题

待验证

  • 停止按钮在前端正确显示
  • 点击停止按钮能正确取消任务
  • 对话框执行RNA-seq能正确找到samples.yaml
  • RNA-seq执行时间符合预期(约15分钟)

相关记录

  • 昨日记录: memory/2026-04-03.md - Celery集成修订
  • 项目索引: MEMORY.md

记录时间: 2026-04-04 22:57