Spaces:
Running
Running
A newer version of the Gradio SDK is available:
5.44.1
metadata
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
安裝說明
- 克隆專案
git clone https://github.com/yourusername/health_assistant.git
cd health_assistant
- 設置 Python 虛擬環境並安裝依賴:
python -m venv venv
source venv/bin/activate # Linux/Mac
# 或
.\venv\Scripts\activate # Windows
pip install -e . # 以開發模式安裝
- 安裝前端依賴:
cd frontend
npm install
開發說明
後端開發
# 啟動後端開發服務器
uvicorn backend.main:app --reload
前端開發
cd frontend
npm run dev
測試
運行測試
運行所有測試:
pytest
運行特定測試文件:
pytest tests/test_api/test_main.py # 運行 API 測試
pytest tests/test_services/ # 運行服務層測試
pytest -k "test_function_name" # 運行特定測試函數
測試覆蓋率報告
生成測試覆蓋率報告:
pytest --cov=backend --cov-report=html
這將在 htmlcov
目錄下生成 HTML 格式的覆蓋率報告。
代碼風格檢查
使用 black 和 isort 進行代碼格式化:
black .
isort .
類型檢查
運行 mypy 進行靜態類型檢查:
mypy .
持續整合 (CI)
項目使用 GitHub Actions 進行持續整合。每次推送代碼或創建 Pull Request 時,會自動運行以下檢查:
- 在 Python 3.9, 3.10, 3.11 上運行測試
- 生成測試覆蓋率報告
- 上傳覆蓋率到 Codecov
本地運行 CI 檢查
在提交代碼前,可以本地運行 CI 檢查:
# 運行測試和覆蓋率
pytest --cov=backend
# 檢查代碼風格
black --check .
isort --check-only .
# 運行類型檢查
mypy .
測試覆蓋率要求
- 所有新代碼應該有對應的測試
- 目標是達到至少 80% 的代碼覆蓋率
- 關鍵業務邏輯應該有完整的測試覆蓋
- 測試應該包含成功和失敗案例
- 使用
# pragma: no cover
時需提供正當理由
貢獻指南
- Fork 項目
- 創建特性分支 (
git checkout -b feature/AmazingFeature
) - 提交更改 (
git commit -m 'Add some AmazingFeature'
) - 推送到分支 (
git push origin feature/AmazingFeature
) - 開啟 Pull Request
許可證
MIT License - 詳見 LICENSE 文件
Health Assistant AI - Docker Space
智能食物分析與營養追蹤系統的 Docker Space 版本。
🚀 快速開始
線上版本
- Hugging Face Spaces: https://huggingface.co/spaces/yuting111222/health-assistant
- GitHub: https://github.com/ting1234555/health_assistant
🏗️ 系統架構
三層 AI 分析架構
- 第一層: YOLOv5n + SAM + DPT(重量估算)
- 第二層: Food101 模型(食物識別)
- 第三層: 手動查詢(用戶備援)
技術棧
- 前端: 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 界面
🎯 使用方式
- 訪問 Hugging Face Spaces
- 選擇 "🤖 AI 食物分析" 標籤
- 上傳食物圖片
- 點擊 "開始分析"
- 查看分析結果
📈 準確度
- Food101 模型信心度:95%+
- 重量估算誤差:±15%
- 營養資料來源:USDA 官方資料庫
🔧 開發
本地運行
pip install -r requirements.txt
python app.py
Docker 運行
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