[教學] 用Janis串接Dialogflow和Chatfuel
你希望的chatbot是什麼樣子?
這是最先出現在大部分人想法裡的
但人們最想要的還是最基本的功能
聊天
相信有做過chatbot的人都會發現
不管功能做得再多
只要你開放用戶自行輸入文字
他們總是會希望跟機器人聊天
而且最後甚至只會用到聊天功能
當然這不是不能理解, 畢竟人或多或少都希望能跟其他人說話
就算功能再多再新, 都還是會有失去新鮮感的一天
(看看手機裡的Google Assistant...)
而要讓機器人好好的理解用戶所說的話
就必須要有好的NLP(自然語言處理)能力
在上一篇的Chatfuel教學裡面我提過Chatfuel本身的NLP系統很差
為了改善這點就必須要引進其他系統來處理
這邊我選擇使用Google的Dialogflow
(當然單就中文的NLP而言這並不是最好的選擇)
準備
串接Dialogflow和Chatfuel的原理是
透過Chatfuel接收訊息後傳送到Dialogflow處理再回傳數據給Chatfuel
這些操作你可以透過寫一個API來解決
不過有個更輕鬆的方式, 用Janis
在正式開始之前
你必須先做好以下準備
- 有一個Dialogflow的AI agent
- 有一個Chatfuel的Bot
- 將Janis加進Slack中
Step #1: 建立Dialogflow AI agent
如圖, 建立一個新的agent
(如果已經有的可以跳過)
Step #2: 將Janis加進Slack中
Step #3: 在Janis新增Bot
選擇Dialogflow |
選擇要串接的agent |
Step #4: 設定json api
完成上述步驟後Janis會給你Client Key和一串URL
回到Chatfuel
點開預設回覆(Default answer)
新增一個User input
將ATTRIBUTE設定為user input
再新增一個JSON API
將剛剛Janis給的URL貼進欄位中
設定為Get, 並加上閜面幾個ATTRIBUTE
messenger user id, first name, user input
最後取消勾選Report errors
🎉Done
以上簡單幾個步驟輕鬆把Dialogflow和Chatfuel串接起來
💪訓練
不過Janis能做的不只這樣
它還能協助我們訓練Dialogflow
由於Dialogflow本身的訓練功能並不支援中文
所以這項對中文用戶算是很不錯的功能
訓練前&訓練後 |
在Janis中輸入Training Channel後它會為我們開啟一個訓練窗格
在這窗格中我們可以測試機器人能不能正確的回應並修正
上面是錯誤的回應
點開reply
可以看見並沒有match到想要的Intent
點change修正
選擇正確的Intent並確認(confirm match)
再次測試
可以發現經過訓練之後能正確對應到我們希望的Intent
結語
透過Janis我們可以很輕鬆的串接Dialogflow和Chatfuel
而且多一個訓練方式也能幫助我們完善與用戶的對話
以上是這次的教學
一樣, 如果遇到問題可以留言或私訊詢問
而且多一個訓練方式也能幫助我們完善與用戶的對話
以上是這次的教學
一樣, 如果遇到問題可以留言或私訊詢問
沒有留言:
張貼留言