傳統客服的困境:每天回答一百次「今天有蛋餅嗎?」
想像你經營一家生意興隆的巷口早餐店。每天早上 6 點到 8 點是尖峰時段,你一手拿著鍋鏟煎蛋餅,另一手還要接起響個不停的電話:「老闆,我要一份總匯三明治加大冰奶,十五分鐘後拿!」、「老闆,今天有賣蘿蔔糕嗎?」、「老闆,我到了,幫我拿出來!」
後來你聰明了,申請了 Line 官方帳號讓客人傳訊息點餐。 結果噩夢才剛開始:客人的訊息像雪片般飛來,你根本沒時間打字回覆。有些客人傳了「我要一份蛋餅」,卻沒說要不要加蛋、要不要加辣;有些客人問了菜單,你還要慢慢複製貼上給他看。 如果沒及時回覆,客人就會生氣跑掉,留下 Google 一星負評。
這時候,你需要一個無薪、24 小時不睡覺、脾氣永遠很好、而且絕對不會點錯餐的超級店員:AI Line Bot。
建立大腦:WebHook 與 AI 的完美結合
在前面的章節,我們已經學會了申請 Line 帳號與設定圖文選單。那就像是幫機器人做好了身體跟臉孔。 現在,我們要把「大腦」放進去。
在 Line 的架構中,當客人傳送一句「老闆早安!」給你的官方帳號時,Line 的伺服器會立刻把這句話打包成一段 JSON 格式的資料,像丟棒球一樣丟給你的後端伺服器。這個接收棒球的動作,在技術上稱為 Webhook。
看看真實的 Webhook 棒球長怎樣:
當客人傳送「我要點餐」時,Line 傳給你的 JSON 大概長這樣:
{
"events": [
{
"type": "message",
"replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
"source": {
"userId": "U4af4980629...",
"type": "user"
},
"message": {
"id": "325708",
"type": "text",
"text": "我要點餐"
}
}
]
}
你只需要注意兩個重點:
message.text:這是客人實際講的話。replyToken:這是 Line 給你的一張「回信郵票」。你必須拿著這張郵票,才能免費把你的回覆傳送給這位客人。這張郵票的有效期限只有 1 分鐘!
拋棄智障型 if-else 邏輯
在過去,工程師會寫一大堆 if-else (如果-否則) 的規則碼:
if (訊息 == "菜單") { 回傳菜單圖片 }
else if (訊息 == "營業時間") { 回傳早上六點到中午 }
else { 回傳 "對不起,我聽不懂您的意思" }
這種傳統的「智障型機器人」體驗極差,客人只要打錯一個字,像是輸入「我要看菜單喔」,機器人就會直接當機回傳聽不懂。
但在 Vibe Coding 的時代,我們不寫 if-else。我們直接把 OpenAI (ChatGPT) 接入到 Webhook 裡面!
實戰 Vibe Prompt:打造有靈魂的點餐大師
我們要請 Cursor 幫我們寫一個結合 line-bot-sdk 與 openai 套件的超強大腦。
請在你的後端專案中建立一個 app.js (或 server.js),然後對著 AI 下達這段神級商業咒語:
🔥【早餐店 AI 客服 Vibe Prompt】 我正在使用 Node.js 開發一個 Line Bot 的 Webhook 伺服器 (使用 Express、
@line/bot-sdk以及openai官方套件)。 請幫我完成以下功能:
- 請設定一個
POST /webhook路由來接收 Line 的訊息。務必加上 Line Signature 驗證機制,確保請求是真的從 Line 發出來的。- 當接收到使用者的文字訊息時,提取出
replyToken與text。不要使用死板的 if-else 回覆。請將使用者的 text 傳送給 OpenAI 的gpt-4o-mini模型進行分析。- 請給 OpenAI 設定以下嚴格的 System Prompt (系統人設): 「你現在是『阿明早餐店』的資深點餐阿姨,名字叫『明姨』。你講話非常熱情,喜歡用『帥哥』、『美女』稱呼客人,並且會在句尾加上波浪號『~』。 我們的菜單只有三樣東西:原味蛋餅 (30元)、火腿三明治 (45元)、大冰奶 (20元)。營業時間是早上 6 點到中午 12 點。 你的任務是協助客人點餐。如果客人點了菜單上沒有的東西,你要溫柔地拒絕並推薦現有的餐點。如果客人的訂單資訊不完整(例如點了蛋餅但沒說數量),你必須主動追問數量。 當客人確認訂單後,請幫他計算總金額,並告訴他大約 15 分鐘後來拿。」
- 將 OpenAI 產生的回覆文字,透過 Line API 的
client.replyMessage(replyToken, ...)傳送回給客人。- 請加上詳細的中文註解,並做好
try/catch錯誤處理 (如果 OpenAI API 壞掉,要跟客人說「阿姨現在太忙了,請稍後再試」)。
當你送出這段咒語後,Cursor 會在幾秒內幫你生成一段極度專業的 Node.js 程式碼,包含了所有你不想自己手寫的資安驗證與錯誤處理。
讓我們看看這位「明姨 AI」的實戰對話表現:
客人:「老闆,我要一份培根蛋餅加一杯奶茶!」 明姨 AI:「哎呀帥哥早安啊~我們今天沒有進培根喔!要不要試試看我們招牌的『原味蛋餅』?奶茶幫你配『大冰奶』對吧!這樣總共是一份蛋餅配大冰奶,對嗎?確定要的話阿姨就幫你下鍋囉~」
客人:「好,確定,我十分鐘後到。」 明姨 AI:「沒問題帥哥!原味蛋餅(30元) + 大冰奶(20元),總共是 50 元喔!阿姨現在幫你做,你大概 15 分鐘後過來拿剛剛好,路上小心捏~」
客人:「那你們晚上有開嗎?」 明姨 AI:「美女不好意思捏~阿姨我們只賣早上 6 點到中午 12 點喔!晚上阿姨要休息看八點檔啦~明天早上再來找阿姨買早餐喔!」
⚠️ [常見地雷區] Line Webhook 驗證失敗 (400 Bad Request)
新手在剛串接 Line Bot 時,最常遇到一送出訊息,終端機就狂噴 400 Bad Request,或是 Line 後台顯示「Webhook 驗證失敗」。
這通常有三個原因:
- 你的 Channel Secret 與 Channel Access Token 填錯了:這兩個字串非常長,少複製一個字母就會全盤皆輸。請去 Line Developers 後台重新複製貼上。
- 沒有開啟 ngrok 或部署到 HTTPS 網域:Line 的 Webhook 規定必須是
https://開頭的安全網址。如果你在本機測試 (localhost:3000),你必須用ngrok之類的工具幫你把本機網址轉換成暫時的 HTTPS 網址。 - 沒有處理 Body Parser:Line 的 Signature 驗證需要原始的 Raw Body,如果你在 Express 裡面過早使用了
express.json()把資料轉換掉,驗證就會失敗。遇到這個情況,請直接在 Cursor 問:「Line Bot SDK 的 Webhook 驗證報錯 Invalid Signature,請幫我修正 body-parser 的設定。」
💼 [商業應用場景] 為什麼這項技術價值十萬?
你看出來了嗎?我們沒有寫任何一行「判斷字眼」的邏輯,也沒有教機器人怎麼做加法計算。 我們只是在 Prompt 裡寫了一篇「員工手冊」,設定了菜單與價格,剩下的自然語言理解、情感安撫、甚至是數學計算,全部都由 AI 這個超級大腦自動完成了!
傳統軟體公司要開發這樣一套具備「自然語意理解 (NLU)」、能夠記住上下文並完成點餐流程的客服系統,報價通常是新台幣十萬起跳,而且還需要漫長的開發與訓練週期。 現在,透過 Vibe Coding 加上短短的幾十行程式碼,你在一個下午就能把它完美做出來,直接向附近店家收取「每月 1500 元」的系統維護費,創造被動收入。
在下一章中,我們將會改變 System Prompt,帶你挑戰另一個完全不同的商業場景:高單價的「房仲看屋導覽機器人」!看看 AI 如何搖身一變,成為穿西裝打領帶的專業顧問!