前幾天我們深入 NGO 現場,將紙本訂房簿的混亂、人情套單漏洞、獨立房間排程、90天預約限制、2次改期上限,以及跨世代 12H/24H 時間習慣,全數抽象化為嚴密的系統邏輯需求。
有了清晰規格後,今天我們正式引入 Google 免費生態系,並以最新的 Gemini 3.6 Flash 為核心 AI 引擎,建構一套完全不花一毛錢(0 預算)且穩定投產的軟體架構。
全景技術架構圖(Zero-Budget Tech Stack)
這套系統的設計哲學是:「前台流暢體驗、後端極簡維護、AI 智慧解析、底層完全免費」。
┌─────────────────────────────────────────────────────────────────┐
│ 前端呈現層 (Presentation Layer) │
│ • React (Vite) + Tailwind CSS + FullCalendar │
│ • 雙時制 UI (12H / 24H 彈性切換) │
│ • 託管於 Vercel / Firebase Hosting (Free Tier) │
└────────────────────────────────┬────────────────────────────────┘
│ REST API / JSON
▼
┌─────────────────────────────────────────────────────────────────┐
│ 邏輯與運算層 (Logic & API Layer) │
│ • Google Apps Script (GAS) 作為 Web App API │
│ • 自動核銷 Reschedule Token & 衝突檢查引擎 │
│ • GAS 時間觸發器 (Time-driven Triggers) 處理 60 天 TTL 倒數 │
└───────────────┬─────────────────────────────────┬───────────────┘
│ │
▼ ▼
┌───────────────────────────────┐ ┌───────────────────────────────┐
│ 資料儲存與稽核層 (Data) │ │ AI 智慧加值層 (Google AI) │
│ • Google Sheets 作為輕量資料庫 │ │ • Gemini 3.6 Flash (AI Studio)│
│ - Bookings (預約表) │ │ - 自然語言轉 JSON 訂房表單 │
│ - Tokens (改期令牌表) │ │ - 極低 Token 消耗與快取優化 │
│ - Audit_Logs (不可改異動日誌) │ │ • Notebook │
│ │ │ - SRS 規格生成與 RAG 知識庫 │
└───────────────────────────────┘ └───────────────────────────────┘
Google AI 生態系工具建議與架構整合
| 工具 / 元件 | 系統定位與角色 | 技術優勢與 NGO 落地實作方式 |
|---|---|---|
| Gemini 3.6 Flash(Google AI Studio) | 自然語言解析與智慧引擎 | • 語意轉 JSON: 職員輸入「幫我訂下週三下午兩點洽談室,需要投影機」,自動解析為結構化 JSON。 • 極致 Token 效率與速度: 相比前代大幅減少輸出 Token 與對話輪次,API 響應迅速。 • 嚴格指令遵從: 支援標準 JSON 輸出模式,避免預約格式出錯。 • 免費額度優勢: AI Studio 提供極高的免費 API 配額,滿足每日預約解析需求。 |
| Notebook | 專案知識庫與 RAG 助理 | • 規格書生成: 匯入 NGO 營運規章、場地條款與 60 天改期細則,自動生成 SRS 系統需求規格書。• 志工 Q&A 知識庫: 當志工對借用規則有疑慮時,透過 Notebook 建立的知識庫快速檢索解答。 |
| Google Apps Script (GAS) | 後端業務邏輯與 API 閘門 | • 衝突檢查: 負責房間與移動設備(電視x1、投影機x1、電腦x2)時段重疊校驗。• 自動化定時器: 設定每日觸發器,自動掃描 60 天倒數(TTL),將逾期 Token 自動改為 Expired。• 不可篡改時間戳: 預約或改期時,後端強制寫入 new Date().toISOString() 系統時間,封殺人情套單。 |
| Google Sheets | 雲端結構化資料庫 | • 三表架構: 建立 Bookings、Reschedule_Tokens 與 Audit_Logs。• 零學習門檻: 志工無需 SQL 知識即可直接瀏覽原始數據,交接極簡化。• 月結自動化: GAS 定期彙總數據,月底一鍵產出各部門使用統計。 |
| React + FullCalendar | 雙時制前台互動介面 | • 90 天閘門: 限制月曆選取範圍 maxDate = +90d。• 雙時制切換(12H / 24H): 前端以 dayjs 處理,UI 提供切換按鈕,匯出至志工報表時自動渲染為含 AM/PM 標記的 12 小時制。 |
為什麼選擇 Gemini 3.6 Flash 而非其他模型?
明天繼續…