# AI 诊断（兽医、机构）— 功能需求

## 1. 文档说明

| 项 | 说明 |
| --- | --- |
| 模块名称 | AI 诊断（兽医、机构）（牧业疫病诊疗服务） |
| 目标 | 为**兽医账号**与**诊疗机构账号**提供与 **AI 助手** 的即时问答能力：管理本人历史 AI 会话、新建会话、发送多媒体提问并获取 AI 回复，用于养殖技巧、疾病诊疗、用药指导、设备操作等场景的**自助辅助**（**不替代**人工接诊与现场诊疗） |
| 使用端 | **业务后台**（若依管理端）：已登录的兽医或机构人员；**移动端**「AI 助手」入口（见 **§7.2**） |
| 修订依据 | 同目录 `AI诊断(兽医、机构)功能需求-草稿.md`、界面原型（`Snipaste_2026-05-20_17-39-29.jpg` 后台、`Snipaste_2026-05-20_17-40-29.jpg` 移动端）；并关联分析 **在线接诊（兽医）** 功能需求 v1.1 |
| **文档版本** | **1.1**（产品确认见 **§5.3、§5.4**） |

本文档**仅描述功能需求与业务规则**，不涉及数据库表结构、接口路径、请求体字段命名、HTTP 报文、权限标识命名、大模型选型及技术栈。

---

## 2. 术语与业务对象

### 2.1 AI 诊断会话（一条会话）

- 表示**当前登录用户（提问人）**与 **AI 助手** 之间的一条**持续性问答对话**容器。  
- 会话由**会话 ID** 唯一标识；其下有多条**问答消息**按时间顺序组成对话记录。  
- 同一提问人可拥有**多条** AI 会话（与「一人一兽医一条接诊会话」不同）；通过**新增会话**主动创建。  
- 业务上问诊类型为 **AI 问诊**，与兽医在线问诊、专家问诊等**严格区分**。

### 2.2 问答消息（单条）

- 会话内一次交互单元，类型包括：**文本、图片、视频、语音**。  
- **提问侧**：当前登录用户（兽医或机构人员）发送的**提问**。  
- **回复侧**：**AI 助手** 根据提问（及可识别的附件）生成的**回复**（非真人用户发送）。  
- 界面按时间轴展示，区分「提问人侧」与「AI 助手侧」气泡；展示发送时间。

### 2.3 提问人（当前登录人）

- 使用本模块的**兽医**或**机构**账号本人。  
- 会话列表、消息读写范围均**自动限定为当前登录用户作为提问人**的 AI 会话；**不得**查看或操作其他用户的 AI 历史。  
- 兽医若同时承担「接诊兽医」角色，其在 **AI 诊断** 中仅作为**提问人**自问 AI，**不**以接诊人身份出现在本模块列表中。

### 2.4 AI 助手（对话对象）

- 产品侧固定展示的对话对象名称（如「**AI 助手**」），无对应真实用户账号在线交互。  
- 回复内容由系统在用户提问后**自动生成**并写入对话记录；用户**不可**代替 AI 发送回复。

### 2.5 问答标题

- 用于左侧历史列表主标题展示（原型「问答标题」）。  
- **首条有效文本提问**发送成功后，取该文本去空白后的摘要作为问答标题（**最多 50 字**，超出截断）。  
- **新增会话**后、首问前，列表展示占位标题「**新会话**」；首问成功后替换为上述摘要。  
- 已有标题的会话，后续提问**不修改**标题（除非产品另定「重命名」，本期不做）。

### 2.6 问诊类型（业务区分）

| 类型 | 本模块 | 在线接诊（兽医） |
| --- | --- | --- |
| 标识 | **AI 问诊** | **兽医在线问诊** |
| 参与方 | 提问人 ↔ AI 助手 | 问诊人（牧民）↔ 接诊兽医 |

---

## 3. 关联需求分析（AI 诊断 / 在线接诊）

「AI 诊断（兽医、机构）」与「在线接诊（兽医）」同属**即时消息类**界面（左历史列表 + 右对话区），但**服务对象、数据范围、会话生命周期与业务目的不同**，须在产品与数据层面**严格隔离**。

### 3.1 双模块定位对照

| 维度 | AI 诊断（兽医、机构）（本文档） | 在线接诊（兽医） |
| --- | --- | --- |
| 所属业务 | 牧业疫病诊疗服务 | 牧业疫病诊疗服务 |
| 使用角色 | **兽医账号 + 机构账号** | **仅兽医账号** |
| 对话对象 | **AI 助手** | **真实问诊人（牧民/用户）** |
| 业务目的 | 自助问答、知识检索、辅助分析 | 人工远程问诊、病情沟通、处置建议 |
| 是否替代人工 | **否**（辅助工具） | **是**（兽医本人回复） |
| 后台菜单 | 「AI 诊断（兽医、机构）」独立菜单 | 「在线接诊（兽医）」独立菜单 |
| 会话创建 | 后台 **「新增会话」**；移动端 **「+」/快捷入口** | 后台**无**新建；由移动端牧民发起 |
| 列表主信息 | **问答标题** + 最后问答摘要 | **问诊人姓名** + 最后聊天摘要 |
| 右侧标题 | **AI 助手** | **问诊人姓名** |
| 列表筛选 | **仅**会话内容（模糊） | 问诊人 + 会话内容 |
| 会话条数 | 同一用户可**多条**并行 AI 会话 | 同一「问诊人+兽医」原则上**一条**持续会话 |
| 问诊类型 | **AI 问诊** | **兽医在线问诊** |

### 3.2 界面形态对照（后台）

```mermaid
flowchart TB
    subgraph AI诊断["AI 诊断（兽医、机构）"]
        A1[筛选: 会话内容]
        A2[左: 历史会话列表]
        A3[右: 与 AI 助手对话]
        A4[新增会话]
    end
    subgraph 兽医接诊["在线接诊（兽医）"]
        V1[筛选: 问诊人 + 会话内容]
        V2[左: 接诊会话列表]
        V3[右: 与问诊人聊天]
    end
```

两模块**菜单独立**、**列表数据互不可见**、**不得共用同一会话 ID 空间**。

### 3.3 与移动端协同对照

| 端 | AI 诊断相关 | 在线接诊相关 |
| --- | --- | --- |
| 移动端-AI Tab / AI 助手 | 欢迎语；快捷入口：**养殖技巧、疾病诊疗、用药指导、设备操作**；历史 AI 会话；**新建会话**；文本/语音/图片提问 | — |
| 移动端-在线问诊 | — | 选兽医 → 资料 → 聊天；消息 Tab 展示与各兽医的会话 |
| 业务后台 | 兽医、机构均可使用本模块 | **仅兽医**使用接诊模块 |

牧民在「在线问诊」中的聊天**不会**出现在 AI 诊断列表；兽医在 AI 中的提问**不会**出现在「在线接诊」列表。

### 3.4 与「我的预约」的关系

| 关系 | 说明 |
| --- | --- |
| **职责独立** | 「我的预约」管理预约单状态；AI 诊断管理 AI 问答，互不替代 |
| **本期不绑定** | 使用 AI 诊断**不校验**是否已有预约、是否已确认接诊 |
| **状态独立** | AI 问答**不自动**变更预约单状态 |

### 3.5 机构与兽医的角色说明

| 角色 | AI 诊断 | 在线接诊（兽医） |
| --- | --- | --- |
| **兽医** | ✓ 可向 AI 提问；仅能看到**本人** AI 历史 | ✓ 接诊牧民会话；**不能**用 AI 模块代牧民问诊 |
| **机构** | ✓ 可向 AI 提问；仅能看到**本人** AI 历史 | ✗ **无**接诊菜单（本期） |
| **牧民/平台用户** | **移动端**「AI 助手」可提问（登录后仅本人 AI 历史）；**无**后台 AI 诊断菜单 | 移动端向兽医发起在线问诊 |

**本期范围（已确认）**：**后台** AI 诊断菜单面向 **兽医（角色 100）**、**机构（角色 102 等，与平台配置一致）** 等已授权账号，**不校验**是否在「畜牧医疗资源管理」绑定兽医/机构资源 ID；**移动端** AI 助手对已登录的牧民/用户**开放**，数据仍为「提问人 = 本人」的 AI 问诊会话，与后台机构/兽医 AI 会话**同一业务类型、分端展示**。

机构人员若需与牧民实时沟通，属其他业务（本期不在本文档范围）。

### 3.6 数据与权限隔离（业务层约定）

- AI 会话：**提问人** = 当前登录用户；**问诊类型** = AI 问诊；**无**接诊兽医、无牧民问诊人字段语义。  
- 接诊会话：**接诊人** = 当前兽医；**问诊类型** = 兽医在线问诊。  
- 同一兽医用户可能**同时**存在两类会话：作为接诊人处理牧民消息、作为提问人向 AI 提问；**分列表、分菜单、不得合并展示**。

### 3.7 本期明确不做（关联边界）

| 项 | 说明 |
| --- | --- |
| AI 结果一键转入接诊聊天 | 可单独立项；本期不做 |
| AI 自动代替兽医回复牧民 | 禁止；牧民消息仅由兽医本人在线接诊中回复 |
| 在 AI 模块中查看/回复牧民会话 | 禁止；须使用在线接诊 |

---

## 4. 会话与消息规则

### 4.1 会话范围与时间窗

| 项 | 规则 |
| --- | --- |
| 数据范围 | **仅**当前登录用户作为**提问人**的 AI 问诊会话 |
| 默认列表时间窗 | 左侧列表**默认仅展示**「最后一条消息时间」落在**最近 3 个月**内的会话（**§5.4 #1**：服务器时区 `Asia/Shanghai`，**自然日**，今日 0 点往前推 **3 个自然月**，含今日；与在线接诊一致） |
| 超窗会话检索 | 最后消息早于 3 个月的会话**默认不出现**；用户填写**会话内容**并点击**搜索**后，**可检索并打开**命中会话（**可搜但不默认列出**） |
| 排序 | 按**最后一条消息时间倒序**（最近活跃在前） |
| 多会话 | 允许同一用户存在**多条** AI 会话；**新增会话**创建新容器，不合并进历史会话 |

### 4.1.1 会话隐藏（提问人侧）

| 项 | 规则 |
| --- | --- |
| 提问人隐藏 | 提问人可在**移动端**或**管理端**对本人 AI 会话执行**隐藏**；隐藏后在两端列表**均不再展示**，**不可**查看或继续提问（数据保留，非物理删除） |
| 管理端接口 | `POST /diseaseTreatment/onlineConsult/ai/session/{id}/hide`（权限 `diseaseTreatment:aiOnlineConsult:remove`）；**本期管理端页面可不接按钮**（不改前端代码），接口供联调或后续迭代 |
| 他人不可见 | 仅影响**提问人本人**；不涉及在线接诊及其他用户 |
| 恢复 | 本期**不提供**已删会话恢复 |

### 4.2 消息类型与展示

| 类型 | 提问人 | AI 回复 | 展示要求 |
| --- | --- | --- | --- |
| **文本** | ✓ | ✓（生成） | 气泡内全文；过长可换行 |
| **图片** | ✓（上传） | ✓（**§5.4 #8**：结合用户文字与图片由 AI 生成文本回复；识别失败时提示补充文字描述） | 缩略图；可点击查看大图 |
| **视频** | ✓（上传文件） | ✓（**§5.4 #8**：本期**不解析**视频画面；AI 固定类文字回复，如「已收到视频，请补充文字描述症状」） | 展示视频占位/封面 |
| **语音** | ✓（上传文件） | ✓（**§5.4 #8**：本期**不做**语音转写；AI 固定类文字回复，如「已收到语音，请补充文字描述」） | 展示语音条 |

**视频、语音（本期约定，与在线接诊对齐）**

- **视频**、**语音**均采用**上传文件**方式发送，**不提供**实时音视频通话（RTC）、**不提供**后台内嵌录音/录像控件。  
- **图片**、**文本**规则不变。

### 4.3 AI 回复规则

| 项 | 规则 |
| --- | --- |
| 触发时机 | 提问人**发送成功**后，系统向 AI 服务发起处理；**AI 回复**作为独立消息写入同一会话 |
| 等待态 | 从提问发送到 AI 回复展示前，界面须有**明确等待提示**（如「AI 正在思考…」），避免用户误以为无响应 |
| 失败处理 | AI 调用失败、**超时（§5.4 #9：单次等待上限 60 秒）**须提示原因，**不**展示为成功回复；允许用户对**同一会话再次提问**或重新发送（本期不做「仅重试 AI」独立按钮时，以再次发送同一内容为准） |
| 展示方式 | **§5.4 #10**：本期 **非流式**；AI 回复**整段生成并落库后**一次性展示，落库至界面可见 **≤ 1 秒** |
| 回复身份 | 回复气泡展示为 **AI 助手**；**不可**由用户编辑或伪造 AI 消息 |
| 内容边界 | AI 回复为**辅助参考**；须在合适位置提示「**不能替代专业兽医诊断与现场处置**」（移动端原型场景尤其需要） |

### 4.4 消息同步与时效

| 项 | 规则 |
| --- | --- |
| 提问可见 | 提问人发送成功后**立即**在对话区展示本人提问；若提交失败**不得**保留假成功气泡 |
| AI 回复可见 | AI 回复落库后 **≤ 1 秒** 内出现在对话区（**§5.3 #6**）；并更新左侧列表摘要与时间 |
| 实现取向 | 宜采用推送/长连接；纯手动刷新**不满足**需求 |
| 展示 | 对话区按**日期分组**及**时刻**展示，与在线接诊、移动端 **AI 助手** 保持一致 |

---

## 5. 功能范围

### 5.1 本期实现

| 能力 | 说明 |
| --- | --- |
| 即时对话布局 | 左「历史会话」+ 右与 **AI 助手** 对话；**§6** |
| 历史会话列表 | 会话内容筛选、默认 3 个月、排序；**§6.1** |
| **新增会话** | 创建空白 AI 会话并进入对话区；**§6.1** |
| 查看会话消息 | 选中会话加载全部历史问答；**§6.2** |
| 提问发送 | 文本、图片；视频/语音为**文件上传**；**§6.3** |
| AI 自动回复 | 提问后生成 AI 文本回复（及能力范围内的多模态处理策略）；**§4.3** |
| 近实时更新 | 新提问与 AI 回复后列表摘要、时间更新；**§4.4** |
| 超窗搜索 | 默认 3 个月；**搜索**可查更早会话；**§6.1** |
| 工具栏 | **搜索**、**重置**、**新增会话** |
| 角色范围 | **后台**：具备 `diseaseTreatment:aiOnlineConsult:*` 权限的兽医、机构等账号；**移动端**：已登录用户（含牧民） |

### 5.2 本期不实现

| 项 | 说明 |
| --- | --- |
| 代替兽医在线接诊 | 见 **§3.7** |
| 与预约单联动 | 见 **§3.4** |
| 会话转接、多人共用一个 AI 会话 | 未要求 |
| 消息撤回、已读回执、输入中状态 | 除非平台统一 IM 规范另立，本期不做 |
| 导出对话、敏感词审核后台配置 | 未要求 |
| RTC、后台内嵌录播 | 不支持 |
| 用户手动编辑 AI 历史回复 | 不支持 |
| 机构/牧民在后台代他人向 AI 提问 | 不支持；仅当前登录人 |
| 专家问诊 AI 子模块 | 专家另模块（若有） |

### 5.3 本期产品确认项（已确认）

| # | 确认项 | 本期约定 |
| --- | --- | --- |
| 1 | 列表时间窗 | 默认**最近 3 个月**（**§5.4 #1**）；**搜索**可命中更早会话 |
| 2 | 搜索交互 | **仅点击「搜索」** 触发超窗检索；**「重置」** 恢复默认 3 个月；筛选项有值但未点搜索时**仍仅 3 个月** |
| 3 | 多媒体发送 | 视频/语音**仅上传文件**；不做 RTC、不做内嵌录播 |
| 4 | 与预约/接诊 | **不绑定**预约；**不打通**在线接诊会话 |
| 5 | 会话隐藏 | **移动端、管理端**均可隐藏本人会话；隐藏后两端列表**均不展示**；管理端页面按钮本期可选 |
| 6 | AI 时效 | 提问立即展示；AI 回复落库后 **≤ 1 秒** 可见（与在线接诊一并验收） |
| 7 | 使用范围 | **后台**兽医+机构（菜单/权限控制，**不校验**医疗资源绑定）；**移动端 AI 助手**对已登录用户开放 |
| 8 | 问答标题 | 首问前「新会话」；首条有效文本提问后生成标题（**最多 50 字**） |

### 5.4 业务规则补充（v1.1 已确认）

| # | 约定项 | 本期实现 |
| --- | --- | --- |
| 1 | **3 个月边界** | 时区 `Asia/Shanghai`；`threeMonthsAgo` = 今日 **00:00:00** 往前 **3 个自然月**（与在线接诊 v1.1 一致） |
| 2 | **列表摘要** | 最后一条消息：`文本` 最多 50 字；媒体为 `[图片]` / `[视频]` / `[语音]`（与在线接诊一致） |
| 3 | **搜索条件为空** | 点击搜索时会话内容为空 → 提示「请输入筛选条件」（与在线接诊搜索逻辑一致） |
| 4 | **快捷入口** | 移动端点击「养殖技巧/疾病诊疗/用药指导/设备操作」→ **新建一条 AI 会话** → 输入区**预填**该分类引导问题模板（可编辑）→ 用户发送后走正常 AI 回复流程；**不**并入当前已打开的历史会话 |
| 5 | **新增会话（后台）** | 点击「新增会话」→ 新建空会话并选中；首问前列表标题为「新会话」 |
| 6 | **免责声明** | 对话区或首次进入 AI 模块时展示：AI 内容仅供参考，**不能替代**专业兽医诊断与现场处置；「疾病诊疗」「用药指导」类须强化提示 |
| 7 | **医疗资源绑定** | **不校验**当前登录用户是否绑定 `biz_medical_resource`（兽医/机构资源 ID）；与在线接诊、我的预约等模块隔离 |
| 8 | **多媒体 AI 能力** | **图片**：AI 结合图文回复；失败则提示补文字。**视频/语音**：本期不解析、不转写，AI 回复**统一引导文案**请用户补充文字描述 |
| 9 | **AI 超时** | 自提问提交至 AI 服务，**60 秒**内无有效回复视为超时，提示失败，用户可再次发送提问 |
| 10 | **流式输出** | 本期**不做**逐字流式；整段回复生成完毕后一次性展示 |
| 11 | **管理端隐藏** | 管理端提供隐藏会话接口（`remove` 权限）；与 **§5.3 #5**、**§4.1.1** 一致 |
| 12 | **牧民与机构数据** | 牧民移动端 AI 会话 `问诊类型 = AI`、`提问人 = 牧民本人`；与机构/兽医后台 AI 会话**业务类型相同**，按提问人隔离，**不得**与在线接诊混列 |

---

## 6. 详细功能需求

### 6.1 历史会话列表（左侧）

| 项 | 规则 |
| --- | --- |
| 标题 | 「历史会话」（与原型一致） |
| 数据范围 | **仅**当前登录用户作为提问人的 **AI 问诊** 会话；**排除**本人已隐藏会话 |
| 时间范围 | **默认**最近 3 个月内有最后消息的会话；**搜索**时可查更早（**§4.1**、**§5.3**） |

**筛选条件**

| 筛选项 | 规则 |
| --- | --- |
| 会话内容 | 选填；对**问答标题**、列表摘要、会话内**文本提问/回复**等内容 **模糊**匹配；**搜索时**不受 3 个月限制 |
| 工具栏 | **搜索**、**重置**、**新增会话** |
| 搜索触发 | **仅**点击「搜索」传超窗检索；仅改筛选项不点搜索 → **仍仅 3 个月**（**§5.3 #2**） |
| 默认进入 | 未搜索或已重置时，**仅** 3 个月会话 |

**列表项展示（与原型一致）**

| 元素 | 说明 |
| --- | --- |
| 图标/头像 | AI 或会话占位图（与视觉规范一致） |
| 问答标题 | 会话主题，如「牛不吃草怎么办」类摘要 |
| 最后一条内容 | 最新一条**提问或 AI 回复**的摘要（文本截断；非文本用「[图片]」「[语音]」「[视频]」等） |
| 日期 | 以**最后消息日期**展示，如「M月D日」 |
| 选中态 | 选中后高亮，右侧加载该会话 |

**新增会话**

| 项 | 规则 |
| --- | --- |
| 入口 | 工具栏 **「新增会话」** |
| 行为 | 创建一条新的空 AI 会话并选中；右侧展示 **AI 助手** 与空对话区（或简短引导语） |
| 标题 | 在用户发送**首条有效文本提问**前，列表可用「新会话」等占位标题；首问后更新为问答标题 |

**空列表**

- 无历史时提示（如「暂无 AI 诊断会话」）；用户可通过 **新增会话** 开始。

---

### 6.2 会话详情与对话记录（右侧）

| 项 | 规则 |
| --- | --- |
| 入口 | 点击左侧某条历史会话，或 **新增会话** 后 |
| 顶部标题 | 固定展示 **「AI 助手」**（与原型一致） |
| 对话区 | 展示该会话**全部**历史问答（不受列表 3 个月限制；量大时分页/滚动加载） |
| 气泡布局 | 提问人在**一侧**（如右），AI 助手在**另一侧**（如左） |
| 未选会话 | 右侧空状态（如「请选择历史会话或新增会话」） |

**只读约束**

- 历史问答**不可编辑**；提问人**不可删除单条消息**（除非平台统一规范另定，本期不做单条撤回）。

---

### 6.3 发送提问（右侧输入区）

| 项 | 规则 |
| --- | --- |
| 文本输入 | 多行输入框；用于描述症状、养殖问题等 |
| 图片 | 选择本地图片上传并发送（如病畜、化验单照片） |
| 语音/视频 | 选择本地**文件**上传发送（**非**内嵌录音/录像） |
| 发送按钮 | 「发送」；文本须非空；图片/音视频须已选文件 |
| 发送成功 | 提问进入对话区；触发 **§4.3** AI 处理；更新左侧摘要与时间 |
| 发送身份 | 发送方均为**当前登录用户**；接收方为 **AI 助手**（逻辑上） |

**失败处理**

- 发送失败须提示原因；**不**虚假展示为已成功；AI 失败与发送失败区分提示。

---

### 6.4 与在线接诊的互斥说明（产品层）

| 场景 | AI 诊断（本文档） | 在线接诊（兽医） |
| --- | --- | --- |
| 兽医查 AI 养殖/疾病知识 | ✓ 使用本模块 | ✗ |
| 兽医回复牧民在线消息 | ✗ | ✓ 使用在线接诊 |
| 机构人员自助问 AI | ✓ 使用本模块 | ✗ 无菜单 |
| 牧民问 AI | 移动端 AI 助手（**本期开放**） | 牧民找兽医用在线问诊 |

---

## 7. 业务流程

### 7.1 后台使用流程（兽医 / 机构）

```mermaid
flowchart TD
    A[用户登录后台] --> B{角色?}
    B -->|兽医或机构| C[进入 AI 诊断]
    B -->|其他| X[无菜单或无权]
    C --> D[可选: 会话内容筛选]
    D --> E[搜索 / 重置 / 新增会话]
    E --> F[左侧历史会话列表]
    F --> G{选择或新建?}
    G -->|选中历史| H[右侧: AI 助手 + 历史问答]
    G -->|新增会话| H2[右侧: 空会话或引导]
    H --> I[输入提问: 文本/图片/音视频文件]
    H2 --> I
    I --> J[发送]
    J --> K[展示提问 + 等待 AI]
    K --> L{AI 成功?}
    L -->|是| M[展示 AI 回复 + 更新列表摘要]
    L -->|否| N[提示失败 + 可重试]
    M --> I
    N --> I
```

### 7.2 移动端 AI 助手流程（关联）

```mermaid
flowchart TD
    M0[进入 AI 助手] --> M1[展示欢迎语]
    M1 --> M2{用户操作}
    M2 -->|点快捷入口| M3[养殖技巧/疾病诊疗/用药指导/设备操作]
    M3 --> M4[进入对话: 可带预设引导或新建会话]
    M2 -->|选历史会话| M5[继续该会话]
    M2 -->|新建会话| M6[创建新 AI 会话]
    M4 --> M7[输入/语音/图片 提问]
    M5 --> M7
    M6 --> M7
    M7 --> M8[发送]
    M8 --> M9[等待并展示 AI 回复]
```

**快捷入口说明（业务层）**

| 入口 | 用途 |
| --- | --- |
| 养殖技巧 | 饲养管理、环境、繁育等一般性问题 |
| 疾病诊疗 | 症状、疫病防控、处置建议类问题（**核心**场景，须突出免责声明） |
| 用药指导 | 用药原则、剂量参考类（须提示遵医嘱、当地法规） |
| 设备操作 | 养殖设备使用与故障排查 |

**快捷入口（已确认，§5.4 #4）**：每次点击四类入口之一 → **新建一条 AI 会话** → 输入区预填对应分类**引导问题模板**（可编辑）→ 用户发送后触发 AI 回复；**不**在当前已打开的历史会话中插入。

### 7.3 与在线接诊的并行关系

```mermaid
flowchart LR
    subgraph 用户侧
        U1[机构/兽医问 AI]
        U2[牧民问兽医]
    end
    subgraph 系统能力
        AI[AI 诊断]
        VET[在线接诊]
    end
    U1 --> AI
    U2 --> VET
    AI -.->|数据隔离| VET
```

### 7.4 提问到 AI 回复（时序）

```mermaid
sequenceDiagram
    participant 用户
    participant 界面
    participant 系统
    participant AI服务

    用户->>界面: 输入并发送提问
    界面->>系统: 提交提问
    系统->>界面: 提问展示成功
    系统->>界面: 显示等待态
    系统->>AI服务: 请求生成回复
    alt 成功
        AI服务-->>系统: 回复内容
        系统->>系统: 保存 AI 回复消息
        系统-->>界面: 近实时展示回复(≤1秒)
        系统-->>界面: 更新历史列表摘要
    else 失败
        系统-->>界面: 错误提示, 可重试
    end
```

---

## 8. 业务数据要素（逻辑层，非表结构）

实施时需持久化以下**业务信息**（字段命名与存储方式由技术方案定义）：

| 逻辑对象 | 要点 |
| --- | --- |
| 会话 | 会话 ID；**提问人**标识、姓名；**问诊类型 = AI 问诊**；**问答标题**；最后消息时间；最后消息摘要 |
| 提问消息 | 所属会话；发送方为**提问人**；类型；内容或媒体引用；发送时间 |
| AI 回复消息 | 所属会话；发送方为 **AI 助手**；类型（多为文本）；内容；发送时间 |

**与在线接诊的差异：** 在线接诊会话含**接诊兽医**与**问诊人（牧民）**双方真人标识；AI 会话**无接诊人**，且同一提问人可有多条 AI 会话。

---

## 9. 提示约定（示例）

| 场景 | 示例文案 |
| --- | --- |
| 搜索无结果 | 未找到匹配的 AI 诊断会话 |
| 搜索条件为空 | 请输入筛选条件 |
| AI 超时 | AI 回复超时，请稍后重试 |
| 默认列表 | 仅展示最近 3 个月会话；更早记录请使用搜索 |
| 空列表 | 暂无 AI 诊断会话 |
| 未选会话 | 请选择历史会话或新增会话 |
| 发送失败 | 发送失败，请重试 |
| 文本为空 | 请输入消息内容 |
| 文件限制 | 图片/视频/语音不符合要求（大小、格式以实现为准） |
| AI 处理中 | AI 正在思考，请稍候… |
| AI 失败 | AI 回复失败，请稍后重试 |
| 无权限 | 无权查看该会话 |
| 非本人会话 | 无权查看该会话 / 会话不存在 |
| 免责声明 | 以上内容由 AI 生成，仅供参考，不能替代专业兽医诊断与现场处置 |

---

## 10. 非功能建议（业务侧）

- 会话与消息查询须限定**当前提问人**，防止越权查看他人 AI 记录。  
- **AI 回复展示**：落库后 **≤ 1 秒** 可见（**§5.3**）；与在线接诊一并验收。  
- 上传文件须符合平台**大小与格式**规范。  
- 列表、对话日期时间格式与**在线接诊**、移动端 **AI 助手** 一致。  
- 界面支持 **i18n**（汉语 + 藏文）。  
- 对话区消息量大时宜**分页/滚动加载**；左侧列表仍按最后消息时间排序。  
- AI 输出宜考虑**内容安全**与**行业合规**（兽药、疫病报告等），与平台统一策略一致。  
- 关键操作（查看会话、发送提问）可按平台要求留痕审计。

---

## 11. 修订记录

| 版本 | 说明 |
| --- | --- |
| 1.0 | 依据草稿与原型整理；关联在线接诊；剔除技术表述 |
| 1.1 | 产品确认：§5.3 八项已确认 + §5.4 十二条补充；钉死 3 个月自然日、搜索/删除/快捷入口、多媒体 AI 能力、超时 60s、非流式、后台/移动端范围、问答标题与未绑定提示 |
