Files
--/README.md

202 lines
4.5 KiB
Markdown
Raw Normal View 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 组件
```
## 使用说明
### 启动开发环境
```bash
# 安装依赖(首次运行)
pnpm install
# 启动开发服务器
coze dev
```
访问http://localhost:5000
### 功能使用
#### 1. AI 健康助手
- 点击导航栏的 "AI 对话"
- 输入健康相关问题
- AI 会提供专业的建议和解答
#### 2. 图片识别与营养分析
- 点击导航栏的 "图片识别"
- 上传食物图片
- 点击 "开始分析"
- AI 会返回每 100g 的标准营养数据
- 调整实际份量(克),营养数据会自动按比例计算
- AI 会提供图片中食物的大致份量估算作为参考
- 可将分析结果保存到健康档案
#### 3. 健康档案
- 点击导航栏的 "健康档案"
- 在 "饮食记录" 标签页添加饮食数据
- 在 "运动记录" 标签页添加运动数据
- 在 "数据统计" 标签页查看统计信息
## API 接口
### POST /api/chat
AI 对话接口,支持流式输出
**请求体:**
```json
{
"message": "用户消息",
"history": [
{
"role": "user",
"content": "历史消息"
}
]
}
```
**响应:** SSE 流式输出
### POST /api/analyze-food
食物图片分析接口
**请求体:**
```json
{
"image": "base64 图片数据"
}
```
**响应:**
```json
{
"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. **数据安全**:所有数据存储在本地浏览器中,不会上传到服务器
## 开发
### 类型检查
```bash
npx tsc --noEmit
```
### 构建生产版本
```bash
coze build
```
### 启动生产环境
```bash
coze start
```
## License
MIT
## 贡献
欢迎提交 Issue 和 Pull Request
---
**智能健康管家** - 让 AI 帮助您管理健康生活 🏥💪