health-assistant / README.md
yuting111222's picture
Resolve merge conflicts and complete merge
ec8982e

A newer version of the Gradio SDK is available: 5.44.1

Upgrade
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

安裝說明

  1. 克隆專案
git clone https://github.com/yourusername/health_assistant.git
cd health_assistant
  1. 設置 Python 虛擬環境並安裝依賴:
python -m venv venv
source venv/bin/activate  # Linux/Mac
# 或
.\venv\Scripts\activate  # Windows

pip install -e .  # 以開發模式安裝
  1. 安裝前端依賴:
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 時需提供正當理由

貢獻指南

  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 文件

Health Assistant AI - Docker Space

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

🚀 快速開始

線上版本

🏗️ 系統架構

三層 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
  2. 選擇 "🤖 AI 食物分析" 標籤
  3. 上傳食物圖片
  4. 點擊 "開始分析"
  5. 查看分析結果

📈 準確度

  • 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