使用 n8n 建立 LINE 個人助理
動機
想要練習看看使用非常方便的 n8n 來建立屬於自己的 LINE 個人助理。
解決方法
透過 ngrok 反向代理,將本機的 n8n 服務公開到網路上,然後在 n8n 上透過 Webhook 接收 LINE 訊息,並搭配 AI Agent 來控制 Google 行事曆。
實作
建立 ngrok
到 https://ngrok.com/ 註冊一個帳戶,登入後可以看到右邊有很多啟動方式。
我們選擇使用 docker 來啟動。
使用下方的指令進行啟動。
1 | docker run --net=host -it -e NGROK_AUTHTOKEN=<你的金鑰> ngrok/ngrok:latest http <n8n 的埠號> |
看到這個畫面代表啟動成功。
創建 Webhook
剛開始先創建一個 Webhook 來接收訊號,這個 Webhook 會被網址使用 post 觸發。
連接 LINE BOT
把 Webhook 的 URL 複製到 LINE BOT 的 Webhook URL 裡。
注意紅色框框要改成 ngrok 提供的網址。
接下來到 Response settings 把 Webhooks 打開。
測試連線
點選 Listen for test event 進行測試。
在 https://developers.line.biz/console 找到自己的機器人,並進入到 Messaging API 後,可以點選 Verify 進行測試。
出現 Success 後,就可以在 Output 上看到回傳的結果。
建立一個表單
建立一個 Edit Fields 節點,把輸入資訊整理成一個表單。
建立一個 AI Agent
建立一個 AI Agent 後,我們可以看到它需要有三個元件,分別是:「模型」、「資料庫」、「工具」。
模型的部分選擇免費的 Google Gemini。
資料庫的部份選擇一般即可。
工具的部份可以依照自己的需求自行添加,稍後會添加。
輸入模型 API
點擊模型可以進入到此頁面,要先創建憑證,創建時會需要輸入 API key,輸入完後儲存,並選擇要使用的模型版本。
測試模型運作
我們在 LINE 上輸入"你好"後,模型成功回覆,代表模型正常運作。
GCP 憑證
因為我們等等會使用到 google 日曆,因此我們需要申請一個使用者憑證才能做使用。
首先要到 https://console.cloud.google.com/ ,進來後先創建一個專案,創建完後會看到這個頁面。
我們點選 API 和服務,後搜尋 Google Calendar API 進行安裝,我們等等會需要用到。
接著回到「API 和服務」頁面,點選憑證,然後創建一個 OAuth 用戶端 ID。
應用程式類型選擇「網頁應用程式」,名稱可以自定義。
接下來按建立,建立完畢後會出現 Client ID 和 Client Secret,這兩個要保存好,等等會用到。
新增一個日曆
在 Google 日曆中新增一個日曆。
串接實用工具
我們使用 Google Calendar 作為範例,讓 AI 能夠幫我們新增行事曆排程。
新增完節點後,我們要輸入憑證,會看到這個畫面。
要把 OAuth Redirect URL 複製到剛剛在 GCP 建立的憑證上 (已授權的重新導向 URI),然後儲存。
再把 Client ID 和 Client Secret 輸入進 n8n,再點擊 Sign in with Google 進行驗證。
紅色框的部分,要改為目標日曆,開始與結束日期由 AI 自動輸入。
(紅框上的部分,可以依照自己的需求進行設定)
新增當前時間
因為日曆排程需要日期與時間,因此我們要在 AI Agent 節點前新增一個 Date & Time 節點,讓 AI 知道當前時間。
紅框內的選項記得要打開,這樣才能引用之前的輸入。
優化模型
在 Option 選項裡新增 System Message 後,可以看到預設的 prompt 是告訴 AI「你是一個有用的助理」,我們可以透過下 prompt 來優化 AI,讓 AI 能夠更清楚的知道它要做什麼。
因此,我提供一個 prompt 給大家做參考。
1 | 你是一位個人助理,你的職責是協助使用者處理日常事務,你可以使用以下工具來完成任務: |
要記得改為 Expression 輸入模式
這樣就完成了 AI 助理的建置,還有很多方便的工具可以依照需求自行新增。
建立機器人回覆節點
建立一個 HTTP Request 節點,打一個 API 來回覆使用者。
使用 POST 模式,URL 為 https://api.line.me/v2/bot/message/reply,Authentication 要選擇 Generic Credential Type,然後選擇 Header Auth。
創建一個 Header Auth,名稱為 Authorization,值要輸入 Bearer <access token>。
打開 Send Body 選項,使用 Json 格式,並輸入以下 Json 內容。
1 | { |
測試回覆
使用 LINE 和 Bot 進行對話,最後 Bot 有成功回覆訊息。
正式開放 Webhook
啟動我們的 Workflow。
最後,只需要把我們 Webhook 節點的 Test URL 改為 Production URL,這樣就能夠一直監聽。
也要記得把 LINE Bot 的 Webhook 替換成 Production URL 喔
如何使用
建置完畢後,我們就能夠在 LINE 上輸入需求,讓個人助理幫你完成事務。
總結
n8n 是一個非常好用的自動化工作流平台,使用者不需要寫大量的 Code,只需要透過建立節點來打造出自己的工作流程,節省大量的開發時間,重點它是免費開源的!!!
