外观
模块边界
本页说明 backend 主要业务模块的职责范围。它的目标不是列出全部接口,而是帮助读者理解:每个模块大概管什么、与哪些模块相邻、哪些地方仍有交叉或历史承载。
模块清单
| 模块 | 当前职责 | 主要入口 |
|---|---|---|
auth | 登录、注册、JWT、短信认证、健康信息完成标记 | app/api/auth.py |
user | 基础资料、健康指标、疾病史、手术史、头像、profile | app/api/user.py |
assessment | 安全检查、完整评估、上次评估、症状 | app/api/assessment.py |
safety | 安全校验、风险评估、指南、事件上报、知识验证 | app/api/safety.py |
chat | 会话、消息、历史、session 管理、安全指南 | app/api/chat.py |
prescription | 处方生成、读取、替换、统计与 demo 相关入口 | app/api/prescription.py |
sport | MET、运动日志、active log、分类、统计、历史、日历、周报、方案校验 | app/api/sport.py |
companion | 状态、外观、初始化、健康总览 | app/api/companion.py |
当前模块关系
mermaid
flowchart LR
Auth["认证与建档\nauth"]
Profile["用户档案\nuser / assessment"]
Safety["安全边界\nsafety"]
AI["咨询与处方\nchat / prescription"]
Sport["运动执行\nsport"]
Companion["陪伴与概览\ncompanion"]
Auth --> Profile
Profile --> Safety
Profile --> AI
Safety --> AI
AI --> Sport
Sport --> Companion
AI --> Companion这张图不表示严格调用图,而是表示业务邻接关系:哪些模块在同一条业务闭环里相互影响。
模块边界的几个重点
auth
- 只看名字容易误解成“纯登录模块”,但它还承载
complete-health-info - 因此 auth 与 onboarding / user profile 存在边界相邻
user
- 并不只是读写基础信息
- 还承载疾病史、手术史、头像、profile completion 等与健康档案密切相关的数据 surface
assessment 与 safety
- 语义相近,但不是一回事
assessment更偏评估流程与评估数据safety更偏风险、规则、指南和安全事件
chat 与 prescription
- 两者都可能触发 AI / RAG / LLM
- 但一个以会话和对话记录为中心,一个以运动处方为中心
sport
- 当前 surface 最宽的模块之一
- 既承载日志,也承载历史、日历、周报、分类与方案校验
- 因此阅读
sport时,要区分“真正的运动执行主链”和“聚合展示 / 历史视图能力”
当前需要明确的边界
sport模块的 surface 比较宽,不意味着它的内部结构已经完全理顺。- 一些主链模块已经接 use case,一些仍更多依赖 service 层承载。
模块交接关注点
| 模块 | 交接时优先确认 |
|---|---|
auth | token 写入、短信验证码、healthInfoCompleted 与建档分流是否一致 |
user | profile、疾病史、手术史、头像上传与前端 Onboarding / Profile 的字段契约 |
assessment | safety check、完整评估提交、首页摘要和详细评估弹窗之间的数据关系 |
safety | 风险规则、事件上报、指南接口与 AI 医疗安全边界 |
chat | session、message、RAG context、disclaimer / safety gate 和历史记录 |
prescription | 处方生成、当前处方、替换处方与 Chat / Exercise 的消费关系 |
sport | active log、反馈、历史、日历、统计、周报之间的主次关系 |
companion | companion overview 后端能力保留,但 Flutter 健康总览入口当前隐藏 |
来源锚点
apps/backend_service/app/api/auth.pyapps/backend_service/app/api/user.pyapps/backend_service/app/api/assessment.pyapps/backend_service/app/api/safety.pyapps/backend_service/app/api/chat.pyapps/backend_service/app/api/prescription.pyapps/backend_service/app/api/sport.pyapps/backend_service/app/api/companion.py