123 lines
4.7 KiB
Markdown
123 lines
4.7 KiB
Markdown
# 运动训练监测与AI评估平台技术方案
|
||
|
||
## 一、平台目标
|
||
基于 Supabase(后端数据服务)、RAGFlow(AI检索增强生成)、多种数据采集手段(蓝牙手环、指环、视频监控等),构建一个集运动训练监测、AI评估、训练计划统筹于一体的智能平台。
|
||
|
||
## 二、核心功能模块
|
||
1. **用户与设备管理**
|
||
- 用户注册、登录、权限管理(Supabase Auth)。
|
||
- 设备绑定与管理(蓝牙手环、指环、摄像头等)。
|
||
|
||
2. **数据采集与同步**
|
||
- 蓝牙设备数据采集(心率、步数、睡眠、血氧等)。
|
||
- 视频监控采集(动作捕捉、姿态分析)。
|
||
- 数据实时上传至 Supabase 数据库。
|
||
|
||
3. **AI 评估与分析**
|
||
- 基于 RAGFlow 的训练数据分析与个性化建议生成。
|
||
- 运动表现评估(如动作标准性、训练负荷、恢复状态等)。
|
||
- 训练风险预警(异常检测、疲劳分析)。
|
||
|
||
4. **训练计划统筹**
|
||
- 训练计划智能生成与调整(结合 AI 分析结果)。
|
||
- 计划执行跟踪与反馈。
|
||
- 训练日志与进度可视化。
|
||
|
||
5. **多端支持**
|
||
- 移动端(App/小程序):数据采集、训练反馈、计划查看。
|
||
- Web 端:数据分析、计划管理、AI 评估报告。
|
||
|
||
## 三、技术选型建议
|
||
- **后端服务**:Supabase(Postgres 数据库、Auth、Storage、Realtime)。
|
||
- **AI 能力**:RAGFlow(检索增强生成,支持自定义知识库与模型微调)。
|
||
- **数据采集**:
|
||
- 蓝牙协议(如 BLE)对接主流手环/指环。
|
||
- 视频流采集与边缘推理(如 MediaPipe、OpenPose)。
|
||
- **前端框架**:UniApp(多端适配)、Vue3。
|
||
- **数据可视化**:ECharts、D3.js。
|
||
- **消息推送/实时**:Supabase Realtime。
|
||
|
||
## 四、关键技术难点与建议
|
||
1. **多源数据融合**:
|
||
- 统一数据格式,设计灵活的表结构(如 user、device、training_record、video_analysis 等)。
|
||
- 设备数据与用户、训练计划关联。
|
||
2. **AI 评估与个性化**:
|
||
- 结合 RAGFlow,训练自有知识库,支持运动健康问答、训练建议自动生成。
|
||
- 视频分析可用边缘推理+云端评估结合。
|
||
3. **隐私与安全**:
|
||
- 用户数据加密存储,敏感信息脱敏。
|
||
- 设备接入与数据传输安全。
|
||
4. **可扩展性**:
|
||
- 设备类型、AI模型、训练计划模板可灵活扩展。
|
||
|
||
## 五、后续迭代方向
|
||
- 增加更多设备类型支持。
|
||
- 引入更多 AI 能力(如动作评分、健康风险预测)。
|
||
- 支持团队训练、社交互动。
|
||
- 开放 API,支持第三方集成。
|
||
|
||
---
|
||
|
||
如需详细表结构、API 设计、AI 流程等可进一步细化。
|
||
|
||
/*
|
||
i18n国际化系统说明:
|
||
|
||
1. 核心设计:
|
||
- 通过ak_languages表定义支持的语言
|
||
- 主表存储默认语言(通常为中文)数据
|
||
- 翻译表以主表ID为外键,存储其他语言的翻译
|
||
|
||
2. 翻译表结构:
|
||
- 基础翻译表ak_translations包含通用字段
|
||
- 特定内容的翻译表继承基础表并添加特定字段
|
||
- 组合索引确保每个记录的每种语言只有一个翻译
|
||
|
||
3. 用户语言偏好:
|
||
- 用户表增加preferred_language字段存储语言偏好
|
||
- get_user_language()函数获取当前用户的语言设置
|
||
|
||
4. 获取翻译的方式:
|
||
- 直接SQL查询翻译表
|
||
- 使用辅助函数如get_translation(), get_region_name()
|
||
- 通过多语言视图(如vw_regions_i18n)
|
||
|
||
5. 前端界面文本翻译:
|
||
- ak_app_translations表存储UI文本翻译
|
||
- get_ui_text()函数根据key获取对应语言的文本
|
||
*/
|
||
/*
|
||
多语言报告系统设计说明:
|
||
|
||
1. 报告翻译基本原理:
|
||
- 原始报告存储在ak_sport_reports表中,带有source_language_id标识源语言
|
||
- 各语言翻译存储在ak_sport_report_translations表中
|
||
- 通过report_id和language_id的组合唯一索引确保每种语言只有一个翻译版本
|
||
|
||
2. AI翻译集成:
|
||
- ak_translation_jobs表跟踪所有翻译请求及其状态
|
||
- 支持多种内容类型的翻译(通过source_type区分)
|
||
- 记录翻译处理时间和使用的AI模型
|
||
|
||
3. 翻译状态追踪:
|
||
- pending: 等待翻译
|
||
- processing: 正在翻译
|
||
- completed: 翻译完成
|
||
- failed: 翻译失败
|
||
|
||
4. 获取报告内容:
|
||
- 通过get_report_translation函数获取指定语言的报告
|
||
- 如果没有对应语言的翻译,返回原始内容
|
||
- 如果用户未指定语言,使用其语言偏好
|
||
|
||
5. 发起翻译请求:
|
||
- 通过request_report_translation函数请求AI翻译
|
||
- 自动创建翻译任务和初始翻译记录
|
||
- 避免重复翻译已翻译内容
|
||
|
||
6. 前端集成:
|
||
- 使用vw_sport_reports_i18n视图简化前端查询
|
||
- 可显示翻译状态和是否为机器翻译
|
||
*/
|
||
|