跳至主要內容
ESC
Study Jam:GenAI 開發者實戰 — 第 17/29 篇

建構 GenAI 應用

建構 GenAI 應用

課程概述

把 Gemini API 接上畫面,通常一天內就能做出 Demo;難的是讓它面對真實流量、錯誤輸入和模型暫時不可用時,還能安全地運作。這門課會從前端、應用後端到模型服務逐層拆解,並補上原型最常漏掉的驗證、權限、成本與監控。

生產級 GenAI 應用三層架構:Web 與行動介面串流互動,容器化應用層處理驗證、Session、Prompt 版本、重試快取與工具編排,AI 資料層連接模型、向量知識庫和企業 API,旁路加入安全與可觀測性

真正的 GenAI App 不只是前端加一次模型呼叫。應用層必須管理狀態、Prompt、重試、快取與工具,資料層負責 Grounding 和企業來源;安全檢查、引用、延遲、Token 成本、錯誤和品質監控共同決定能否上線。

你將學到

  • 設計 GenAI 應用的參考架構:前端、後端、模型層的分層
  • 使用 Google Gen AI SDK(google-genai)建構 GenAI 後端服務
  • 在 Cloud Run 上部署可自動擴展的 GenAI API 服務
  • 處理 API 限流、錯誤重試與超時等生產環境問題
  • 實作基本的輸入驗證與輸出安全篩選

核心概念

GenAI 應用的三層架構

常見的 GenAI 應用可以先拆成三層。前端層負責輸入、串流呈現和使用者操作;應用層負責驗證、權限、Prompt 版本、模型呼叫、工具與錯誤處理;AI/資料層則包含模型、檢索來源與企業 API。分層不是為了多畫幾個方框,而是避免瀏覽器直接握有敏感憑證,也讓模型或前端日後更換時,不必連商業規則一起重寫。

Prompt 管理策略

正式環境需要知道每次回應用了哪一版 Prompt。模板可以放在程式庫、設定服務或資料庫,但都應有不可變的版本 ID、審查紀錄和回退方式。後端不必每次都讀取「最新內容」;較穩妥的做法是讓一個服務版本綁定已核准的 Prompt 版本,載入後快取,再透過受控發布或實驗分流更新。這樣出問題時才找得到原因。

Cloud Run 部署架構

Cloud Run 適合部署容器化的 GenAI API,支援依請求自動擴展、HTTPS、最小/最大實例數和每個實例的並行設定。請求逾時不要因為模型偶爾很慢就一律拉長,而要從使用者可接受的等待時間反推;互動式回答可用串流降低等待感,長時間工作則考慮非同步工作與查詢狀態。Cloud Run 預設逾時為 5 分鐘、上限 60 分鐘,但這是平台範圍,不是建議值,詳見官方逾時設定

生產環境的必備機制

上線前至少要補四類控制:限流與配額,避免單一租戶吃完模型額度;逾時與重試,只對可重試錯誤使用指數退避,並防止同一個工具動作執行兩次;輸入與輸出控制,限制長度、檔案類型和高風險內容;可觀測性,記錄模型與 Prompt 版本、延遲、Token、錯誤類型與品質回饋。完整 Prompt 和回應可能含個資或機密,不應預設全部寫進日誌;需要除錯時也要遮罩、取樣並設定保存期限。

Demo 能回答一次,只證明 API 接得通。正式上線還要證明權限、品質、失敗處理和觀測都能運作,再以小流量逐步放大。

實作重點

  • 用 Python Flask 或 FastAPI 建構一個呼叫 Gemini API 的後端服務
  • 將服務容器化並部署到 Cloud Run,依壓測結果設定並行、最大實例數與逾時
  • 實作串流回應的 SSE(Server-Sent Events)端點,提升使用者體驗
  • 加入輸入長度限制、內容安全篩選與 API Key 驗證等基本安全機制
  • 使用 Cloud Logging 記錄經遮罩的模型版本、延遲、Token、錯誤類型與請求追蹤 ID

Lab 導讀

Lab 連結Create Generative AI Apps on Google Cloud — Google Cloud Skills Boost

這個 Lab 會做出端到端的 GenAI 應用,再部署到 Cloud Run。除了讓功能跑起來,建議刻意測三種失敗:Prompt 太長、模型回傳限流、使用者中途取消。再檢查憑證是否放在 Secret Manager 或服務身分裡,而不是映像檔、前端或版本庫中。

延伸學習

Study Jam:GenAI 開發者實戰 — 17/29 完成 查看系列全覽 →

留言討論

徽章解鎖!