Skip to content

模块边界

本页说明 backend 主要业务模块的职责范围。它的目标不是列出全部接口,而是帮助读者理解:每个模块大概管什么、与哪些模块相邻、哪些地方仍有交叉或历史承载。

模块清单

模块当前职责主要入口
auth登录、注册、JWT、短信认证、健康信息完成标记app/api/auth.py
user基础资料、健康指标、疾病史、手术史、头像、profileapp/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
sportMET、运动日志、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

assessmentsafety

  • 语义相近,但不是一回事
  • assessment 更偏评估流程与评估数据
  • safety 更偏风险、规则、指南和安全事件

chatprescription

  • 两者都可能触发 AI / RAG / LLM
  • 但一个以会话和对话记录为中心,一个以运动处方为中心

sport

  • 当前 surface 最宽的模块之一
  • 既承载日志,也承载历史、日历、周报、分类与方案校验
  • 因此阅读 sport 时,要区分“真正的运动执行主链”和“聚合展示 / 历史视图能力”

当前需要明确的边界

  • sport 模块的 surface 比较宽,不意味着它的内部结构已经完全理顺。
  • 一些主链模块已经接 use case,一些仍更多依赖 service 层承载。

模块交接关注点

模块交接时优先确认
authtoken 写入、短信验证码、healthInfoCompleted 与建档分流是否一致
userprofile、疾病史、手术史、头像上传与前端 Onboarding / Profile 的字段契约
assessmentsafety check、完整评估提交、首页摘要和详细评估弹窗之间的数据关系
safety风险规则、事件上报、指南接口与 AI 医疗安全边界
chatsession、message、RAG context、disclaimer / safety gate 和历史记录
prescription处方生成、当前处方、替换处方与 Chat / Exercise 的消费关系
sportactive log、反馈、历史、日历、统计、周报之间的主次关系
companioncompanion overview 后端能力保留,但 Flutter 健康总览入口当前隐藏

来源锚点

  • apps/backend_service/app/api/auth.py
  • apps/backend_service/app/api/user.py
  • apps/backend_service/app/api/assessment.py
  • apps/backend_service/app/api/safety.py
  • apps/backend_service/app/api/chat.py
  • apps/backend_service/app/api/prescription.py
  • apps/backend_service/app/api/sport.py
  • apps/backend_service/app/api/companion.py