[教學] 用Janis串接Dialogflow和Chatfuel


你希望的chatbot是什麼樣子?
可以報氣象? 可以幫忙訂房間? 可以當私人助手?
這是最先出現在大部分人想法裡的
但人們最想要的還是最基本的功能
聊天

相信有做過chatbot的人都會發現
不管功能做得再多
只要你開放用戶自行輸入文字
他們總是會希望跟機器人聊天
而且最後甚至只會用到聊天功能


當然這不是不能理解, 畢竟人或多或少都希望能跟其他人說話
就算功能再多再新, 都還是會有失去新鮮感的一天
(看看手機裡的Google Assistant...)

而要讓機器人好好的理解用戶所說的話
就必須要有好的NLP(自然語言處理)能力

在上一篇的Chatfuel教學裡面我提過Chatfuel本身的NLP系統很差
為了改善這點就必須要引進其他系統來處理
市面上也有許多選擇, 像是: Wit.aiLUIS.ai
這邊我選擇使用Google的Dialogflow
(當然單就中文的NLP而言這並不是最好的選擇)




準備

串接Dialogflow和Chatfuel的原理是
透過Chatfuel接收訊息後傳送到Dialogflow處理再回傳數據給Chatfuel
這些操作你可以透過寫一個API來解決
不過有個更輕鬆的方式, 用Janis


在正式開始之前
你必須先做好以下準備

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
而且多一個訓練方式也能幫助我們完善與用戶的對話


以上是這次的教學
一樣, 如果遇到問題可以留言或私訊詢問

延伸閱讀
About Sean Chaox
Me

I'm soulless, so I'm recompiling my soul
I'm lifeless, so I'm enriching my life
I'm homeless, so I build this House
I am Sean, welcome to my House

沒有留言:

張貼留言