Files
PlantAI-dev/memory/2026-04-02.md
T
potaserandClaude Opus 5 7097ecdec5 Add memory directory
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-07 09:39:30 +08:00

6.7 KiB
Executable File
Raw Blame History

2026-04-02 - bbav20311 意图识别与RAG回复修复

项目信息

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

修复内容

1. 意图识别优化

问题: "帮我执行motif分析"被错误识别为基因家族鉴定

修复文件: /gfa_core/mas/core/orchestrator.py

修改内容:

  • 在_analysis_node中添加LLM意图识别
  • 支持识别以下分析类型:
    • identify: 基因家族鉴定
    • phylogeny: 进化树构建
    • motif: Motif分析
    • domain: 结构域分析
    • structure: 基因结构分析
    • promoter: 启动子分析
    • synteny: 共线性分析

代码片段:

# 使用LLM进行意图识别
intent_prompt = """你是一个基因家族分析系统的意图识别器...
分析类型(必须是以下之一):
- identify: 基因家族鉴定
- phylogeny: 进化树构建
- motif: Motif分析
...""")

2. RAG回复优化

问题: 回复泄露了CLI命令和系统内部信息

修复文件: /gfa_core/mas/core/orchestrator.py

修改内容:

  • 修改knowledge节点的prompt
  • 添加系统提示,禁止暴露内部信息
  • 明确要求只回答用户问题本身

修改前:

prompt = f"""基于以下参考资料回答问题...
参考资料: {context}
问题: {query}
请提供详细、准确的回答:"""

修改后:

prompt = f"""你是一个基因家族分析专家...
参考资料: {context}
用户问题: {query}
请提供简洁、专业的回答。不要提及任何系统内部信息、代码、CLI命令或文件路径。"""

messages = [
    LLMMessage(role="system", content="你是BotanicalBaseAgent基因家族分析系统的知识助手。只回答用户问题,不暴露任何系统内部信息。"),
    LLMMessage(role="user", content=prompt)
]

验证结果(2026-04-02 10:00)

服务状态

组件 状态
Redis ✅ 运行中 (PID: 1460189)
Celery Worker ✅ 运行中 (PID: 2216242)
FastAPI ✅ 运行中 (前台模式稳定)

意图识别验证 ✅

测试用例: "帮我执行motif分析"

结果:

[DEBUG] Intent analysis: type=motif, family=, species=
stage: motif      ✅ 正确识别
agent: analysis   ✅ 走到analysis节点

修复内容:

  1. _analysis_node 中添加LLM意图识别
  2. _route_query 添加motif/phylogeny/domain等关键词支持
  3. 优先使用_router_node设置的mode进行路由

RAG回复验证 ✅

测试用例: "什么是基因家族鉴定"

结果:

  • 回复内容专业、面向用户
  • contains_cli: False — 无CLI命令泄露
  • 无文件路径、无代码、无系统内部信息

待办事项(全部完成 ✅)

  1. ✅ 重新启动Celery Worker
  2. ✅ 前端测试修复后的功能
  3. ✅ 验证意图识别准确性
  4. ✅ 验证RAG回复不再泄露系统信息

启动命令

# 启动Celery Worker
cd /home/xia-lab/wutx/00test/bbav20311
celery -A celery_app worker --loglevel=info --concurrency=1

# 启动FastAPI服务
cd /home/xia-lab/wutx/00test/bbav20311/apps/web/vue3
python3 main.py

关键修复代码

1. _route_query 路由优化

def _route_query(self, state: GraphState) -> str:
    query = state["query"].lower()
    mode = state.get("mode", "faq")
    
    # 优先使用router节点设置的mode
    if mode == "analysis":
        return "analysis"
    if mode == "faq":
        return "knowledge"

    analysis_keywords = [
        "鉴定", "分析", "帮我", "执行", "运行",
        "identify", "analyze", "analysis", "run", "execute",
        "motif", "phylogeny", "进化树", "结构域", "domain",
        "启动子", "promoter", "共线性", "synteny",
    ]

    for keyword in analysis_keywords:
        if keyword in query:
            return "analysis"

    return "knowledge"

2. _analysis_node 意图识别

# 使用LLM进行意图识别
intent_prompt = """分析用户的请求,提取以下信息:
1. 分析类型(identify/phylogeny/motif/domain/structure/promoter/synteny)
2. 基因家族名称
3. 物种
请以JSON格式回复..."""

3. 意图识别扩展(2026-04-02 17:00)

问题: RNA-Seq子阶段、Combo、PEP等分析无法识别

修复文件: /gfa_core/mas/core/orchestrator.py

修改内容:

  • 扩展分析类型到19种:identify, phylogeny, motif, domain, structure, promoter, synteny, interspecies_synteny, karyotype, ppi, kaks, expression, enrichment, pep, combo, rna_seq_qc, rna_seq_mapping, rna_seq_quantification, trend, wgcna
  • 添加50+生物信息学常用术语关键词
  • 完善意图识别prompt,覆盖所有分析类型别名

4. PPI分析修复(2026-04-02 21:00 - 23:00)

问题: PPI分析失败,缺少ortholog_pairs.txt映射文件

修复文件:

  • /apps/web/pipeline_backend.py
  • /apps/cli/run_ortholog.py(新增)

修改内容:

  1. 自动查找种间共线性结果: 优先使用interspecies_synteny/analysis/Ft.Ath.anchors
  2. 自动格式转换: 将anchors格式转换为ortholog_pairs格式
  3. 精准筛选: 只筛选当前基因家族成员的映射关系
  4. 格式修正: 修正输出格式为苦荞ID 拟南芥ID(符合PPI脚本期望)

关键代码:

# 从种间共线性结果中筛选当前基因家族的映射
if mapping_file and mapping_file.name.endswith(".anchors"):
    gene_id_file = final_dir / f"{prefix}.final_members.id"
    gene_family_ids = set()
    # 读取基因家族成员...
    
    # 只保留当前基因家族成员的映射
    if ft_gene in gene_family_ids:
        f_out.write(f"{ft_gene}\t{ath_gene}\n")  # 苦荞ID 拟南芥ID

5. 种间共线性分析修复(2026-04-02 21:00)

问题: 种间共线性分析被错误识别为种内共线性

修复文件: /gfa_core/mas/core/orchestrator.py

修改内容:

  • 将interspecies改为interspecies_synteny以匹配pipeline stage名称
  • 添加stage名称映射:interspecies -> interspecies_synteny

6. 语法错误修复(2026-04-02 21:12)

问题: IndentationError: unexpected indent

修复文件: /gfa_core/mas/core/orchestrator.py

修改内容:

  • 删除重复的guidance_map定义
  • 修复缩进错误

修复文件清单

文件路径 修改类型 说明
/gfa_core/mas/core/orchestrator.py 修改 意图识别、路由、RAG回复优化
/apps/web/pipeline_backend.py 修改 PPI分析自动查找/生成ortholog映射
/apps/cli/run_ortholog.py 新增 同源基因识别脚本(BLASTP)

记录时间: 2026-04-02 01:08
更新时间: 2026-04-03 01:03