health-assistant / README.md
yuting111222's picture
Resolve merge conflicts and complete merge
ec8982e
---
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