認識企業級 AI 應用,動手部署到 Netlify 雲端
小成品 21-22 | Day 2 下午
曾慶良(阿亮老師)| AI 協作簡報實戰工作坊
認識 AI 客服系統
了解前後端架構、系統資料流向、Netlify 與 GitHub Pages 的差異
14:30 - 15:00部署到 Netlify
Fork 專案、建立 Supabase 資料庫、設定環境變數、上線測試
15:00 - 15:30了解為什麼需要後端,以及 AI 客服系統的完整架構
到目前為止,我們用 GitHub Pages 部署了靜態網頁。但如果要做更進階的功能呢?
好比 自助餐廳
食物(網頁內容)已經擺好,客人自己拿
需要的是 有廚房的餐廳
廚師(伺服器)在幕後處理客人的點餐
使用者看得到、摸得到的部分
使用者看不到,但不可或缺的部分
我們之前做的簡報都是「純前端」,現在要認識「有後端」的系統!
串接 Gemini / ChatGPT API,根據知識庫自動回答客戶問題。24 小時不間斷服務。
AI 無法回答時,自動轉接真人客服。確保客戶問題一定能被解決。
網頁管理介面,可以設定 AI 行為、查看對話紀錄、管理知識庫內容。
上傳 FAQ、產品資訊等文件,AI 會根據這些資料來回答客戶問題。
AI 客服系統管理後台介面預覽
客戶傳送一則 LINE 訊息後,會經過以下流程:
LINE 用戶 → LINE 平台 → Webhook → Netlify Functions → AI API → 回覆
客人走進餐廳,跟服務生說「我要點餐」
服務生把點餐單送進廚房,廚師開始準備
廚師做好菜,由服務生送到客人桌上
系統資料流向示意圖
| 比較項目 | GitHub Pages | Netlify |
|---|---|---|
| 費用 | 免費 | 免費方案可用(有額度限制) |
| 後端功能 | 不支援 | 支援 Serverless Functions |
| 資料庫 | 不支援 | 可搭配 Supabase 等服務 |
| 環境變數 | 不支援 | 支援(可安全存放 API Key) |
| 自訂網址 | username.github.io | 自訂名稱.netlify.app |
| 適用場景 | 靜態網頁、簡報、作品集 | 需要後端的應用程式 |
兩個平台的功能比較一覽
完整部署流程
1Fork 專案 → 2建立 Supabase → 3執行 SQL → 4取連接資訊 → 5Netlify 部署 → 6登入後台 → 7測試
Fork 專案
複製程式碼到自己帳號
建立 Supabase
雲端資料庫服務
執行 SQL
建立所需資料表
取連接資訊
URL 和金鑰
Netlify 部署
從 GitHub 自動部署
登入後台
設定 AI 和 LINE
測試
確認系統正常運作
環境變數就像一個放在伺服器上的密碼保險箱:
// 錯誤示範(千萬不要!) const apiKey = "sk-abc123..." // 正確做法(使用環境變數) const apiKey = process.env.API_KEY
你已經了解 AI 客服系統的架構與運作原理
前端 vs 後端的差異
GitHub Pages vs Netlify
AI 客服系統資料流向
環境變數的概念
接下來,我們要動手把 AI 客服系統部署上線!
跟著 7 個步驟,把 AI 客服系統部署到雲端
github.com/ChatGPT3a01/ai_customer_serviceai_customer_service
在 GitHub 上 Fork AI 客服專案到你的帳號
supabase.com,點擊 Start your projectai-customer-service
在 Supabase 建立新專案,Region 選擇 Singapore
| 資料表名稱 | 用途說明 |
|---|---|
settings |
系統設定(AI API Key、LINE 資訊等) |
processed_events |
已處理的事件紀錄(防止重複處理) |
user_states |
使用者狀態(追蹤對話進度) |
在 SQL Editor 中貼上 SQL 並執行
| 資訊名稱 | 位置 | 用途 |
|---|---|---|
| Project URL | API Settings 上方 | 資料庫的網址 |
| anon key | Project API keys | 前端使用的公開金鑰 |
| service_role key | Project API keys | 後端使用的管理金鑰 |
service_role key 擁有資料庫的最高權限,絕對不能外洩!不要貼在公開的地方,只能放在環境變數中。
在 Project Settings > API 頁面取得連接資訊
netlify.com,使用 GitHub 帳號登入ai_customer_servicenpm run builddist
在 Netlify 匯入 GitHub 專案並設定建構指令
在 Netlify 部署前,需要設定 4 個環境變數:
| 變數名稱 | 值(來源) | 說明 |
|---|---|---|
VITE_SUPABASE_URL |
Supabase Project URL | 前端使用的資料庫網址 |
VITE_SUPABASE_ANON_KEY |
Supabase anon key | 前端使用的公開金鑰 |
SUPABASE_URL |
Supabase Project URL(同上) | 後端 Functions 使用 |
SUPABASE_SERVICE_ROLE_KEY |
Supabase service_role key | 後端管理用金鑰 |
VITE_ 開頭的變數會被打包到前端程式碼中,沒有 VITE_ 開頭的只在後端 Functions 中使用。前後端需要各自的設定。
在 Netlify 的 Environment variables 頁面新增環境變數
你的名稱.netlify.app
部署成功!你的 AI 客服系統已經上線了
| 問題 | 可能原因 | 解決方法 |
|---|---|---|
| 打開網站是空白頁 | 環境變數設定錯誤 | 檢查 4 個環境變數是否正確填入 |
| 登入失敗 | 帳號未建立或未確認 | 回 Supabase Authentication 檢查 |
| 部署失敗 | Build command 設定錯誤 | 確認 Build command 為 npm run build |
擺地攤
開店面
兩種都學會了,你就能根據需求選擇最適合的部署方式!
my-ai-chat.netlify.app你已經成功將 AI 客服系統部署到 Netlify 雲端!
Fork AI 客服專案
建立 Supabase 資料庫
設定環境變數並部署
登入管理後台測試
恭喜!你現在擁有一個部署在雲端的企業級 AI 應用系統!
支援前端 + 後端的雲端部署平台,從 GitHub 自動部署
開源的雲端資料庫服務,提供 PostgreSQL 資料庫和 Auth 認證
安全存放 API Key 和機密資訊的「密碼保險箱」
用餐區(使用者看到的)與廚房(伺服器處理的)