Files
PlantAI-rag-new/docs/team/cases_intent.md
adminandClaude Fable 5 f18286f022 fix(r4-47a/52): DOCX 红头标题样式同源解析 + 意图词典补总结/概括/归纳
#47a: 红头/标题字号颜色从 render_html 产物解析(新增 docgen/html_css.py:
内嵌 style 块 + 调用方传入的模板 css,组合选择器展开、px->pt),解析失败
回退历史常量(FF0000/22pt、h1/h2/h3 22/16/14pt,行为不变)。converter 与
导出路由把 css 传入 DOCX 转换,与 PDF/预览同源;非红头模板(如 report 灰
#333)不误渲染红头。r3 的 doc-body 包裹/表格/图片结构不回归。
#52: intent.py WRITE_VERB 补总结/概括/归纳,新增动词自指保护(唯一命中的
DOC_TYPE 等于命中动词本身时不算写文档意图,如「总结一下植物光合作用的过程」
仍 qa);cases_intent.md 同步规则与用例 31-34(共 34 条)。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-11 14:19:04 +08:00

77 lines
4.8 KiB
Markdown
Raw Permalink 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.
# 意图路由规范(唯一事实源)——dev1(Python)/dev3(JS)/测试 agent 三方共用
## 路由签名
route(text, has_attachments, has_active_artifact) -> "qa" | "docgen" | "edit" | "export"
## 判定顺序(按优先级从上到下,命中即返回)
### 1. export(需 has_active_artifact == True)
条件:text 含任一 EXPORT_WORD 且含任一 FORMAT_WORD
- EXPORT_WORD = [导出, 转成, 转为, 转换成, 下载成, 输出为, 存为, 转pdf, 转word]
- FORMAT_WORD = [pdf, docx, doc, word](英文不区分大小写;"doc" 是 "docx" 的子串,判定时 FORMAT_WORD 逐一 contains 即可)
无活动文档时不命中本规则,继续向下判定。
### 2. edit(需 has_active_artifact == True)
条件:text 含任一 EDIT_WORD
- EDIT_WORD = [改, 修改, 调整, 删, 删除, 加一段, 补充, 润色, 缩写, 扩写, 重写, 改写, 优化, 加个, 增加一段]
无活动文档时不命中本规则,继续向下判定。
### 3. docgen(写文档意图)
条件:text 含任一 WRITE_VERB 且含任一 DOC_TYPE
- WRITE_VERB = [写, 撰写, 拟, 起草, 编制, 生成, 编写, 拟定, 草拟, 制定, 总结, 概括, 归纳](r4 #52 新增后三词)
- 动词自指保护(r4 #52 新增):规则 3 判定时,若 text 命中的 DOC_TYPE 恰好等于命中的 WRITE_VERB 本身
(如「总结一下植物光合作用的过程」——「总结」既是动词又是文档类型词),不算写文档意图,
继续向下判定。「写一篇总结」(动词=写,类型=总结)与「总结这篇论文」(动词=总结,类型=论文)
不受影响。
- DOC_TYPE = [论文, 报告, 通知, 通告, 公告, 请示, 批复, 函, 申请书, 申请, 申报书, 标书, 合同, 协议, 方案, 计划, 总结, 汇报, 讲话稿, 致辞, 证明, 纪要, 简报, 材料, 说明书, 指南, 文档, 申报材料, 工作总结, 调研报告, 可行性报告, 项目书, 策划书, 演讲稿, 新闻稿, 文案, 简历, 制度, 规定, 办法, 细则, 章程, 声明, 邀请函, 感谢信, 慰问信, 介绍信, 推荐信, 倡议书, 述职报告, 开题报告, 结题报告, 实验报告, 分析报告, 会议纪要]
- 明确排除(不属于 DOC_TYPE,防误判):介绍, 内容, 代码, 诗, 作业, 问题, 建议, 想法
### 4. docgen(附件信号)
条件:has_attachments == True 且 text 含任一 WRITE_VERB
(兜底:拖入文件 + 写类动词,即使无文档类型词也视为生成意图)
### 5. 其余一律 "qa"(漏判安全原则:不命中绝不进 docgen)
## 用例表(34 条,前后端实现与测试共用同一张表)
| # | 输入 text | 附件 | 活动文档 | 期望 |
|---|---|---|---|---|
| 1 | 给我写一篇关于小麦育种的论文 | 否 | 否 | docgen |
| 2 | 帮我写一个关于疫情防控的通知,参考xxx文档的格式 | 否 | 否 | docgen |
| 3 | 你来帮我起草一份项目总结报告 | 否 | 否 | docgen |
| 4 | 拟一份关于安全生产的通知 | 否 | 否 | docgen |
| 5 | 写一个基金申请文档,参考xxxx和xxxx资料,你来润色 | 否 | 否 | docgen |
| 6 | 根据这个文档,帮我写一篇申报材料 | 是 | 否 | docgen |
| 7 | 写一段水稻基因的介绍 | 否 | 否 | qa |
| 8 | 水稻基因是什么?介绍一下 | 否 | 否 | qa |
| 9 | 帮我总结一下这个问题的要点 | 否 | 否 | qa |
| 10 | 写一首关于秋天的诗 | 否 | 否 | qa |
| 11 | 帮我写代码实现一个排序函数 | 否 | 否 | qa |
| 12 | 这个方案你怎么看? | 否 | 否 | qa |
| 13 | 通知今天下午开会 | 否 | 否 | qa |
| 14 | 导出成PDF | 否 | 是 | export |
| 15 | 把文档转成word发给我 | 否 | 是 | export |
| 16 | 导出成PDF | 否 | 否 | qa |
| 17 | 第2段改正式一点 | 否 | 是 | edit |
| 18 | 把标题改成黑体 | 否 | 是 | edit |
| 19 | 润色一下第二段 | 否 | 是 | edit |
| 20 | 第2段改正式一点 | 否 | 否 | qa |
| 21 | 帮我写个方案,参考上次上传的材料 | 否 | 否 | docgen |
| 22 | 写一份年度工作计划 | 否 | 否 | docgen |
| 23 | 起草会议纪要 | 否 | 否 | docgen |
| 24 | 帮我生成一个市场分析报告 | 否 | 否 | docgen |
| 25 | 写一篇演讲稿,要有感染力 | 否 | 否 | docgen |
| 26 | 帮我写一份劳动合同 | 否 | 否 | docgen |
| 27 | 转成PDF | 否 | 是 | export |
| 28 | 帮我写个会议通知模板 | 否 | 是 | docgen |
| 29 | 给这个通知加个结尾 | 否 | 是 | edit |
| 30 | 增加一段关于风险的描述 | 否 | 是 | edit |
| 31 | 帮我总结论文 | 是 | 否 | docgen |
| 32 | 总结一下植物光合作用的过程 | 否 | 否 | qa |
| 33 | 概括一下这个通知 | 是 | 是 | docgen |
| 34 | 归纳这篇文章 | 是 | 否 | docgen |
## 一致性要求
- dev1 的 sdk/app/services/docgen/intent.py 与 dev3 的 ui/src/intent.js 必须按本表逐条通过
- 测试 agent 的 DC-INTENT-CASES 组直接引用本表(不得另造规则)