使用 n8n + LineBot 搭建 RAG AI 應用

功能介紹

n8n 是一款開源的工作流自動化工具,旨在幫助用戶通過可視化的方式設計和執行自動化流程,實現跨應用和服務的數據整合與操作。是一個功能強大且靈活的工作流自動化平台,適合個人和企業用戶用於提升效率和簡化業務流程。無論是簡單的數據同步,還是複雜的跨平台自動化,n8n 都能提供可靠的解決方案。

簡單n8n 串接 LINE 教學

n8n 是一款強大的工作流自動化工具,能夠輕鬆串接 LINE 並實現多種自動化功能,例如發送通知、處理訊息或與其他應用整合。以下是串接 LINE 的詳細教學:

步驟 1:準備 LINE API 憑證

在串接 LINE 前,您需要取得 LINE 的 API 憑證。以下是準備步驟:

  1. 註冊 LINE Developers 帳戶:前往 LINE Developers 註冊帳戶。
  2. 建立 Channel
    • 登入後,建立一個新的 Messaging API Channel。
    • 記下 Channel ID、Channel Secret 和 Access Token,這些將用於 n8n 的認證設定。
  3. 設定 Webhook(可選):如果需要接收 LINE 的事件通知,需設定 Webhook URL,該 URL 可由 n8n 提供。

步驟 2:在 n8n 中新增 LINE 節點

N8N設定的畫面

LINE Bot的設定畫面

步驟 3:在OpenAI建立好的客製化機器人

網址: https://platform.openai.com/playground/assistants

以下是了解我的書的內容的機器人,這個是Open AI的Agent功能,可以在這邊上傳檔案,讓這個機器人有RAG的資料庫可以回答專屬於自己的知識

步驟4:在n8n呼叫已經建立好的機器人

可以選擇下面這個節點來和已經建立好的機器人聊天

要注意的是,這個節點輸入的文字要是前一個節點的”chatInput”變數。所以要在前面新增一個Edit Fields的節點,來改變前一個節點的值的結構

選擇剛剛建立好的機器人

步驟5:回覆LINE訊息

因為原本n8n只有notify的元件,而這個元件即將要廢棄

因此我自己參考這邊的API格式來呼叫send line message

https://developers.line.biz/en/docs/messaging-api/sending-messages/#reply-messages

curl -v -X POST https://api.line.me/v2/bot/message/reply \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer {channel access token}' \
-d '{
    "replyToken":"nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
    "messages":[
        {
            "type":"text",
            "text":"Hello, user"
        },
        {
            "type":"text",
            "text":"May I help you?"
        }
    ]
}'

這邊因為要避免OPENAI回傳一些會打亂JSON格式的特殊字元,因此要用JSON.stringify(…)把回傳的字串包起來

{
    "replyToken":"{{ $('If').item.json.body.events[0].replyToken }}",
    "messages":[{"type":"text","text":{{ JSON.stringify($json.output) }}}]
}

完整的工作流


17年資歷女工程師,專精於動畫、影像辨識以及即時串流程式開發。經常組織活動,邀請優秀的女性分享她們的技術專長,並在眾多場合分享自己的技術知識,也活躍於非營利組織,辦理活動來支持特殊兒及其家庭。期待用技術改變世界。

如果你認同我或想支持我的努力,歡迎請我喝一杯咖啡!讓我更有動力分享知識!