chore: initialize medical consultation agent demo

This commit is contained in:
刘金宝
2026-06-01 09:25:26 +08:00
commit a7733243b2
139 changed files with 15764 additions and 0 deletions
+71
View File
@@ -0,0 +1,71 @@
# 第一版 Demo 功能范围
## 项目定位
医疗问诊 Agent 是大系统中的子功能。宿主系统进入时传入 `X-User-Id`,Agent 内部基于该值做会话隔离、训练记录、评价报告和学习档案沉淀。
## 已实现功能
| 功能 | 说明 |
|---|---|
| 入口连接 | 校验 `X-User-Id`,返回当前用户上下文和 Demo 能力开关 |
| 病例列表 | 从 `case_base` 读取已发布病例 |
| 病例详情 | 展示训练入口信息,不暴露标准答案、隐藏信息和评分细则 |
| 创建训练会话 | 写入 `training_session`,初始化短期 memory |
| 多轮问诊 | 医学生向 AI 病人提问,支持普通和 SSE 流式返回 |
| 查看提示 | 练习模式下用户手动点击,Hint Agent 基于病例和当前对话生成提示 |
| 检查/检验申请 | 从 `case_exam_item` 返回固定结果,写入 `training_order` 和短期 memory |
| 完成问诊 | 至少一轮医生问诊后进入诊断阶段 |
| 提交诊断 | 写入 `training_submission` |
| 提交治疗 | 更新 `training_submission`,进入评价阶段 |
| AI 评价报告 | 读取 `scoring_rule`、知识库命中结果和作答过程,写入 `training_record` |
| PDF 导出 | 基于 `training_record` 生成本地 PDF 并回写路径 |
| 历史记录 | 按 `external_user_id` 查询 `training_record` |
| LLM 测试 | 测试 Fast 和 Reason 模型响应耗时 |
## 训练模式
当前只保留两个业务模式:
| 模式 | 内部值 | 数据来源 | 说明 |
|---|---|---|---|
| 练习模式 | `practice` | `case_base + traditional_case` | 支持自由问诊、检查申请、诊断治疗提交和查看提示 |
| 教学互动模式 | `teaching` | `case_base + teaching_case` | 保留教学目标、讨论题、教师引导和评分重点 |
历史 `novice` 请求在后端归一为 `practice`。查看提示功能不作为独立模式存在,而是练习模式中的手动辅助能力。
## 状态流转
```text
inquiry
-> diagnosis
-> treatment
-> evaluating
-> completed
```
| 状态 | 可执行操作 |
|---|---|
| `inquiry` | Chat、查看提示、申请检查、完成问诊 |
| `diagnosis` | 提交诊断、申请检查 |
| `treatment` | 提交治疗、申请检查 |
| `evaluating` | 生成评价 |
| `completed` | 查看报告、导出 PDF、进入历史 |
## 存储边界
- 多轮聊天只作为单次会话短期 memory,不写入长期历史。
- 检查结果写入 `training_order`,用于评分依据。
- 诊断和治疗写入 `training_submission`
- 只有完整完成评价后才写入 `training_record`
- 历史记录和 PDF 导出均基于 `training_record`
## 第一版不包含
- 独立注册登录。
- 多租户权限后台。
- HIS/LIS/PACS 对接。
- 语音、视频、影像阅片。
- PDF 病例自动解析。
- 生产级知识库后台。
- 复杂考试系统。