品牌名(App Store 用户可见)
- 中文区:FitGenius
- 英文区:Fit-Genius(带连字符,避开英文区同名占用)
- Slogan:让每一次训练都不白费
工程层标识(永远不变)
- Bundle ID:
com.swordingk.fitgenius(已上架锁定)- App Group:
group.com.swordingk.fitgenius- URL Scheme:
fitgenius://
FitGenius 是一款原生 iOS 健身应用,支持训练计划管理和饮食追踪双模式,通过 AI 技术为用户生成个性化训练计划,并提供智能饮食分析和营养建议。
AI 请求统一通过腾讯云 CloudBase 的 provider-neutral 代理(云函数 fitgenius-api);当前主用 MiniMax-M3,Aliyun 仅作紧急回滚。iOS 包内不含任何第三方 API key——也支持 App 内「直连模式」填自有 Key,完全不依赖后端。
- 🤖 AI 智能生成:根据用户身体数据和健身目标,自动生成个性化训练计划
- 🔄 灵活循环系统:支持任意天数的训练循环(3天、4天、5天、7天等)
- 🎥 动作分析教练:支持在 AI 助手上传训练视频,使用 Apple Vision 本地识别深蹲、硬拉、卧推、站姿推举
- 🧠 可解释反馈:在真实视频截帧上绘制绿色骨架和红色重点位置,并输出评分、证据、修正方法和练习建议
- 📊 数据统计分析:训练容量趋势、重量增长曲线、坚持天数统计
- 💬 AI 助手对话:通过自然语言与 AI 交流,随时调整训练计划
- ✏️ 手动编辑:支持手动修改训练动作、组数、次数和重量
- 🔥 坚持天数追踪:自动统计连续训练天数,激励用户坚持
- 🍽️ 饮食记录:支持文字和图片两种方式记录每日饮食
- 🤖 AI 营养分析:自动分析饮食内容,计算热量和三大营养素
- 📈 营养趋势图表:可视化展示每日热量、蛋白质、碳水、脂肪摄入趋势
- 💡 饮食建议:AI 根据训练目标提供个性化饮食建议
- 📸 多模态识别:支持拍照识别食物并自动分析营养成分
- ⚡️ 三类 Widget:支持综合、训练、饮食小组件,可同时放在主屏幕
- 📊 训练与营养概览:展示今日训练进度、下一动作、热量和三大营养素比例
- 🎨 系统背景:自动适配 iOS 系统的深色/浅色模式
- 🍎 Apple 登录:支持 Sign in with Apple,保护用户隐私
- 📴 本地优先:数据主要存储在本地设备
- ☁️ 后端云同步:登录后通过腾讯云 CloudBase 同步训练计划、饮食记录和账户快照
- 🔒 健康免责声明:所有健康建议均标注来源,仅供参考
用户首次使用时,通过简洁的引导流程输入:
- 基本信息(姓名、年龄、性别、身高、体重)
- 健身目标(增肌、减脂、塑形、提升力量)
- 训练环境(健身房、家庭)
- 可用器械
- 身体限制/伤病(可选)
AI 根据这些信息生成定制化训练计划。
循环展示系统:
- 显示完整的训练循环(不限于7天)
- 每天显示对应的日期和星期
- 自动定位到今天的训练
- 支持休息日标记
- 显示"循环第 X 周 · 第 Y 天"
训练详情:
- 每个动作显示:名称、组数、次数、重量、备注
- 一键标记完成状态
- 实时更新训练进度
- 支持手动编辑动作参数
训练 AI 助手:
- 自然语言交流
- 理解用户意图(修改计划、调整重量等)
- 返回结构化建议
- 支持动作分析(上传照片/视频)
- 训练视频走本地 Apple Vision + 规则引擎:自动识别深蹲、硬拉、卧推、站姿推举,输出真实视频截帧画线反馈
- 大模型只用于解释本地指标和生成教练式文字建议,不替代本地评分,也不上传原始训练视频
饮食 AI 助手:
- 饮食记录和营养分析
- 个性化饮食建议
- 食物照片识别与每餐热量/蛋白质/碳水/脂肪回写
坚持天数统计:
- 显示"你坚持训练计划已经 X 天"
- 今日全部完成 → 天数 +1
- 连续 2 天未完成 → 清零
训练数据可视化:
- 训练天数、完成动作数、总组数、训练容量
- 按日期的训练坚持情况(柱状图)
- 训练容量趋势(折线图)
- 每个力量动作的重量增长曲线
饮食记录方式:
- 文字记录:直接输入饮食内容(如"早餐:鸡蛋2个,牛奶250ml,全麦面包2片")
- 拍照记录:拍摄食物照片,AI 自动识别并分析
- 每餐营养:每一餐独立显示热量、蛋白质、碳水和脂肪,并支持编辑或删除
营养趋势:
- 每日/每周热量和营养素摄入趋势
- 自动计算营养摘要
- Apple 登录同步
- 每日训练提醒设置
- Apple Watch 训练辅助入口
- Widget 使用说明
- 账户删除与本地数据重置
| 技术 | 说明 |
|---|---|
| SwiftUI | UI 框架 |
| SwiftUI Charts | 数据可视化 |
| SwiftData | 数据持久化 |
| WidgetKit | iOS 小组件 |
| Apple Vision | 本地姿态检测(深蹲 / 硬拉 / 卧推 / 站姿推举动作分析) |
| Sign in with Apple | 用户认证 |
| URLSession + SSE | AI 流式响应 |
- 训练动作评分:iPhone 本地抽帧,Apple Vision 提取人体关键点,转换为平台无关的
PoseFrame / JointPoint,再由本地规则引擎评分。 - 用户可见反馈图:始终使用真实视频截帧作为背景,在截帧上绘制绿色骨架和红色问题位置;骨架白底图只作为内部 AI 教练理解动作的辅助输入,不作为主反馈图展示。
- AI 教练补充:大模型根据本地指标、问题列表和骨架关键帧生成解释、修正口令和练习建议;它不能覆盖本地评分或编造未检测到的问题。
- 饮食图片识别:饮食图片使用快速稳定的多模态模型路径,结果写回每餐热量、蛋白质、碳水和脂肪;复杂混合餐会要求模型拆分主食、蛋白、蔬菜和油脂/酱汁进行估算。
- 隐私边界:原始训练视频不上传到多模态 AI 接口;AI provider key 只在 CloudBase 后端环境变量中,绝不进 iOS 包。
| 技术 | 说明 |
|---|---|
| 腾讯云 CloudBase 云函数 | cloudfunctions/fitgenius-api(Event 函数:/api/ai/chat、/api/auth/apple) |
| Node.js 22 | 运行时 |
| MiniMax-M3 | 全模态大模型(视觉 + 文本),经后端代理转发 |
jose |
Apple JWKS 验签 + HS256 session JWT |
| CloudBase 存储 | 动作库 GIF / 媒体资源 CDN |
双模式 AI 通道:① 默认走 CloudBase 代理(iOS 仅持
Authorization: Bearer <sessionToken>,provider key 只在后端 env);② App 内「直连模式」填自有 OpenAI 兼容 Key,免登录、免后端。两种模式 provider key 绝不进 iOS bundle。
⚠️ 仓库内仍保留早期的 Vercelapi/+vercel.json方案,但当前生产环境已迁移至 CloudBase,Info.plist的FitGeniusBackendURL指向 CloudBase 域名。
- 环境要求:Xcode 15+,部署目标 iOS 17.6+;真机运行需自有 Apple Developer 签名 Team,模拟器无需付费即可运行。
- AI 功能接入:默认连接 CloudBase 后端代理(需后端在线);若想自托管或纯本地体验,可在 App「我的 → AI 服务」填入自有 OpenAI 兼容 Key 走直连模式,无需后端、无需登录。
- 获取最新源码:
git clone默认分支即为当前可用版本(见版本历史),或下载最新 release 标签。
FitGenius 的所有健康、饮食、运动建议均基于以下权威来源:
| 分类 | 来源 |
|---|---|
| 营养 | 中国营养学会 |
| 营养 | USDA 食品数据中心 |
| 营养 | NIH 健康信息 |
| 运动 | ACSM (美国运动医学会) |
| 运动 | NSCA (美国国家体能协会) |
| 健康 | WHO 世界卫生组织 |
| 健康 | CDC 美国疾控中心 |
⚠️ 免责声明:FitGenius 提供的健身和营养信息仅供参考,不构成医疗建议。在开始任何健身计划或做出重大饮食改变之前,请咨询医生或合格的健康专业人员。
- ✨ 能力感知处方 + 目标多选(v1.5 体验优化)
- 入档新增性别、训练经验采集,目标支持多选,新增「减压/睡眠」目标
- AI 提示词按用户基线自动退阶(女性/新手自重复合动作优先退阶版本),用户可对话式要求 AI 修改计划
- 隐私政策按真实架构重写(CloudBase 云同步 + MiniMax + 可选登录 + 性别 PII 声明)
- 🐛 动作库图标修复:缩略图完整显示(修复 UIImageView 固有尺寸撑破 52×52 容器导致只显示一部分)
- 🐛 图片分析修复:饮食/健身图片分析不再报
EXCEED_MAX_PAYLOAD_SIZE(CloudBase JSON 体 ~100KB 硬限,图片压到 ≤50KB 单图发送) - 🐛 AI 改计划修复:解析失败不再静默兜底“假成功+乱改”,改为保留旧计划并提示用户
- 🔧 提示词优先级强化:用户要求与备注中的分化偏好/伤病限制为最高优先级,必须严格执行
- 🐛 内存修复:动作库列表 GIF 改为仅解码首帧,修复滚动时全帧解码导致 OOM 强杀(signal 9)
- 底层沿用 v1.2.0 的 AI 动作教练、后端基础设施、Watch/Widget 与合规能力
- ✨ AI 助手动作教练(深蹲 / 硬拉 / 卧推 / 站姿推举,使用 Apple Vision)
- 视频帧提取 → 姿态关键点 → 规则引擎评分
- AI 助手内输出画线关键帧、动作评分、证据、修正口令、练习方法和下次训练重点
- 原始训练视频不上传到多模态 AI 接口
- ✨ 后端基础设施(云同步:训练计划 / 饮食记录 / 动作分析 / 账户快照,现基于腾讯云 CloudBase)
- Apple Sign in token 交换与会话管理
- AI 代理(iOS 不再直连 provider)
- 训练计划、饮食记录、动作分析与账户快照云同步
- ✨ Apple Watch / Widget 体验
- Watch 支持今日训练、组间休息、心率和 HealthKit workout 写入
- Widget 拆分为综合、训练、饮食三类
- 🔒 合规与安全
- 新增
PrivacyInfo.xcprivacy(App Store 5.1.1) - 从 pbxproj / xcscheme / Info.plist 移除硬编码 API key
- Git 历史中误提交的 key 已用
git filter-repo替换
- 新增
- ✅ 添加医疗健康信息来源页面
- ✅ 添加 AI 助手医疗免责声明弹窗
- ✅ 添加饮食页面数据来源链接
- ✅ 优化 Widget 小组件体验
- 🐛 修复部分已知问题
- ✨ 新增每日训练提醒功能
- 🔧 个人中心改版
- 🐛 修复部分已知问题
- 产品官网: https://swording-k.github.io/fit-genius/
- 隐私政策: https://swording-k.github.io/fit-genius/privacy-policy.html
- 问题反馈: swordingk@gmail.com
本项目仅供学习交流使用。