Files
PlantAI-rag-new/docs/team/cases_bioflow_intent.md
T

7.7 KiB
Raw Blame History

生信意图分流词典与用例表(唯一事实源)

冻结版本 1.0 | 作者 T1(2026-09-05)| 前后端同表双跑:A3 ui/src/utils/intent.js 与 A2 后端 chat 分流共用本表;任何改动需 T1 更新本文件并经 TL 确认。需求来源:PRD.md FR-BIO-001/FR-BIO-023/FR-BIO-026。

1. 路由签名

route(text, has_attachments, has_active_artifact, has_bioflow_context) -> "qa" | "docgen" | "edit" | "export" | "bioflow" | "bioflow_qa"

2. 判定顺序(按优先级从上到下,命中即返回)

1. export(需 has_active_artifact == True)

text 含任一 EXPORT_WORD 且含任一 FORMAT_WORD(沿用 docgen 词典:EXPORT_WORD=[导出,转成,转为,转换成,下载成,输出为,存为,转pdf,转word];FORMAT_WORD=[pdf,docx,doc,word] 小写不敏感)。不满足则继续向下。

2. edit(需 has_active_artifact == True)

text 含任一 EDIT_WORD=[改,修改,调整,删,删除,加一段,补充,润色,缩写,扩写,重写,改写,优化,加个,增加一段],且不含任一 CHART_WORD(见下)。含 CHART_WORD 时跳过本规则(图表调整走生信 FR-BIO-019)。不满足则继续向下。

3. docgen(写文档意图)

text 含任一 WRITE_VERB 且含任一 DOC_TYPE(沿用 docgen 词典全表)。命中→docgen。

4. docgen(附件信号)

has_attachments == True 且 text 含任一 WRITE_VERB。命中→docgen。

5. bioflow_qa(流程咨询,需 has_bioflow_context == True,即当前会话已有生信任务/生信对话上下文)

text 含任一 FLOW_QA_WORD 且不含任一 ANALYZE_VERB+对象组合:

  • FLOW_QA_WORD = [需要什么输入, 有什么输入, 输入是什么, 需要什么参数, 参数是什么, 什么参数, 怎么设置, 如何设置, 什么软件, 用什么软件, 前置条件, 介绍, 是什么, 怎么跑, 怎么做] 命中→bioflow_qa(生信流内流程咨询,走 vstore flow_docs 检索+引用,不新建任务)。

6. bioflow(生信分析意图)

同时满足下面 A 与 B(或 C)即命中:

  • A. text 含任一 ANALYZE_VERB = [跑, 跑一下, 分析, 鉴定, 识别, 研究, 做个, 做一个, 做一下, 执行, 运行](小写不敏感;含子串即算)
  • B. text 含任一 FAMILY_NAME 或 ANALYSIS_OBJECT(见第 3 节词典,小写不敏感)
  • C. 存档复用句式:text 含任一 REUSE_PHRASE = [存档任务的方法, 存档的方法] 且含任一 ANALYZE_VERB 且含任一 FAMILY_NAME 或 ANALYSIS_OBJECT(如「用 XXX 存档任务的方法帮我跑水稻 SPL 家族鉴定」;复用的方法名 = REUSE_PHRASE 之前最近的 3-20 字符片段,如 XXX) 命中→bioflow;否则继续向下。

7. 其余一律 "qa"(漏判安全:不命中绝不进生信流)

3. 生信词典(两表共用)

  • FAMILY_NAME(基因家族名,小写比较)= [spl, sbp, mads, mads-box, madsbox, wrky, nac, myb, bzip, bhlh, ap2, erf, gras, tcp, hd-zip, hdzip, arf, aux, iaa, dof, gata, hsf, lbd, lob, trihelix, e2f, cpp, nf-y, nfy, c2h2, zf-hd, zfhd, far1, frs, hb, wox, pin, mate, abc, pp2c, snrk, cdpk, mapk, rlck, nbs, lrr, nlr, tps, cyp, gst, ugt, 转录因子家族, 基因家族]
  • ANALYSIS_OBJECT(分析对象,小写比较)= [rna-seq, rnaseq, rna-seq, 转录组, 差异表达, wgs, 全基因组, 变异检测, 全基因组测序, gwas, 关联分析, 全基因组关联, 群体, 群体遗传, 遗传多样性, 进化, 系统发育, 选择性清除, 群体结构, 拷贝数变异, 基因预测, 基因注释, 结构注释, 功能注释, 宏基因组]
  • CHART_WORD(图表调整词,供 edit 规则排除)= [图表, 图颜色, 颜色换成, 图改成, 柱状图, 热图, 火山图, 曼哈顿图, 韦恩图, 气泡图, 散点图, 折线图, 改成红色, 换成蓝色, 颜色]

4. 用例表(40 条,前端 intent.js 与后端分流同表双跑)

# 输入 text 附件 活动文档 生信上下文 期望
1 帮我跑水稻 SPL 家族鉴定 否 否 否 bioflow
2 跑一下拟南芥 MADS-box 家族分析 否 否 否 bioflow
3 请帮我鉴定水稻 SPL 家族 否 否 否 bioflow
4 识别玉米 bZIP 家族成员 否 否 否 bioflow
5 帮我研究一下水稻 SPL 基因家族 否 否 否 bioflow
6 分析小麦 WRKY 转录因子家族 否 否 否 bioflow
7 做个大豆 NAC 家族分析 否 否 否 bioflow
8 跑 SPL 家族 否 否 否 bioflow
9 水稻 SPL 家族,帮我跑 否 否 否 bioflow
10 基因家族鉴定:水稻 SPL 否 否 否 bioflow
11 帮我跑水稻叶片 RNA-seq 差异表达分析 否 否 否 bioflow
12 帮我做水稻全基因组变异检测 否 否 否 bioflow
13 帮我跑水稻产量性状 GWAS 关联分析 否 否 否 bioflow
14 什么是基因家族? 否 否 否 qa
15 帮我跑一下 否 否 否 qa
16 SPL 家族 否 否 否 qa
17 今天天气不错 否 否 否 qa
18 跑 SPL 家族鉴定需要准备什么输入? 否 否 否 qa(无生信上下文漏判安全)
19 帮我跑一个数据分析 否 否 否 qa
20 你好呀 否 否 否 qa
21 (空字符串) 否 否 否 qa
22 帮我跑香蕉 XYK 家族鉴定 否 否 否 qa(XYK 不在家族词典)
23 跑水稻 spl 家族鉴定 否 否 否 bioflow(家族名大小写不敏感)
24 Please run rice SPL family identification 否 否 否 bioflow
25 帮我跑(水稻 SPL 家族)鉴定! 否 否 否 bioflow
26 用 XXX 存档任务的方法帮我跑水稻 SPL 家族鉴定 否 否 否 bioflow(复用意图,方法名=XXX)
27 根据 XXX 存档任务的方法帮我跑一下玉米 bZIP 否 否 否 bioflow(复用)
28 参考 XXX 存档的方法再跑一个水稻 SPL 否 否 否 bioflow(复用)
29 用《XXX》存档任务的方法帮我跑小麦 WRKY 家族 否 否 否 bioflow(复用,方法名=XXX)
30 用 XXX 存档任务的方法 否 否 否 qa(无目标任务词)
31 用 XXX 存档任务的方法帮我跑 yyy 否 否 否 qa(yyy 无家族/对象匹配,漏判安全)
32 帮我生成一份水稻 SPL 家族分析报告 否 否 否 docgen(docgen 优先于 bioflow)
33 帮我写一篇水稻基因家族研究论文 否 否 否 docgen
34 导出成 PDF 否 是 否 export
35 把这句话改成红色 否 是 否 edit(无图表词)
36 xxx 图表颜色换成红色 否 是 否 bioflow(图表词,走 FR-BIO-019)
37 identify 需要什么输入 否 否 是 bioflow_qa(不新建任务)
38 帮我总结一下这个问题的要点 否 否 否 qa
39 写一段水稻基因的介绍 否 否 否 qa(介绍在 docgen 排除表)
40 跑水稻 SPL 家族鉴定 否 是 否 bioflow(活动文档不改判定)

5. 实现注意(前后端一致)

  1. 判定全部为纯文本子串匹配(小写化后),不依赖 LLM;命中即返回,顺序不可调换。
  2. 复用方法名提取:REUSE_PHRASE 命中时,取 REUSE_PHRASE 之前最近的连续 3-20 字符(去空白与书名号)为方法名,随路由结果一并返回。
  3. bioflow_qa 仅在 has_bioflow_context=true 时生效;无上下文时同类句子一律 qa(漏判安全)。
  4. 边界约定:文本长度 ≤1 或纯空白 → qa;文本 >2000 字符 → 按截断后前 2000 字符判定。
  5. 本词典为唯一事实源:前端 utils/intent.js 与后端分流实现必须与本表逐条双跑一致(同表双跑由 L3/L2 用例 TC-BIO-INTENT-001~047 执行)。