一款面向肠胃敏感人群的跨平台移动应用(Flutter)。通过拍照 + AI 识别快速记录每餐饮食,追踪每日身体反馈(五维评分、体重、肠胃症状),并结合历史记录向 AI 询问"这个食物我能不能吃",帮你发现引发不适的敏感食物,形成长期健康追踪档案。
数据全部保存在设备本地,无需注册登录,支持一键备份与恢复。
- 美食记录:拍照或从相册选图,AI 自动识别食物名称(可手动修改),一餐支持多个食物条目,每个条目独立填写名称与评价;餐次分早餐/午餐/晚餐/加餐,自动推断当前餐次,支持补录历史日期。
- 身体反馈:精力、消化、睡眠、肠胃、皮肤五维 1-5 分评分,体重记录(kg),肠胃症状多选(腹泻、便秘、胀气、腹痛、反酸等)并标记严重程度,支持文字备注;单日唯一,可补录。
- 每日详情:按餐次展示当日美食记录与身体反馈,支持编辑、删除(二次确认)与补录餐次/反馈。
- 日历视图:月历展示每日记录标记,点击任意日期直达详情。
- 趋势分析:近 30 天五维评分与体重折线图,维度可切换,缺数据日期自动跳过,并对照展示当日是否有饮食记录。
- 症状关联分析:近 30 天肠胃症状频率统计,按症状查看当天饮食清单,标记疑似敏感食物,并展示症状日/无症状日的次数对比。
- AI 饮食建议:输入食物名称或上传图片提问,AI 结合你近 30 天的饮食记录与肠胃症状,给出"建议食用 / 谨慎食用 / 不建议食用"三档结论、原因与风险因素,自动保存历史记录。
- 数据备份与恢复:全部记录(含图片)导出为本地备份文件,恢复前校验格式完整性,失败不影响现有数据。
底部导航包含五个 Tab:
| Tab | 功能 |
|---|---|
| 首页 | 今日概览、连续记录天数、快捷记录入口 |
| 日历 | 月历视图与日期标记 |
| 分析 | 趋势分析、症状关联分析 |
| AI 助手 | AI 饮食建议与建议历史 |
| 我的 | AI 服务设置、数据备份/恢复、关于 |
- 框架:Flutter / Dart
- 状态管理:Riverpod (flutter_riverpod)
- 本地数据库:Drift (SQLite)
- 图表:fl_chart
- 图片选择:image_picker
- 网络请求:dio(调用 OpenAI 兼容接口)
- 持久化:path_provider + shared_preferences
食物识别与饮食建议使用 OpenAI 兼容接口(默认支持硅基流动 SiliconFlow)。
- 在「我的 → AI 服务设置」中填写:
- API Key:你的平台密钥
- Base URL:如
https://api.siliconflow.cn/v1 - 食物识别模型(VL):必须为支持图片的视觉模型,如
Qwen/Qwen2.5-VL-72B-Instruct、Qwen/Qwen3-VL-30B-A3B-Instruct - 饮食建议模型:如
deepseek-ai/DeepSeek-V3
- 保存后即可使用 AI 识别与饮食建议。
未配置 API Key 时,应用使用内置 Mock 服务,AI 功能以演示模式运行,其余功能不受影响。AI 请求失败时(网络不通、超时、Key 无效、模型名不存在等)会给出明确的友好提示,食物记录仍可手动填写保存。
# 获取依赖
flutter pub get
# 运行(需连接设备或模拟器)
flutter run
# 运行测试
flutter test
# 静态检查
flutter analyze
# 构建 Android 发布包
flutter build apk --releaseAPK 输出路径:build/app/outputs/flutter-apk/app-release.apk
- 所有记录(含图片)仅存储在设备本地,无云端同步,无需注册登录。
- 支持将全部数据导出为备份文件,请在「我的 → 数据备份」中操作。
- 与 AI 服务通信时仅发送当前图片或提问文本及近 30 天记录摘要,用于生成建议。
lib/
├── data/ # Drift 数据库、表定义、初始化
├── models/ # 数据模型、枚举、字段校验
├── repositories/ # 数据访问层(餐次/反馈/建议)
├── services/ # AI 服务、历史摘要、备份恢复
├── providers/ # Riverpod 状态管理
├── pages/ # 页面(首页/日历/分析/AI/我的/详情/表单)
└── main.dart # 应用入口
项目包含数据模型、字段校验、Repository 层、AI 服务层的单元测试(内存数据库),当前 60 个用例全部通过:
flutter test- 版本:0.1.0
- 平台:Android / iOS
- 适用人群:肠胃敏感人群、需要长期记录饮食与身体状况的用户