# 生信意图分流词典与用例表(唯一事实源) > 冻结版本 1.1(2026-09-07 收窄)| 作者 T1 初版 1.0,TL 于 2026-09-07 按用户反馈收窄更新| 前后端同表双跑:A3 ui/src/utils/intent.js 与 A2 后端 chat 分流共用本表;任何改动需更新本文件并经 TL 确认。需求来源:PRD.md FR-BIO-001/FR-BIO-023/FR-BIO-026。 > > **v1.1 变更动机(用户 2026-09-07 反馈)**:不是所有对话都走生信流程编排,只有用户明确说了「用 xxx 进行分析」或「帮我分析 xxxxx」才是生信流程;其余问答类(如「水稻 SPL 基因家族的最新研究进展有哪些?」)必须走原正常问答流程。v1.0 规则 6「分析动词+家族/对象」过宽(「研究」+「SPL 家族」命中问答句),v1.1 将命中通道收窄为三条:任务动词+对象、前缀分析句式、分析链句式;并新增疑问引导词与问答主题词两道拦截。 ## 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: - FLOW_QA_WORD = [需要什么输入, 有什么输入, 输入是什么, 需要什么参数, 参数是什么, 什么参数, 怎么设置, 如何设置, 什么软件, 用什么软件, 前置条件, 介绍, 是什么, 怎么跑, 怎么做] 命中→bioflow_qa(生信流内流程咨询,走 vstore flow_docs 检索+引用,不新建任务)。 ### 5b. 流程咨询句式(无上下文)→ qa(漏判安全,用例表 #18) ### 5c. 疑问引导词拦截(v1.1) text 含任一 QUESTION_WORD = [什么, 怎么, 如何, 哪些, 哪个, 什么软件] 且不含 REUSE_PHRASE → qa。 「水稻 SPL 家族怎么跑分析」类问句一律 qa;复用句式豁免(复用判定优先)。 ### 5d. 问答主题词拦截(v1.1) text 含任一 QA_TOPIC = [研究进展, 研究现状, 研究热点, 最新研究, 最新进展, 最新成果, 研究成果, 研究趋势, 综述, 进展] → qa。 「帮我分析水稻 SPL 家族的最新研究进展」也 qa(主题句优先于分析指令)。不含「研究」单字——「帮我研究一下水稻 SPL 家族」是分析指令(用例表 #5 保持 bioflow)。 ### 6. bioflow(生信分析意图,v1.1 三通道,任一命中即 bioflow) - **A. 任务动词 + 对象**:text 含任一 TASK_VERB = [跑, 跑一下, 分析, 鉴定, 识别, 做个, 做一个, 做一下, 研究一下, 执行, 运行, run, identify] 且含任一 FAMILY_NAME 或 ANALYSIS_OBJECT。注意:裸「做」「研究」不在 TASK_VERB(v1.0 曾含),已移入 CHAIN_VERB——「研究」+ 家族名不再直接命中(「SPL 家族最新研究进展」走 qa)。 - **B. 前缀分析句式(v1.1)**:text 含前缀 [帮我, 请帮我, 请你, 帮我分析, 请帮我分析] + 链动词 + 宾语对象(家族名 或 分析对象)。「帮我分析水稻 SPL 家族」→ bioflow;「帮我研究一下水稻 SPL 基因家族」→ bioflow(补语「一下」容许);「帮我做水稻全基因组变异检测」→ bioflow(用例表 #12);「帮我看看水稻 SPL 家族」→ qa(「看」非链动词,漏判安全)。 - **C. 存档复用句式**:text 含任一 REUSE_PHRASE = [存档任务的方法, 存档的方法] 且含任一 TASK_VERB 且含任一 FAMILY_NAME 或 ANALYSIS_OBJECT(如「用 XXX 存档任务的方法帮我跑水稻 SPL 家族鉴定」;复用的方法名 = REUSE_PHRASE 之前最近的 3-20 字符片段,如 XXX)。 - **D. 分析链句式(v1.1 附加通道)**:text 含链动词 CHAIN_VERB = [分析, 研究, 做, 跑](全词边界匹配,「关联分析」不被「分析」误拆)且其后含 ANALYSIS_OBJECT(如「什么软件做全基因组注释」已被 5c 拦截;「帮我分析水稻叶片 RNA-seq」命中)。 命中→bioflow;否则继续向下。 ### 7. 其余一律 "qa"(漏判安全:不命中绝不进生信流) ## 3. 生信词典(两表共用,v1.1) - 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 规则排除)= [图表, 图颜色, 颜色换成, 图改成, 柱状图, 热图, 火山图, 曼哈顿图, 韦恩图, 气泡图, 散点图, 折线图, 改成红色, 换成蓝色, 颜色] - **TASK_VERB(v1.1 任务动词)** = [跑, 跑一下, 分析, 鉴定, 识别, 做个, 做一个, 做一下, 研究一下, 执行, 运行, run, identify] - **CHAIN_VERB(v1.1 链动词)** = [分析, 研究, 做, 跑](全词边界匹配) - **VERB_PREFIX(v1.1 前缀)** = [帮我, 请帮我, 请你, 帮我分析, 请帮我分析] - **QUESTION_WORD(v1.1 疑问拦截)** = [什么, 怎么, 如何, 哪些, 哪个, 什么软件] - **QA_TOPIC(v1.1 主题拦截)** = [研究进展, 研究现状, 研究热点, 最新研究, 最新进展, 最新成果, 研究成果, 研究趋势, 综述, 进展] ## 4. 用例表(40 条 v1.0 + 15 条 v1.1 新增,前端 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(活动文档不改判定) | | 41 | 水稻SPL基因家族的最新研究进展有哪些? | 否 | 否 | 否 | **qa(v1.1:问答句不进生信流)** | | 42 | 水稻 SPL 基因家族最新研究进展 | 否 | 否 | 否 | **qa(v1.1:主题词拦截)** | | 43 | 水稻SPL基因家族研究进展如何? | 否 | 否 | 否 | **qa(v1.1)** | | 44 | 水稻SPL基因家族有哪些最新的研究成果? | 否 | 否 | 否 | **qa(v1.1)** | | 45 | SPL 基因家族有什么新的发现吗? | 否 | 否 | 否 | **qa(v1.1)** | | 46 | 怎么用 PlantAI 分析水稻 SPL 家族 | 否 | 否 | 否 | **qa(v1.1:疑问引导词拦截)** | | 47 | 如何跑水稻 SPL 家族鉴定 | 否 | 否 | 否 | **qa(v1.1:疑问引导词拦截)** | | 48 | 什么软件做全基因组注释 | 否 | 否 | 否 | **qa(v1.1:疑问引导词拦截)** | | 49 | 帮我分析水稻SPL基因家族 | 否 | 否 | 否 | **bioflow(v1.1:前缀分析句式)** | | 50 | 帮我做水稻全基因组变异检测 | 否 | 否 | 否 | **bioflow(v1.1:链动词直接邻接宾语,金标 #12 保持)** | | 51 | 帮我做一下水稻全基因组变异检测 | 否 | 否 | 否 | **bioflow(v1.1)** | | 52 | 帮我分析鉴定水稻 SPL 家族 | 否 | 否 | 否 | **bioflow(v1.1)** | | 53 | 帮我分析水稻 SPL 家族的最新研究进展 | 否 | 否 | 否 | **qa(v1.1:主题词优先于分析指令)** | | 54 | 水稻 SPL 家族研究综述 | 否 | 否 | 否 | **qa(v1.1)** | | 55 | 帮我看看水稻 SPL 家族 | 否 | 否 | 否 | **qa(v1.1:「看」非链动词,漏判安全)** | ## 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 执行;v1.1 新增 #41-#55 覆盖问答句收窄与补语边界)。 6. **v1.1 收窄原则**:漏判安全优先——拿不准的句子一律 qa;三条命中通道(任务动词+对象 / 前缀分析句式 / 分析链句式)必须能明确读出「用户要求执行分析」;问答主题词(研究进展/综述等)与疑问引导词(什么/怎么/如何等)拦截一切生信通道。