File size: 4,698 Bytes
33f1e89
 
 
 
 
 
 
 
 
 
2a072f5
33f1e89
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1fa5bbe
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
---
title: 食物卡路里檢測器
emoji: 🍎
colorFrom: green
colorTo: blue
sdk: gradio
sdk_version: 5.42.0
app_file: app.py
pinned: false
license: mit
short_description: 計算上傳照片中食物的熱量
---

# 🍎 食物卡路里檢測器

這是一個基於Gradio和Google AI的智慧食物卡路里檢測應用程式。使用者可以上傳食物照片,AI會自動識別食物種類並估算卡路里含量。

## ✨ 功能特色

- 📸 **智慧食物識別**:使用Google Gemini AI識別照片中的食物
- 🔢 **卡路里估算**:自動計算食物的大概卡路里含量
- 📊 **營養資訊**:提供基本的營養價值說明
- 🚫 **非食物檢測**:能夠識別並提醒非食物圖片
- 🌐 **繁體中文介面**:完全繁體中文使用者介面
- 🚀 **簡易部署**:支援HuggingFace Spaces一鍵部署

## 🛠️ 技術棧

- **前端框架**:Gradio
- **AI模型**:Google Gemini 1.5 Flash
- **圖片處理**:Pillow (PIL)
- **環境管理**:uv + venv
- **部署平台**:HuggingFace Spaces

## 📋 環境需求

- Python 3.8+
- Google AI API Key
- HuggingFace Token(用於部署)

## 🚀 快速開始

### 1. 克隆專案

```bash
git clone <your-repo-url>
cd CalorieApp
```

### 2. 設定Python環境

```bash
# 使用uv建立虛擬環境
uv venv .venv

# 啟動虛擬環境
source .venv/bin/activate  # Linux/Mac
# 或
.venv\\Scripts\\activate  # Windows
```

### 3. 安裝依賴

```bash
uv pip install -r requirements.txt
```

### 4. 設定環境變數

```bash
# 複製環境變數範例檔案
cp .env.example .env

# 編輯.env檔案,填入你的API金鑰
nano .env
````.env`檔案中填入:
```env
GOOGLE_API_KEY=your_google_api_key_here
HF_TOKEN=your_huggingface_token_here
```

### 5. 執行應用程式

```bash
python app.py
```

應用程式將在 `http://localhost:7860` 啟動。

## 🔑 取得API金鑰

### Google AI API Key
1. 前往 [Google AI Studio](https://makersuite.google.com/app/apikey)
2. 登入你的Google帳號
3. 建立新的API金鑰
4. **本機開發**:將金鑰加入`.env`檔案
5. **HuggingFace部署**:在Space設定中加入環境變數 `GOOGLE_API_KEY`

### HuggingFace Token(僅用於程式化部署)
1. 前往 [HuggingFace設定](https://huggingface.co/settings/tokens)
2. 建立新的Access Token
3. 選擇適當的權限範圍

## 🌐 HuggingFace Spaces 部署說明

此應用程式已針對HuggingFace Spaces進行優化:

### 環境變數設定
在你的Space設定中加入以下環境變數:
- `GOOGLE_API_KEY`: 你的Google AI API金鑰

### 自動部署
1. Fork或克隆此repository到你的HuggingFace Space
2. 設定環境變數
3. 應用程式將自動建置和部署

## 🌐 部署到HuggingFace Spaces

### 方法一:直接上傳

1. 在HuggingFace建立新的Space
2. 選擇Gradio作為SDK
3. 上傳所有專案檔案
4. 在Space設定中加入環境變數:
   - `GOOGLE_API_KEY`: 你的Google AI API金鑰

### 方法二:Git Repository

1. 在HuggingFace建立新的Space
2. 選擇「Git repository」選項
3. 將此專案推送到HuggingFace的Git repository
4. 設定環境變數(同上)

## 📁 專案結構

```
CalorieApp/
├── app.py              # 主要應用程式
├── requirements.txt    # Python依賴套件
├── .env.example       # 環境變數範例
├── .gitignore         # Git忽略檔案
├── README.md          # 專案說明文件
└── .venv/             # Python虛擬環境
```

## 🎯 使用方法

1. **上傳圖片**:點擊上傳區域選擇食物照片
2. **自動分析**:上傳後AI會自動開始分析
3. **查看結果**:右側會顯示詳細的分析結果,包括:
   - 食物名稱
   - 估算份量  
   - 預估卡路里
   - 營養說明

## ⚠️ 注意事項

- 卡路里估算僅供參考,實際數值可能因烹飪方式和份量而有所差異
- 建議上傳清晰、光線充足的食物照片以獲得更準確的結果
- AI可能對某些特殊或混合食物的識別有限制
- 請確保遵守Google AI的使用條款和限制

## 🔧 故障排除

### 常見問題

**Q: 顯示「Google AI模型未正確初始化」錯誤**
A: 請檢查`.env`檔案中的`GOOGLE_API_KEY`是否正確設定

**Q: 上傳圖片後沒有反應**
A: 請確認圖片格式支援(JPG、PNG等)且檔案大小合理

**Q: 分析結果不準確**
A: AI模型的準確度會因圖片品質、食物種類等因素而變化,建議使用清晰的照片

## 🤝 貢獻

歡迎提交Issue和Pull Request來改善這個專案!

## 📄 授權

本專案採用MIT授權條款。

## 📞 聯絡資訊

如有任何問題或建議,請透過GitHub Issues聯絡我們。