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