# Chat 模块需求分析 ## 1. 模块定位 `apps.chat` 已从传统“问答页面”升级为: > 审核智能体工作台 它是 V1 的主入口,负责把资料包、对话、任务模板、节点结果、结构化结论、飞书通知结果串成一个完整的人机协作界面。 ## 2. 模块目标 本模块需要实现以下目标: 1. 让用户通过对话发起审核任务。 2. 让对话始终绑定到具体资料包和具体产品名称。 3. 让任务结果按节点展示,而不是只返回一段自然语言。 4. 让用户能直接看到 RAG 命中的法规依据、风险摘要和导出建议。 5. 支持执行完成或异常后触发飞书 `@` 处理人。 ## 3. 页面形态要求 基于最新版原型,Chat 模块页面形态固定为三栏: ### 3.1 左栏:对话历史 1. 按资料包会话展示历史记录。 2. 会话名称直接使用解析后的产品名称。 3. 会话至少显示时间、状态、摘要。 4. 点击会话可切换当前资料包上下文。 ### 3.2 中栏:主对话区 1. 展示欢迎区、推荐提示词和节点导航。 2. 展示用户消息、Agent 计划、节点结果和最终结论。 3. 支持节点点击跳转。 4. 支持底部输入框继续追问。 ### 3.3 右栏:上传栏 + 功能卡片 1. 上半区展示上传资料入口和当前会话已上传附件。 2. 下半区展示能力卡片。 3. 能力卡片随任务模板变化展示不同内容。 ## 4. 关键业务约束 ### 4.1 对话必须绑定资料包 用户不能在无上下文状态下执行审核。每次任务都应绑定: 1. `conversation_id` 2. `batch_id` 3. `product_name` 4. `document_scope` ### 4.2 对话名称必须来源于解析结果 会话标题默认使用资料包解析出的产品名称,而不是“新对话”或“注册批次审核主线”。 ### 4.3 结果必须结构化 Chat 模块至少要展示: 1. 目录汇总结果 2. 完整性检查结果 3. 字段抽取结果 4. 一致性核查结果 5. 风险结论 6. 飞书通知结果 ## 5. 输入需求 ### 5.1 输入类型 1. 自然语言任务指令 2. 资料上传 3. 节点模板选择 4. 建议提示词点击 ### 5.2 建议提示词 V1 推荐固定提供: 1. 自动汇总文件夹目录与页数 2. 执行法规完整性检查 3. 抽取字段并生成字段池 4. 解释冲突字段原因 5. 给出整改与导出建议 ### 5.3 附件上传 Chat 模块中的上传不是独立附件功能,而是资料包流程的会话入口,因此上传后应自动触发: 1. 资料包批次创建或追加 2. 产品名称解析 3. 对话上下文绑定 ## 6. 输出需求 ### 6.1 节点式结果 结果不能只有长文本,必须形成节点: 1. 目录汇总 2. 完整性检查 3. 字段抽取 4. 风险结论 ### 6.2 RAG 依据展示 当 Agent 在对话中引用法规或业务依据时,应展示: 1. 依据来源文档 2. 命中条款或切片标签 3. 解释摘要 ### 6.3 飞书通知结果展示 当执行完成或发生异常后,Chat 模块应能展示: 1. 是否已触发飞书通知 2. 通知原因 3. 被 `@` 的处理人 4. Web 详情链接 5. 发送状态或失败原因 ## 7. 飞书相关需求 Chat 模块需要消费角色信息中的飞书字段。责任人实体至少包含: 1. `owner_role` 2. `owner_name` 3. `department` 4. `chapter_scope` 5. `risk_scope` 6. `feishu_user_id` 7. `feishu_open_id` 8. `feishu_name` 9. `notify_enabled` 当前 Demo 通知策略固定为: 1. 审核任务执行完成后,飞书摘要卡片 `@` 处理人。 2. 审核任务执行异常后,飞书异常消息 `@` 处理人。 ## 8. 与其他模块边界 1. `documents` 提供资料包、产品名称、文件范围和目录事实。 2. `agent_core` 提供任务编排、RAG 检索和结构化输出。 3. `audit` 提供处理历史和通知留痕。 ## 9. 验收标准 1. 用户能在一个会话中完成资料上传、任务发起和结果查看。 2. 对话历史以产品名称展示,而不是泛化标题。 3. 节点式结果、RAG 依据和飞书通知结果都能在页面上承载。 4. 执行完成或异常的飞书通知逻辑有明确展示位和字段依赖。