如何設定 LINE Bot 並打造AI自動回覆機器人

已經學習了一陣子如何執行大語言模型,但一直沒有產生實質的功能。直到最近的一個不算理想的契機,我們家申請了印尼看護來照顧我爸,由於她只會講一點中文,所以只能用 Line 和她溝通比較方便。但要在 Google 翻譯和 Line 之間不斷貼來貼去,也非常麻煩。

此外,Google 翻譯的印尼文轉中文功能很不理想,因此萌生了自己開發一個翻譯機器人的想法。這個過程包含了三個主要步驟。

 

  1. 申請 LINE BOT
  2. 寫 webhook 的程式碼
  3. 多驗証幾次

本文一開始是參考這篇來完成的,其實我會比較推薦初學者按照他的流程來操作,從申請到運行 Webhook App 都有詳細說明,應該可以一次上手。我的文章則是經過精簡的版本,許多部分都被忽略(例如 GCP 申請、憑證申請),只保留了重要內容作為自己的紀錄,以便下次寫另一個機器人時不會忘記。

申請與設定 LINE Bot

帳號說明

關於 Line Bot 帳號之間的關係,可能需要先做一下說明。

我們需要申請一個開發者帳號和官方帳號。開發者帳號可以由原本的一般帳號轉換而成,而一個開發者帳號下可以創造多個供應商(Provider),每個供應商可以管理多個官方帳號(Official Account)。

因此,在管理頁面中會有兩個主要部分:

  1. 開發者帳號管理頁面: 用於管理開發者資訊、供應商和應用程式等
  2. 官方帳號管理頁面: 用於管理各個官方帳號的設定、內容和功能等

申請帳號

先登入開發者帳號管理頁面,可以用本的一般帳戶轉換成開發者帳戶。完成後,應該會看到下列畫面,按下 Create 來申請一個 Provider(供應商),設定供應商名稱,此處假定為 firstaiapp。

Line Developer Console

申請後,就可以看到帳號已產生,並提示沒有 channel。

往下移動一點,申請 Message API。

這邊會自動導到官方帳號申請頁面,填入資料後進行申請,後續要再進行綁定供應商,申請中可以先不用申請帳號認証。

 

申請好後,會自己進入官方帳號頁面。進入右方的設定。

接著就會看到如下畫面

接著設定以下項目

  1. 設定–>帳號設定 –>右側畫面, 勾選「接受邀請加入群組或多人聊天室」,不允許「接收媒體或檔案
  2. 設定–>Message API –> 啟用 Message API –> 供應商選 firstaiapp –> 隱私權服務條款先不選 –> webhook 網址假定為 「https://myfirstaiapp.com/bot1/callback」,按下生成「Channel Access Token」
  3. 設定–>回應設定–>右側畫面,  勾選「聊天」,取消「加入好友的歡迎訊息」,取消「回應時間」,勾選「手動聊天+自動回應訊息

記下 Message API 下的 Channel Secret 與 Access Token,後面寫回應程式時會用到。回到開發者帳戶後,就可看到供應商裡加入的 Message API 官方帳戶了。

 

設定 Apache 代理

由於我們希望在一台主機裡,可以服務好幾個官方帳號 webhook,所以在 web server 上需設定代理。編輯 /etc/apache2/sites-enabled/000-default-le-ssl.conf, 在 </VirtualHost> 前加入下列設定。

然後重啟 apache

 

撰寫 webhook 程式

當申請完一個官方帳號後,它會自動被加入到開發者帳號的好友名單中,並主動向你發送訊息。在二人聊天室或多人聊天室裡,其他人發出的訊息會傳送到前面提到的 webhook 網址進行處理。因此,只要對此訊息做出適當的回應,就可以展現機器人的功能。

範例程式 – 翻譯機器人

這邊就直接以我在使用的「印尼文」 <—> 「中文」翻譯機器人的程式碼當例子。這是一個 python 程式,安裝的依賴包如下

程式碼

這裡做了簡單的用戶管制,以避免其他人濫用 credit。只有在群組名稱中包含特定字串 KEYWORD_OF_YOUR_GROUPNAME 的訊息才會得到回應。請將此處的值修改為你希望使用的關鍵字。

結語

這可以算作是我第一個實用化的機器人 + AI 案例,也是我在 AI 實用化方面邁出的重要一步。

 

 

 

Leave a Reply(Name請以user_開頭,否則會被判定會垃圾息)

請輸入答案 ÷ 6 = 1