184 lines
3.7 KiB
Markdown
184 lines
3.7 KiB
Markdown
|
|
# 智能健康管家
|
|||
|
|
|
|||
|
|
基于 AI 驱动的健康管理平台,提供智能对话、图片识别、卡路里计算和健康数据管理功能。
|
|||
|
|
|
|||
|
|
## 功能特性
|
|||
|
|
|
|||
|
|
### 1. AI 智能对话
|
|||
|
|
- 基于 LLM 大语言模型的智能对话系统
|
|||
|
|
- 提供专业的健康咨询和建议
|
|||
|
|
- 支持多轮对话,记住上下文
|
|||
|
|
- 流式输出,实时响应
|
|||
|
|
|
|||
|
|
### 2. 图片识别与营养分析
|
|||
|
|
- 上传食物图片,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. 图片识别与营养分析
|
|||
|
|
- 点击导航栏的 "图片识别"
|
|||
|
|
- 上传食物图片
|
|||
|
|
- 点击 "开始分析"
|
|||
|
|
- 查看详细的营养成分信息
|
|||
|
|
|
|||
|
|
#### 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,
|
|||
|
|
"description": "食物描述"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 数据存储
|
|||
|
|
|
|||
|
|
健康数据使用浏览器的 `localStorage` 进行本地存储:
|
|||
|
|
- `dietRecords`: 饮食记录
|
|||
|
|
- `exerciseRecords`: 运动记录
|
|||
|
|
|
|||
|
|
## 注意事项
|
|||
|
|
|
|||
|
|
1. **图片上传限制**:最大 5MB
|
|||
|
|
2. **支持格式**:JPG、PNG、WebP
|
|||
|
|
3. **图片质量**:建议使用清晰、光线充足的图片
|
|||
|
|
4. **数据安全**:所有数据存储在本地浏览器中,不会上传到服务器
|
|||
|
|
|
|||
|
|
## 开发
|
|||
|
|
|
|||
|
|
### 类型检查
|
|||
|
|
```bash
|
|||
|
|
npx tsc --noEmit
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 构建生产版本
|
|||
|
|
```bash
|
|||
|
|
coze build
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 启动生产环境
|
|||
|
|
```bash
|
|||
|
|
coze start
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## License
|
|||
|
|
|
|||
|
|
MIT
|
|||
|
|
|
|||
|
|
## 贡献
|
|||
|
|
|
|||
|
|
欢迎提交 Issue 和 Pull Request!
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
**智能健康管家** - 让 AI 帮助您管理健康生活 🏥💪
|