西藏巴青项目

AI诊断(兽医、机构)功能需求.md 26KB

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 界面形态对照(后台)

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/ShanghaithreeMonthsAgo = 今日 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 后台使用流程(兽医 / 机构)

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 助手流程(关联)

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 与在线接诊的并行关系

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

7.4 提问到 AI 回复(时序)

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、非流式、后台/移动端范围、问答标题与未绑定提示