基于 AI 视觉识别的饮食分析平台。用户上传食物图片,系统自动识别食物名称、重量、热量及营养成分(碳水、蛋白质、脂肪),并提供饮食记录、数据分析、个性化建议等功能。
核心功能:
AI 智能识图(自动识别热量和营养成分)
饮食记录管理(历史记录、详情查看)
数据分析(今日统计、周报、趋势图表)
个性化建议(基于身体数据和饮食历史)
身体档案(BMR/TDEE 计算、每日推荐摄入量)
1. 前端界面:基于 Vue 3 Composition API 开发的单页应用,采用组件化架构设计,包含首页(今日统计、最近记录)、饮食记录页(图片上传、AI 分析、历史记录)、分析报告页(周报数据、趋势图表、营养素比例、个性化建议)、个人中心页(身体档案、BMR/TDEE 显示、设置管理)等核心页面,使用 Tailwind CSS 实现响应式布局,完美适配移动端和桌面端。
2. 后端 API:基于 FastAPI 框架构建的 RESTful API 服务,采用异步编程模式提升性能,提供用户认证模块(注册、登录、Token 刷新)、饮食记录模块(图片上传、记录 CRUD、列表查询、详情获取)、数据分析模块(今日统计、周报生成、图表数据、健康评分计算、建议生成)、用户档案模块(档案 CRUD、BMR/TDEE 自动计算)等完整业务接口,使用 Pydantic 进行数据验证和序列化。
3. 数据库:使用 PostgreSQL 作为主数据库,通过 SQLAlchemy ORM 进行数据建模和操作,设计用户表、用户档案表、饮食记录表、分析报告表、AI 分析日志表等核心数据表,使用 Alembic 进行数据库版本管理和迁移,支持数据完整性约束和索引优化,确保数据安全和查询性能。
4. AI 服务集成:封装硅基流动 API 客户端,集成 THUDM/GLM-4.1V-9B-Thinking 视觉模型,实现图片上传、Base64 编码、Prompt 工程、API 调用、响应解析等完整流程,支持图片格式验证、大小限制、错误处理和重试机制,将 AI 识别结果转换为结构化的营养数据(食物名称、重量、热量、碳水、蛋白质、脂肪),并保存到数据库供后续分析使用。
5. 用户认证:实现基于 JWT Token 的认证机制,使用 python-jose 生成和验证 Token,支持 Access Token 和 Refresh Token 双 Token 机制,Token 存储在 localStorage 中,通过 Axios 拦截器自动添加认证头,实现路由守卫保护需要登录的页面,支持 Token 过期自动刷新和登录状态持久化,使用 bcrypt 对用户密码进行加密存储,确保用户数据安全。