Files
--/README.md
jaystar 6d72acc4ea feat: 优化食物识别功能,添加份量调整和按比例计算
优化内容:
- API 返回每 100g 的标准营养数据
- 新增 weightHint 字段,AI 估算图片中食物的大致份量
- 前端添加份量输入框,用户可手动调整实际重量
- 实现营养数据按份量比例自动计算逻辑
- 优化营养分析结果展示界面,显示每 100g 标准值和用户调整后的实际值
- 添加保存到健康档案功能按钮
- 更新文档说明
2026-01-22 09:54:36 +08:00

4.5 KiB
Raw Blame History

智能健康管家

基于 AI 驱动的健康管理平台,提供智能对话、图片识别、卡路里计算和健康数据管理功能。

功能特性

1. AI 智能对话

  • 基于 LLM 大语言模型的智能对话系统
  • 提供专业的健康咨询和建议
  • 支持多轮对话,记住上下文
  • 流式输出,实时响应

2. 图片识别与营养分析

  • 上传食物图片AI 智能识别食物
  • 自动分析营养成分:
    • 卡路里
    • 蛋白质
    • 碳水化合物
    • 脂肪
    • 膳食纤维
  • 使用先进的视觉模型,识别准确
  • 份量调整功能
    • AI 提供每 100g 的标准营养数据
    • AI 估算图片中食物的大致份量
    • 用户可手动调整实际重量
    • 营养数据按份量比例自动计算
  • 支持一键保存到健康档案

3. 健康数据管理

  • 饮食记录:记录每日摄入的食物和营养数据
  • 运动记录:记录运动项目和消耗的卡路里
  • 数据统计
    • 总摄入卡路里
    • 总消耗卡路里
    • 净卡路里计算
    • 营养成分统计
    • 运动时长统计
  • 数据持久化存储localStorage

4. 用户界面

  • 现代化、响应式设计
  • 支持深色模式
  • 直观的操作界面
  • 流畅的交互体验

技术栈

  • 框架Next.js 16 (App Router)
  • 语言TypeScript
  • UI 组件shadcn/ui (Radix UI)
  • 样式Tailwind CSS 4
  • 图标Lucide React
  • AI 集成coze-coding-dev-sdk
    • 大语言模型doubao-seed-1-8-251228
    • 视觉模型doubao-seed-1-6-vision-250815

项目结构

src/
├── app/
│   ├── api/
│   │   ├── chat/              # AI 对话 API
│   │   └── analyze-food/      # 食物分析 API
│   ├── chat/                  # AI 对话页面
│   ├── recognition/           # 图片识别页面
│   ├── health/                # 健康档案页面
│   ├── layout.tsx             # 根布局
│   └── page.tsx               # 首页
└── components/ui/             # shadcn/ui 组件

使用说明

启动开发环境

# 安装依赖(首次运行)
pnpm install

# 启动开发服务器
coze dev

访问:http://localhost:5000

功能使用

1. AI 健康助手

  • 点击导航栏的 "AI 对话"
  • 输入健康相关问题
  • AI 会提供专业的建议和解答

2. 图片识别与营养分析

  • 点击导航栏的 "图片识别"
  • 上传食物图片
  • 点击 "开始分析"
  • AI 会返回每 100g 的标准营养数据
  • 调整实际份量(克),营养数据会自动按比例计算
  • AI 会提供图片中食物的大致份量估算作为参考
  • 可将分析结果保存到健康档案

3. 健康档案

  • 点击导航栏的 "健康档案"
  • 在 "饮食记录" 标签页添加饮食数据
  • 在 "运动记录" 标签页添加运动数据
  • 在 "数据统计" 标签页查看统计信息

API 接口

POST /api/chat

AI 对话接口,支持流式输出

请求体:

{
  "message": "用户消息",
  "history": [
    {
      "role": "user",
      "content": "历史消息"
    }
  ]
}

响应: SSE 流式输出

POST /api/analyze-food

食物图片分析接口

请求体:

{
  "image": "base64 图片数据"
}

响应:

{
  "foodName": "食物名称",
  "calories": 100,
  "protein": 10,
  "carbs": 20,
  "fat": 5,
  "fiber": 2,
  "standardWeight": 100,
  "weightHint": "图片中约200g",
  "description": "食物描述"
}

说明:

  • standardWeight: 标准份量,固定为 100g
  • weightHint: AI 估算的图片中食物大致份量
  • 其他营养数据均为每 100g 的标准值

数据存储

健康数据使用浏览器的 localStorage 进行本地存储:

  • dietRecords: 饮食记录
  • exerciseRecords: 运动记录

注意事项

  1. 图片上传限制:最大 5MB
  2. 支持格式JPG、PNG、WebP
  3. 图片质量:建议使用清晰、光线充足的图片
  4. 份量估算AI 仅供参考,建议结合实际情况调整份量
  5. 营养数据:基于标准营养数据库,实际含量可能因食材和烹饪方式不同
  6. 数据安全:所有数据存储在本地浏览器中,不会上传到服务器

开发

类型检查

npx tsc --noEmit

构建生产版本

coze build

启动生产环境

coze start

License

MIT

贡献

欢迎提交 Issue 和 Pull Request


智能健康管家 - 让 AI 帮助您管理健康生活 🏥💪