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

95 lines
7.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 生信意图分流词典与用例表(唯一事实源)
> 冻结版本 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 执行)。