Skip to content

核心数据流

数据流以 Flutter API client 发起请求,FastAPI router 做鉴权和参数校验,use case 或 service 编排业务,repository 负责表读写。Chat 和处方链路会额外进入 RAG / LLM,但用户业务数据仍通过 PostgreSQL 持久化。

总流向

移动端页面Flutter App
请求与接口API clients / routers
业务编排use cases / services
业务持久化repositories / RDS
AI 知识链路RAG / LLM / knowledge_chunks

用户档案数据流

StepComponentDB touchpoints说明
登录/注册auth.pyAuthServiceUserRepositoryuserssms_verificationslogin_logs手机号、验证码、密码哈希和登录审计。
更新基础资料user.pyUserService.update_basic_infousersupdate_logs更新姓名、性别、出生日期、头像等字段,并写变更日志。
更新健康指标UserService.update_health_metricsuser_profilesupdate_logs更新身高、体重、血压、肿瘤类型、治疗阶段、诊断日期等字段。
疾病/手术史DiseaseRepositoryOperationRepositoryuser_diseasesuser_operationsupdate_logs新增、更新、软删除用户病史和手术史。
完整档案读取UserService.get_complete_profileusersuser_profilesuser_diseasesuser_operations为 profile 页面、Chat/RAG 上下文和处方生成提供基础用户画像。

Assessment / Safety 数据流

评估提交/api/assessment/*
规则处理assessment / safety engine
评估快照user_health_profiles
档案上下文user_profiles
安全事件safety_incidents
关联对话dialogue_logs
FlowDB touchpoints说明
安全筛查user_health_profiles.safety_check_datarisk_level保存筛查 payload、风险等级和有效期相关结果。
完整评估user_health_profiles.assessment_datauser_profiles.assessment_context保存 canonical assessment payload,并供 Chat/RAG 与处方链路读取。
安全事件safety_incidents、可关联 dialogue_logs记录高风险内容、事件类型、处理动作和解决状态。

Chat / RAG 数据流

mermaid
flowchart LR
  Chat["消息入口\nPOST /api/chat/message"]
  Safety["安全前置\nSafetyFilter"]
  Context["上下文准备\nsession / history / profile"]
  RAG["知识生成\nRAG runtime / LLM"]
  Store["结果持久化\nchat_sessions / dialogue_logs"]
  Knowledge["知识检索\nknowledge_chunks"]

  Chat --> Safety
  Safety --> Context
  Context --> RAG
  RAG --> Knowledge
  RAG --> Store
StepDB touchpoints说明
会话准备chat_sessions无 session 时创建新会话;已有 session 时验证用户归属并更新时间。
历史注入dialogue_logs读取当前 session 最近消息,格式化后注入 RAG/LLM。
用户上下文usersuser_profilesuser_diseases提供年龄、性别、治疗阶段、肿瘤类型、疾病史等上下文。
知识检索knowledge_chunks按 query embedding、rag_schemarecord_type 等条件取 evidence。
结果持久化dialogue_logs保存用户输入、AI 响应、RAG context、confidence、safety flags 和幂等键。

处方生成数据流

mermaid
flowchart LR
  Request["处方请求\nPOST /api/prescription/generate"]
  Profile["读取档案\ncomplete profile"]
  Generate["处方生成\nLLM prompt / fallback"]
  Scheme["处方落库\nsport_schemes"]
  ChatCard["对话卡片\ndialogue_logs"]

  Request --> Profile
  Profile --> Generate
  Generate --> Scheme
  Generate --> ChatCard
StepDB touchpoints说明
档案读取usersuser_profilesuser_diseasesuser_operations生成处方前读取用户基础画像和健康档案。
RAG 检索knowledge_chunks取运动推荐、禁忌、治疗阶段等 evidence。
处方落库sport_schemes写入 sportscheme canonical payload、起止日期、审核状态和 demo 标记。
Chat 卡片dialogue_logs有 session 时写入处方卡片消息,供 Chat 页面展示和跳转。

运动执行数据流

mermaid
flowchart LR
  SportAPI["运动接口\n/api/sport/*"]
  Service["运动服务\nSportService"]
  Logs["运动记录\nsport_logs"]
  Schemes["处方方案\nsport_schemes"]
  Profile["用户档案\nuser_profiles"]

  SportAPI --> Service
  Service --> Logs
  Service --> Schemes
  Service --> Profile
FlowDB touchpoints说明
创建运动记录sport_logs创建进行中或已完成运动;进行中记录会先检查同用户未完成记录。
完成与反馈sport_logs更新 sport_endcaliffinishsport_feedback
历史/日历sport_logs按用户、ifdel=false、日期范围或开始时间读取。
运动统计sport_logsuser_profiles汇总次数、热量、时长;热量计算可读取体重。
方案列表sport_schemes按用户读取处方列表和活跃方案。

陪伴与首页健康概览数据流

FlowDB touchpoints说明
虚拟陪练状态virtual_companion初始化、更新情绪、外观和位置配置。
健康概览usersuser_profilessport_logs由 companion API 组合用户档案与运动统计。
入口边界HealthOverviewScreen 代码与路由保留,但当前不作为可达入口数据链路存在,文档不把隐藏入口写成当前可达页面。

审计与排查数据流

写入来源排查用途
login_logs登录流程登录成功率、失败原因、设备来源。
update_logs用户资料、疾病史、手术史、头像更新用户资料变更追踪。
data_migration_log数据迁移脚本迁移批次状态与错误摘要。
dialogue_logs_archive对话归档流程冷数据归档批次、归档原因、历史记录追踪。
system_configs系统配置管理feature flag 或运行配置排查。

来源锚点

  • API routers: apps/backend_service/app/api/auth.pyuser.pychat.pyprescription.pysport.pyassessment.pysafety.pycompanion.py
  • Use cases: apps/backend_service/app/use_cases/chat/send_message.pyprescription/generate_prescription.pyassessment/
  • Services: apps/backend_service/app/services/user_service.pysport_service.pyprescription_service.py
  • Repositories: apps/backend_service/app/repositories/
  • RAG: apps/backend_service/app/core/rag_engine.pyapps/backend_service/app/core/rag/knowledge_chunk_search.py
  • Flutter clients: apps/flutter_app/lib/api/