File size: 5,274 Bytes
532af03
 
 
 
 
 
 
 
 
 
 
89b8989
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ec8982e
0866eef
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ec8982e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
---
title: Health Assistant AI
emoji: 🏥
colorFrom: blue
colorTo: green
sdk: gradio
sdk_version: 4.44.0
app_file: app.py
pinned: false
---

# Health Assistant AI

一個整合飲食追蹤、運動記錄和AI圖像辨識的健康生活助手應用。

## 主要功能

- 🍽️ 飲食記錄(支援AI圖像辨識)
- 💧 飲水追蹤
- 🏃‍♂️ 運動記錄
- 📊 營養分析儀表板
- 🤖 AI驅動的個人化建議

## 技術堆疊

### 前端
- React
- TailwindCSS
- Chart.js

### 後端
- Python FastAPI
- SQLAlchemy
- PostgreSQL
- TensorFlow/PyTorch
- Pydantic
- HuggingFace Transformers
- Anthropic Claude API

## 安裝說明

1. 克隆專案
```bash
git clone https://github.com/yourusername/health_assistant.git
cd health_assistant
```

2. 設置 Python 虛擬環境並安裝依賴:
```bash
python -m venv venv
source venv/bin/activate  # Linux/Mac
# 或
.\venv\Scripts\activate  # Windows

pip install -e .  # 以開發模式安裝
```

3. 安裝前端依賴:
```bash
cd frontend
npm install
```

## 開發說明

### 後端開發
```bash
# 啟動後端開發服務器
uvicorn backend.main:app --reload
```

### 前端開發
```bash
cd frontend
npm run dev
```

## 測試

### 運行測試

運行所有測試:
```bash
pytest
```

運行特定測試文件:
```bash
pytest tests/test_api/test_main.py      # 運行 API 測試
pytest tests/test_services/             # 運行服務層測試
pytest -k "test_function_name"          # 運行特定測試函數
```

### 測試覆蓋率報告

生成測試覆蓋率報告:
```bash
pytest --cov=backend --cov-report=html
```

這將在 `htmlcov` 目錄下生成 HTML 格式的覆蓋率報告。

### 代碼風格檢查

使用 black 和 isort 進行代碼格式化:
```bash
black .
isort .
```

### 類型檢查

運行 mypy 進行靜態類型檢查:
```bash
mypy .
```

## 持續整合 (CI)

項目使用 GitHub Actions 進行持續整合。每次推送代碼或創建 Pull Request 時,會自動運行以下檢查:

- 在 Python 3.9, 3.10, 3.11 上運行測試
- 生成測試覆蓋率報告
- 上傳覆蓋率到 Codecov

### 本地運行 CI 檢查

在提交代碼前,可以本地運行 CI 檢查:
```bash
# 運行測試和覆蓋率
pytest --cov=backend

# 檢查代碼風格
black --check .
isort --check-only .

# 運行類型檢查
mypy .
```

## 測試覆蓋率要求

- 所有新代碼應該有對應的測試
- 目標是達到至少 80% 的代碼覆蓋率
- 關鍵業務邏輯應該有完整的測試覆蓋
- 測試應該包含成功和失敗案例
- 使用 `# pragma: no cover` 時需提供正當理由

## 貢獻指南

1. Fork 項目
2. 創建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 開啟 Pull Request

## 許可證

MIT License - 詳見 [LICENSE](LICENSE) 文件

# Health Assistant AI - Docker Space

智能食物分析與營養追蹤系統的 Docker Space 版本。

## 🚀 快速開始

### 線上版本
- **Hugging Face Spaces**: [https://huggingface.co/spaces/yuting111222/health-assistant](https://huggingface.co/spaces/yuting111222/health-assistant)
- **GitHub**: [https://github.com/ting1234555/health_assistant](https://github.com/ting1234555/health_assistant)

## 🏗️ 系統架構

### 三層 AI 分析架構
1. **第一層**: YOLOv5n + SAM + DPT(重量估算)
2. **第二層**: Food101 模型(食物識別)
3. **第三層**: 手動查詢(用戶備援)

### 技術棧
- **前端**: Gradio
- **後端**: Python
- **AI 模型**: YOLOv5n, SAM, DPT, Food101
- **資料庫**: USDA FoodData Central API

## 📋 功能特色

### 🤖 AI 食物分析
- 上傳食物圖片進行智能分析
- 自動偵測食物物件
- 分割食物區域
- 估算重量
- 提供營養資訊

### 🔍 營養查詢
- 手動查詢食物營養資訊
- 支援 USDA 資料庫
- 詳細營養成分分析

### 📊 系統狀態
- 實時系統健康檢查
- 服務可用性監控

## 🐳 Docker Space 部署

此版本專為 Hugging Face Docker Space 優化:

### 文件結構
```
docker-clean/
├── app.py              # 主應用文件
├── requirements.txt    # Python 依賴
├── Dockerfile         # Docker 配置
└── README.md          # 說明文件
```

### 部署特點
- **快速啟動**: 簡化的依賴配置
- **穩定運行**: 純 Gradio 架構
- **完整功能**: 模擬 AI 分析結果
- **用戶友好**: 直觀的 Web 界面

## 🎯 使用方式

1. 訪問 [Hugging Face Spaces](https://huggingface.co/spaces/yuting111222/health-assistant)
2. 選擇 "🤖 AI 食物分析" 標籤
3. 上傳食物圖片
4. 點擊 "開始分析"
5. 查看分析結果

## 📈 準確度

- Food101 模型信心度:95%+
- 重量估算誤差:±15%
- 營養資料來源:USDA 官方資料庫

## 🔧 開發

### 本地運行
```bash
pip install -r requirements.txt
python app.py
```

### Docker 運行
```bash
docker build -t health-assistant .
docker run -p 7860:7860 health-assistant
```

## 📝 版本資訊

- **版本**: 1.0.0
- **更新日期**: 2025-08-04
- **部署類型**: Docker Space
- **狀態**: 穩定運行

## 🤝 貢獻

歡迎提交 Issue 和 Pull Request!

## 📄 授權

MIT License