2018年11月6日 星期二

LINE 聊天機器人快速實作


LINE 聊天機器人的基本實作教學文章,網路上很多,所以我不打算寫詳細的基礎教學步驟。
聊天機器人的實作,大致有三個階段:
  1. 回聲機器人。(你說什麼,他回什麼)
  2. 特定關鍵字回應。(設定一些關鍵字,回應除了定型內容外,還可用爬蟲技術爬出資料再回應)
  3. 智慧對話。(會自然語言處理,了解語意後再做回應)
第三階段比較難,如果要深入的底層實作算法,那就更難。
不過也有一些公司,有提供自然語意分析API可調用,例如 Dialogflow 、 LUIS 等等。
但通常要不是對中文支持度不好,就是要自己寫訓練規則。

剛好在網路上看到一篇文章:

(二)為 Chatbot 增加 NLP 功能
(我這篇文的壓縮檔中 olami.py,取自上面文章代碼,感謝~)

這篇文章提到了 OLAMI  的 Open API,對中文支持度好,還有現成的 IDS 模組,都選用時,直接就可做大部份的智慧回應,還會回應天氣、匯率、股市、新聞、笑話等等。

所以本文就直接採用 OLAMI  的IDS 模組,快速作LINE聊天機器人智慧對話。

以下為作法:

  1. 下載此壓縮檔,解壓縮出一個資料夾 line_bot
  2. LINE聊天機器人的註冊與設定,還有之後要將程式部屬到 Heroku 的教學請看以下連結文章:
    Line Bot 教學
  3. 上面教學文章中:「設定範例機器人」的步驟8,要改成以下過程
    打開解壓縮的 line_bot 資料夾
    開啟config.ini 檔案,將 LINE 的 channel secretchannel access token 填入應填位置(不要弄混),存檔
  4. 再到 OLAMI 註冊,建立應用,得到 App Key App Secret,再填入上面提到的 config.ini 檔案中存檔,此外 OLAMI 應用的對話系統模組(IDS 模組)要全勾選儲存,請再見該篇文章:(二)為 Chatbot 增加 NLP 功能
  5. 再回到上面第2點的文章 Line Bot 教學,其中的「將程式推到 Heroku 上」第2點資料夾改為本文的 line_bot資料夾,其餘步驟都一樣。底下的「將 Heroku 與 Line 綁定」也務必仔細操作,最後「測試範例成果」至完成。

上面就是完成一個智慧對話(大致看起來)的 LINE 聊天機器人,其實本質上就是 OLAMI 的 IDS 模組的對話回應,只是界面移到 LINE 而已。

另外如果要設定關鍵字回應

如果會 python,可直接改壓縮檔的 app.py,在代碼的某段中如以下:

@handler.add(MessageEvent, message=TextMessage)
def handle_message(event):
    
    #下列為要加入的代碼
    if event.message.text == "你要設定的關鍵字":
        line_bot_api.reply_message(event.reply_token,TextSendMessage(text="你要設定的回應"))
    #上面為要加入的代碼
    
    line_bot_api.reply_message(event.reply_token,TextSendMessage(text=Olami().nli(event.message.text)))




LINE 聊天機器人快速實作

LINE 聊天機器人的基本實作教學文章,網路上很多,所以我不打算寫詳細的基礎教學步驟。 聊天機器人的實作,大致有三個階段: 回聲機器人。(你說什麼,他回什麼) 特定關鍵字回應。(設定一些關鍵字,回應除了定型內容外,還可用爬蟲技術爬出資料再回應) 智慧對話。(會自然語言...