目錄
Nutrition Guard 是一個零月費的飲食風險管理平台,140 種食物依病症標籤即時計算風險分數,登入後可記錄飲食日誌,並透過 Workers AI 生成個人化中文建議與 PDF 報告。
背景
慢性病患者(痛風、高血脂、糖尿病、高血壓)在日常飲食中缺乏簡單可查、多病症兼顧的風險參考工具。現有營養資料庫多為靜態表格,難以即時評估特定食物對多種疾病的複合風險。
挑戰
需在 Cloudflare Pages + Workers 全無伺服器架構下,同時支援即時多病症風險評分、Firebase ID token 跨服務驗證、Workers AI 個人化推理、7 天飲食記錄圖表與 PDF 匯出,且月費必須維持在零元。
解法
採用純 Cloudflare + Firebase 全無伺服器架構,以標籤加總取代複雜 ML 模型做風險評分:
- 以 React 18 + Vite 5 + TailwindCSS 建置前端,Zustand 管理本地狀態並持久化至 localStorage
- 以 Cloudflare Workers + D1 建置後端 API,存放 140 種食物與 ~300 個疾病標籤
- 以 Cloudflare Workers AI(Llama 3.1 8B) 根據近 7 天飲食記錄生成個人化建議
- 以 Firebase Auth + Firestore 實作 Google Sign-In 與飲食日誌跨裝置同步
- 以標籤加總風險評分(≥4 高風險 / ≥2 中風險 / <2 低風險)取代黑盒模型,確保可解釋性
架構圖
graph LR
User["使用者"] --> FE["React 18 SPA\n(Cloudflare Pages)"]
FE -->|"Google Sign-In"| Firebase["Firebase Auth"]
FE -->|"飲食日誌"| Firestore[("Firebase Firestore")]
FE -->|"食物查詢 + AI 分析"| Worker["Cloudflare Workers"]
Worker -->|"驗證 ID Token"| Firebase
Worker --> D1[("Cloudflare D1\n140 食物 / ~300 標籤")]
Worker -->|"個人化建議"| AI["Workers AI\n(Llama 3.1 8B)"]
流程圖
flowchart TD
A(["使用者搜尋食物"]) --> B[D1 查詢 + 標籤加總]
B --> C{風險分數}
C -- ≥4 --> D[🔴 高風險提示]
C -- ≥2 --> E[🟡 中風險提示]
C -- <2 --> F[🟢 低風險]
D & E & F --> G{已登入?}
G -- 是 --> H[記錄飲食日誌]
H --> I[Workers AI 個人化建議]
I --> J[PDF 報告匯出]
G -- 否 --> Z(["結束"])
J --> Z
成果
完成八項核心功能並部署至 Cloudflare Pages,月費維持零元,140 種食物可在未登入情況下即時查詢多病症風險分數。
相關標籤
相關文章
a920604a Labs
pnpm monorepo 整合四個獨立工具 SPA,共用 Firebase Auth 與 Chakra UI,部署於 Cloudflare Pages。
Live English Tutor
即時語音 AI 英文家教:WebRTC 麥克風互動 + Gemini 即時糾錯 + 課後中文報告。
LLM Assistant
arXiv 論文 RAG 平台:每日自動爬取 + 混合向量搜尋 + 雙語 Q&A + Grafana 監控。