iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 7
0
AI & Machine Learning

ChatBot&Chatbase系列 第 7

Day7[Messenger ChatBot]自己的回覆內容自己+!

今天主要介紹utils2.py加入與app.py的改寫
昨天所說的uitls.py是將wit.ai中newstype的entity引入再做相對的回應
而今天所要介紹的utils2是將另一個命為mstype的entity也引入做回應
mstype的新增可以參考Day5所介紹的wit.ai新增entity與value的方法

  1. utils2.py的程式碼如下:
    下圖一的wit_response2 就是把使用者輸入的訊息輸出成entity跟value兩個變數。而get_ms_elements(value)就是將value再進到get_ms_elements去做解析。
    https://ithelp.ithome.com.tw/upload/images/20171226/20107144PasXRNTQLC.png
    以下圖二程式碼來說明,如果輸入的語句中包括”高雄密室”這個詞,那回應的內容就會有一則「title為高雄密室&兩個名為Canpass`夢罟的按鈕,點下去就可以連結到兩間工作室的網站」的回覆。
    https://ithelp.ithome.com.tw/upload/images/20171226/20107144MhAfeXbsUH.png
    回復格式的程式撰寫,就是參考 FB提供的文件( https://developers.facebook.com/docs/messenger-platform/send-messages/buttons#postback )所以大家可以依照自己想要的內容作變化。
    下圖三也是變化的一種。說明一下:創一個list裡面有三段圖片的位址,回覆的image_url就是從list中隨機選一,如果把list中的網址寫爬蟲去爬更多有趣的圖片之類的,那隨機回傳的變化就更大了~~
    https://ithelp.ithome.com.tw/upload/images/20171226/20107144nretovPXeZ.png
  2. Utils2.py寫好了以後,回到app.py做一點更改。
    訊息讀進來的時候先看是哪個entity,如果是mstype就進到get_ms_elements,根據其value得到對應之回應,並回傳,如果是newstype則進到get_news_elements,以此類推。
    https://ithelp.ithome.com.tw/upload/images/20171226/20107144B8utSDp6yq.png
  3. 測試測試一下
    https://ithelp.ithome.com.tw/upload/images/20171226/20107144ulFIhizwzQ.png
    https://ithelp.ithome.com.tw/upload/images/20171226/20107144AzL9kEudTb.png

上一篇
DAY6[Messenger ChatBot]在python import wit.ai
下一篇
Day8[Messenger ChatBot]buttons常用的type之一:postback
系列文
ChatBot&Chatbase30

尚未有邦友留言

立即登入留言