LINE 聊天機器人的基本實作教學文章,網路上很多,所以我不打算寫詳細的基礎教學步驟。
聊天機器人的實作,大致有三個階段:
- 回聲機器人。(你說什麼,他回什麼)
- 特定關鍵字回應。(設定一些關鍵字,回應除了定型內容外,還可用爬蟲技術爬出資料再回應)
- 智慧對話。(會自然語言處理,了解語意後再做回應)
第三階段比較難,如果要深入的底層實作算法,那就更難。
不過也有一些公司,有提供自然語意分析API可調用,例如 Dialogflow 、 LUIS 等等。
但通常要不是對中文支持度不好,就是要自己寫訓練規則。
剛好在網路上看到一篇文章:
(我這篇文的壓縮檔中 olami.py,取自上面文章代碼,感謝~)
這篇文章提到了 OLAMI 的 Open API,對中文支持度好,還有現成的 IDS 模組,都選用時,直接就可做大部份的智慧回應,還會回應天氣、匯率、股市、新聞、笑話等等。
所以本文就直接採用 OLAMI 的IDS 模組,快速作LINE聊天機器人智慧對話。
以下為作法:
- 下載此壓縮檔,解壓縮出一個資料夾 line_bot
- LINE聊天機器人的註冊與設定,還有之後要將程式部屬到 Heroku 的教學請看以下連結文章:
Line Bot 教學 - 上面教學文章中:「設定範例機器人」的步驟8,要改成以下過程:
打開解壓縮的 line_bot 資料夾
開啟config.ini 檔案,將 LINE 的 channel secret 和 channel access token 填入應填位置(不要弄混),存檔 - 再到 OLAMI 註冊,建立應用,得到 App Key 及 App Secret,再填入上面提到的 config.ini 檔案中存檔,此外 OLAMI 應用的對話系統模組(IDS 模組)要全勾選儲存,請再見該篇文章:(二)為 Chatbot 增加 NLP 功能
- 再回到上面第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)))