Part 12:AI 客服系統部署

認識企業級 AI 應用,動手部署到 Netlify 雲端

Netlify Supabase 環境變數 AI 客服 後端

小成品 21-22 | Day 2 下午
曾慶良(阿亮老師)| AI 協作簡報實戰工作坊

本章學習地圖

小成品 21

認識 AI 客服系統

了解前後端架構、系統資料流向、Netlify 與 GitHub Pages 的差異

14:30 - 15:00

小成品 22

部署到 Netlify

Fork 專案、建立 Supabase 資料庫、設定環境變數、上線測試

15:00 - 15:30
學習目標:認識企業級 AI 應用的架構,並親手將 AI 客服系統部署到 Netlify 雲端平台。
14:30 - 15:00

小成品 21:認識 AI 客服系統

了解為什麼需要後端,以及 AI 客服系統的完整架構

前端 vs 後端 Netlify Functions 系統架構

GitHub Pages 的限制

到目前為止,我們用 GitHub Pages 部署了靜態網頁。但如果要做更進階的功能呢?

GitHub Pages 能做的

  • 展示 HTML / CSS / JavaScript 網頁
  • 個人作品集、簡報、部落格
  • 純前端互動效果

好比 自助餐廳

食物(網頁內容)已經擺好,客人自己拿

GitHub Pages 做不到的

  • 連接資料庫儲存使用者資料
  • 呼叫需要保密的 API(如 AI)
  • 執行伺服器端程式

需要的是 有廚房的餐廳

廚師(伺服器)在幕後處理客人的點餐

解決方案:需要後端功能時,我們改用 Netlify 來部署!Netlify 除了靜態網頁,還支援 Serverless Functions(無伺服器函式)。

前端 vs 後端:餐廳比喻

前端 = 用餐區

使用者看得到、摸得到的部分

  • HTML:餐桌、椅子(結構)
  • CSS:裝潢、燈光(外觀)
  • JavaScript:服務鈴、菜單翻頁(互動)
客人(使用者)在用餐區點餐、看菜單、享用食物

後端 = 廚房

使用者看不到,但不可或缺的部分

  • 伺服器:廚師(處理請求)
  • 資料庫:冰箱、食材庫(儲存資料)
  • API:出餐口(前後端溝通)
廚房(後端)負責保管祕方(API Key),不會讓客人直接進入

我們之前做的簡報都是「純前端」,現在要認識「有後端」的系統!

AI 客服系統的 4 大功能

AI 自動回覆

串接 Gemini / ChatGPT API,根據知識庫自動回答客戶問題。24 小時不間斷服務。

真人客服轉接

AI 無法回答時,自動轉接真人客服。確保客戶問題一定能被解決。

管理後台

網頁管理介面,可以設定 AI 行為、查看對話紀錄、管理知識庫內容。

知識庫上傳

上傳 FAQ、產品資訊等文件,AI 會根據這些資料來回答客戶問題。

AI 客服系統管理後台介面

AI 客服系統管理後台介面預覽

系統資料流向:一則訊息的旅程

客戶傳送一則 LINE 訊息後,會經過以下流程:

LINE 用戶 → LINE 平台 → Webhook → Netlify Functions → AI API → 回覆

LINE 用戶 → LINE 平台

客人走進餐廳,跟服務生說「我要點餐」

Webhook → Netlify Functions

服務生把點餐單送進廚房,廚師開始準備

AI API → 回覆

廚師做好菜,由服務生送到客人桌上

AI 客服系統資料流向圖

系統資料流向示意圖

GitHub Pages vs Netlify 比較

比較項目 GitHub Pages Netlify
費用 免費 免費方案可用(有額度限制)
後端功能 不支援 支援 Serverless Functions
資料庫 不支援 可搭配 Supabase 等服務
環境變數 不支援 支援(可安全存放 API Key)
自訂網址 username.github.io 自訂名稱.netlify.app
適用場景 靜態網頁、簡報、作品集 需要後端的應用程式
GitHub Pages 與 Netlify 比較

兩個平台的功能比較一覽

部署 AI 客服系統:7 大步驟概覽

完整部署流程

1Fork 專案 → 2建立 Supabase → 3執行 SQL → 4取連接資訊 → 5Netlify 部署 → 6登入後台 → 7測試

1

Fork 專案

複製程式碼到自己帳號

2

建立 Supabase

雲端資料庫服務

3

執行 SQL

建立所需資料表

4

取連接資訊

URL 和金鑰

5

Netlify 部署

從 GitHub 自動部署

6

登入後台

設定 AI 和 LINE

7

測試

確認系統正常運作

什麼是環境變數?

生活比喻:密碼保險箱

環境變數就像一個放在伺服器上的密碼保險箱

  • 只有伺服器程式能打開使用
  • 不會出現在程式碼中
  • 別人看到你的程式碼,也看不到密碼
  • 可以隨時更換,不需要改程式
絕對不要這樣做:把 API Key 直接寫在 HTML 或 JavaScript 中!任何人都能從瀏覽器看到你的原始碼。

正確做法

// 錯誤示範(千萬不要!)
const apiKey = "sk-abc123..."

// 正確做法(使用環境變數)
const apiKey = process.env.API_KEY
環境變數的好處:
  • API Key 安全不外洩
  • 不同環境可用不同設定
  • 更換金鑰不需改程式碼

小成品 21 完成!

你已經了解 AI 客服系統的架構與運作原理

已學會

前端 vs 後端的差異

已學會

GitHub Pages vs Netlify

已學會

AI 客服系統資料流向

已學會

環境變數的概念

接下來,我們要動手把 AI 客服系統部署上線!

15:00 - 15:30

小成品 22:部署到 Netlify

跟著 7 個步驟,把 AI 客服系統部署到雲端

Fork Supabase SQL Netlify 環境變數

1 步驟 1:Fork AI 客服專案

  1. 打開專案網址:github.com/ChatGPT3a01/ai_customer_service
  2. 點擊右上角的 Fork 按鈕
  3. Owner 選擇你的 GitHub 帳號
  4. Repository name 保持預設:ai_customer_service
  5. 點擊 Create fork
什麼是 Fork?就像影印一份別人的食譜到你的筆記本,你可以自由修改,不影響原作者的版本。
Fork AI 客服專案

在 GitHub 上 Fork AI 客服專案到你的帳號

2 步驟 2:Supabase 建立資料庫

  1. 前往 supabase.com,點擊 Start your project
  2. 使用 GitHub 帳號登入(最方便)
  3. 點擊 New Project
  4. 填寫專案資訊:
    • Name:ai-customer-service
    • Database Password:設定一組密碼(請記住!)
    • Region:Southeast Asia (Singapore)
  5. 點擊 Create new project,等待建立完成
為什麼選新加坡?離台灣最近的伺服器位置,存取速度最快。
Supabase 建立新專案

在 Supabase 建立新專案,Region 選擇 Singapore

3 步驟 3:執行 SQL 建立資料表

  1. 在 Supabase 左側選單點擊 SQL Editor
  2. 從 Fork 的專案中找到 SQL 檔案
  3. 將 SQL 內容全選複製,貼到 SQL Editor
  4. 點擊 Run 執行

會建立的資料表

資料表名稱 用途說明
settings 系統設定(AI API Key、LINE 資訊等)
processed_events 已處理的事件紀錄(防止重複處理)
user_states 使用者狀態(追蹤對話進度)
執行 SQL 建立資料表

在 SQL Editor 中貼上 SQL 並執行

4 步驟 4:取得 Supabase 連接資訊

  1. 在 Supabase 左側選單 → Project Settings
  2. 點擊 API 頁面
  3. 記下以下 3 個資訊:
資訊名稱 位置 用途
Project URL API Settings 上方 資料庫的網址
anon key Project API keys 前端使用的公開金鑰
service_role key Project API keys 後端使用的管理金鑰
重要警告:service_role key 擁有資料庫的最高權限,絕對不能外洩!不要貼在公開的地方,只能放在環境變數中。
取得 Supabase 連接資訊

在 Project Settings > API 頁面取得連接資訊

5 步驟 5:Netlify 部署

  1. 前往 netlify.com,使用 GitHub 帳號登入
  2. 點擊 Add new siteImport an existing project
  3. 選擇 GitHub,找到剛剛 Fork 的 ai_customer_service
  4. 設定建構指令:
    • Build command:npm run build
    • Publish directory:dist
  5. 先不要按 Deploy,還需要設定環境變數!
Netlify 的特色:每次你在 GitHub 更新程式碼,Netlify 會自動重新部署,不需要手動操作。
Netlify 部署設定

在 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 後端管理用金鑰
為什麼有兩個 URL?VITE_ 開頭的變數會被打包到前端程式碼中,沒有 VITE_ 開頭的只在後端 Functions 中使用。前後端需要各自的設定。
設定完環境變數後,再點擊 Deploy site!
Netlify 環境變數設定頁面

在 Netlify 的 Environment variables 頁面新增環境變數

6 步驟 6:登入管理後台

6-1. 建立管理員帳號

  1. 回到 Supabase,左側選單 → Authentication
  2. 點擊 Add userCreate new user
  3. 輸入你的 Email 和密碼
  4. 勾選 Auto Confirm User

6-2. 登入管理後台

  1. 打開你的 Netlify 網站:你的名稱.netlify.app
  2. 用剛建立的帳號密碼登入
  3. 進入管理後台後,可以設定:
    • AI API Key(Gemini 或 ChatGPT)
    • LINE Channel Access Token
    • LINE Channel Secret
沒有 API Key 也沒關係!目前先完成部署,確認管理後台能正常登入即可。API Key 和 LINE 設定可以之後再補。
AI 客服系統部署成功

部署成功!你的 AI 客服系統已經上線了

7 步驟 7:測試與問題排解

確認以下項目正常

  • Netlify 網站能正常開啟(不是空白頁)
  • 管理後台能成功登入
  • 設定頁面能正常顯示各欄位

常見問題排解

問題 可能原因 解決方法
打開網站是空白頁 環境變數設定錯誤 檢查 4 個環境變數是否正確填入
登入失敗 帳號未建立或未確認 回 Supabase Authentication 檢查
部署失敗 Build command 設定錯誤 確認 Build command 為 npm run build
修改後如何重新部署?在 Netlify → Deploys → Trigger deployDeploy site,或直接在 GitHub 推送新的 commit。

兩種部署方式的最終比較

GitHub Pages

擺地攤

  • 簡單快速,馬上開張
  • 擺出什麼,客人就看什麼
  • 不需要廚房(後端)
  • 不需要倉庫(資料庫)
  • 適合靜態展示
適合:簡報、作品集、個人網頁

Netlify + Supabase

開店面

  • 需要更多準備工作
  • 有廚房可以現做料理(後端)
  • 有倉庫儲存食材(資料庫)
  • 有保險箱放機密(環境變數)
  • 適合互動式應用
適合:AI 客服、會員系統、動態應用

兩種都學會了,你就能根據需求選擇最適合的部署方式!

實作練習時間

練習 A:檢查部署狀態

  1. 打開你的 Netlify 網站
  2. 確認首頁正常顯示
  3. 嘗試登入管理後台
  4. 截圖記錄你的成果
5 分鐘

練習 B:自訂網站名稱

  1. 在 Netlify → Site configuration
  2. 找到 Change site name
  3. 改成你喜歡的名稱
  4. 例如:my-ai-chat.netlify.app
3 分鐘

練習 C:整理作品書籤

  1. 建立瀏覽器書籤資料夾「我的作品」
  2. 加入 GitHub Pages 網站
  3. 加入 Netlify 網站
  4. 加入 GitHub 專案頁面
2 分鐘
完成以上練習後,你已經擁有兩個上線的網站作品了!

小成品 22 完成!

你已經成功將 AI 客服系統部署到 Netlify 雲端!

已完成

Fork AI 客服專案

已完成

建立 Supabase 資料庫

已完成

設定環境變數並部署

已完成

登入管理後台測試

恭喜!你現在擁有一個部署在雲端的企業級 AI 應用系統!

本章回顧

Netlify

支援前端 + 後端的雲端部署平台,從 GitHub 自動部署

Supabase

開源的雲端資料庫服務,提供 PostgreSQL 資料庫和 Auth 認證

環境變數

安全存放 API Key 和機密資訊的「密碼保險箱」

前端 vs 後端

用餐區(使用者看到的)與廚房(伺服器處理的)

下一章預告

Part 13 - 上線測試與課程總結

最終檢查所有作品、課程回顧、學習路線圖、結業分享

前往 Part 13 →