前言
在數位轉型的浪潮下,如何讓專業知識(如畜牧技術)透過 AI 更親民地傳遞?本文將分享我如何利用 n8n 自動化工作流,結合 Gemini 2.5 大語言模型,打造出一位既專業又具備「台語人情味」的虛擬副技師——阿德。
一、 工作流架構圖
整個系統由五個核心節點組成,形成一個完整的閉環:
- LINE Webhook:接收來自用戶的訊息。
- Extract LINE Message:從複雜的 JSON 中提取使用者文字與
replyToken。 - Process with Gemini AI:AI 核心,負責角色扮演與邏輯生成。
- Format Response for LINE:透過 JavaScript 處理格式錯誤。
- Send Reply to LINE (HTTP Request):將結果回傳給 LINE 伺服器。
二、 核心 Coding 邏輯與代表含意
在串接過程中,我們使用了兩段關鍵的代碼來確保穩定性:
1. 換行與特殊符號處理 (JavaScript)
這是最重要的一步。AI 生成的文字通常包含換行(Enter)或雙引號,這會導致發送給 LINE 的 JSON 結構破裂。
let text = $input.item.json.text; // 將真正的換行符號轉為文字版的 \n,並將雙引號轉義let safeText = text.replace(/\n/g, "\\n").replace(/"/g, '\\"');return [{ json: { replyToken: ..., text: safeText } }];
- 代表含意:確保資料在傳輸過程中不會因為「格式不合法」而被 LINE 拒絕。
2. 系統指令 (System Prompt) 優化
為了防止 AI 產生「幻覺」(例如亂編人事資料),我們使用了 事實錨定(Fact Anchoring) 技術:
「你是畜試所副技師阿德。恆春分所長是 陳嘉昇。清單外的人名嚴禁亂編背景,不確定時請引導用戶查詢官網。」
- 代表含意:賦予 AI 靈魂的同時,建立「行為邊界」,確保公信力。
三、 疑難排解 (Troubleshooting) 大全
在開發過程中,我們踩過的坑都是寶貴的經驗:
Q1:為什麼一直出現 Invalid reply token?
- 原因:LINE 的
replyToken壽命只有 30 秒。 - 解決法:不要在 n8n 編輯器點擊「測試舊資料」,必須直接從手機傳送新訊息來觸發。
Q2:為什麼機器人會回覆「很抱歉,本帳號無法個別回覆」?
- 原因:這是 LINE 官方帳號預設的自動回應功能。
- 解決法:到 LINE Official Account Manager 的「回應設定」,將「自動回應訊息」設為 停用,並開啟 Webhook。
Q3:如何節省 Gemini 的費用?
- 策略:將模型切換為 Gemini 1.5 Flash-Lite,並在指令中要求「全文 300 字以內」。
- 結果:在不影響品質的前提下,大幅降低 Output Token 消耗。
四、 未來展望:地端化與記憶優化
下一步,我預計將工作流搬遷至 Docker 地端環境,以獲得更高的隱私性與無限的執行次數。同時,也計畫加入 Window Buffer Memory,讓阿德技師能「記得」農友上次提過的問題,提供更具連續性的專業諮詢。
結語:打造 AI 機器人不僅是技術的堆疊,更是對專業領域知識的重新梳理。希望這篇分享能幫助同樣想在 LINE 上部署 AI 的朋友們!



發表留言