Files

143 lines
6.3 KiB
Markdown
Raw Permalink Normal View History

2026-06-10 11:02:12 +08:00
# 功能模块说明
本文档用于说明当前后端功能模块的职责、接口、数据表和后续优化方向。
## 1. 用户鉴权模块
| 项 | 内容 |
|---|---|
| 主要作用 | 调用 Django 用户中心验证 access token,并生成 FastAPI 用户上下文 |
| 当前状态 | 已实现 |
| 相关接口 | `GET /api/v1/auth/me` |
| 相关代码 | `app/api/auth.py``app/services/external_auth_service.py``app/core/user_context.py` |
| 相关表 | Django `user``institution``department` |
| 外部依赖 | Django `/api/user/users/me/` |
| 后续优化 | 增加用户中心失败重试和更细的审计日志 |
## 2. 训练配置模块
| 项 | 内容 |
|---|---|
| 主要作用 | 返回推荐病人配置和可选配置项 |
| 当前状态 | 已实现 |
| 相关接口 | `GET /api/v1/training-config/recommended``GET /api/v1/training-config/options` |
| 相关代码 | `app/api/training_config.py``app/services/training_config_service.py` |
| 相关表 | `case_base``traditional_case` |
| 后续优化 | 配置项可迁移到独立后台配置表 |
## 3. 训练会话模块
| 项 | 内容 |
|---|---|
| 主要作用 | 创建训练会话、维护状态流转和短期 memory |
| 当前状态 | 已实现 |
| 相关接口 | `POST /api/v1/sessions``POST /api/v1/sessions/{session_id}/chat/stream` |
| 相关代码 | `app/api/sessions.py``app/services/session_service.py``app/agents/patient_agent.py` |
| 相关表 | `training_sessions` |
| Redis | 保存当前会话短期问诊上下文 |
| 后续优化 | 增加会话超时策略和更完整的状态机校验 |
## 4. 王主任练习提示模块
| 项 | 内容 |
|---|---|
| 主要作用 | 根据当前病例和会话上下文生成练习提示 |
| 当前状态 | 已实现,正式接口为 SSE |
| 相关接口 | `POST /api/v1/sessions/{session_id}/hints/stream` |
| 相关代码 | `app/agents/hint_agent.py``app/services/session_service.py` |
| 相关提示词 | `app/prompts/hint/novice_case_hint.md` |
| 后续优化 | 增加科室主任风格模板、提示质量评估和可配置提示强度 |
## 5. 检查/检验模块
| 项 | 内容 |
|---|---|
| 主要作用 | 获取体格检查和辅助检查列表,返回单项检查结果 |
| 当前状态 | 已实现 |
| 相关接口 | 体格检查列表、辅助检查列表、体格检查结果、辅助检查结果 |
| 相关代码 | `app/services/order_service.py``app/repositories/case_repository.py` |
| 相关表 | `case_exam_item``session_orders` |
| 重要规则 | 结果只来自数据库;同一会话同一检查项幂等 |
| 后续优化 | 检查项可按阶段、难度、病例类型做更细配置 |
## 6. 诊断治疗提交模块
| 项 | 内容 |
|---|---|
| 主要作用 | 完成问诊后提交诊断和治疗方案 |
| 当前状态 | 已实现 |
| 相关接口 | `complete-inquiry``diagnosis``treatment` |
| 相关代码 | `app/services/session_service.py` |
| 相关表 | `session_submissions``training_sessions` |
| 后续优化 | 增加更细的字段级校验和草稿保存 |
## 7. AI 评价模块
| 项 | 内容 |
|---|---|
| 主要作用 | 读取病例、评分规则、会话过程、诊断治疗提交内容,调用 LLM 生成评价 |
| 当前状态 | 已实现 |
| 相关接口 | `POST /api/v1/sessions/{session_id}/evaluation` |
| 相关代码 | `app/services/evaluation_service.py``app/agents/scoring_agent.py``app/agents/report_agent.py` |
| 相关表 | `scoring_rule``training_record``training_score_detail` |
| 后续优化 | 增加评分一致性校验、评分重试和人工复核入口 |
## 8. PDF 报告模块
| 项 | 内容 |
|---|---|
| 主要作用 | 生成和下载 AI 评价 PDF |
| 当前状态 | 已实现 |
| 相关接口 | `POST /api/v1/evaluations/{evaluation_id}/export-pdf``GET /api/v1/evaluations/{evaluation_id}/download-pdf` |
| 相关代码 | `app/services/pdf_export_service.py` |
| 相关表 | `training_record` |
| 文件目录 | `storage/reports` |
| 后续优化 | 优化 PDF 样式、分页、字体和医院模板 |
## 9. 教学互动模块
| 项 | 内容 |
|---|---|
| 主要作用 | 返回教学题目并根据答题结果生成评价 |
| 当前状态 | 已实现 |
| 相关接口 | `GET /api/v1/teaching/cases/{case_id}/items``POST /api/v1/teaching/evaluation` |
| 相关代码 | `app/api/teaching.py``app/services/teaching_service.py` |
| 相关表 | `case_base``teaching_case``training_record``training_score_detail` |
| 后续优化 | 增加题目后台维护、错题统计和视频播放记录 |
## 10. 个人中心模块
| 项 | 内容 |
|---|---|
| 主要作用 | 查询当前用户训练记录和评价详情 |
| 当前状态 | 已实现 |
| 相关接口 | `GET /api/v1/evaluations``GET /api/v1/evaluations/{evaluation_id}` |
| 相关代码 | `app/api/evaluations.py``app/services/evaluation_service.py` |
| 相关表 | `training_record``training_score_detail` |
| 重要规则 | 必须按 `user_id` 隔离 |
| 后续优化 | 增加分页筛选、统计图表和能力画像 |
## 11. AI 学习助手模块
| 项 | 内容 |
|---|---|
| 主要作用 | 普通用户提出医学学习问题,后端优先检索机构知识库并流式回答 |
| 当前状态 | 已实现正式流式接口;无知识库时自动降级为通用 LLM 回答 |
| 相关接口 | `POST /api/v1/learning-assistant/chat/stream` |
| 相关代码 | `app/api/learning_assistant.py``app/services/learning_assistant_service.py``app/agents/learning_assistant_agent.py` |
| 相关表 | `kb_knowledge_space``kb_knowledge_chunk``kb_knowledge_query_log` |
| 外部依赖 | LLM、Embedding、Milvus |
| 后续优化 | 查询改写、rerank、多轮记忆、来源引用格式优化、成本统计 |
## 12. 后台知识库预留模块
| 项 | 内容 |
|---|---|
| 主要作用 | 内容管理员上传 PDF,构建机构知识库 |
| 当前状态 | 接口和数据结构已预留,生产级大规模入库仍需压测 |
| 相关接口 | `POST /api/v1/knowledge-admin/documents/upload`、文档列表、文档详情 |
| 相关代码 | `app/api/knowledge_admin.py``app/services/document_ingestion_service.py``app/integrations/*` |
| 相关表 | `kb_knowledge_space``kb_knowledge_document``kb_knowledge_chunk``kb_knowledge_ingestion_task` |
| 外部依赖 | Milvus、Embedding 服务、Celery |
| 后续优化 | 任务队列监控、失败重试、分片策略、文件去重、权限后台 |