Noob's Space

Chatbot 開發前的那兩三事(二):挑選平台、功能設計

確定要做 Chatbot 以後,接下來就是挑選平台和設計功能的問題了。市面上常見的通訊軟體都有開放做 Chatbot 的 API,甚至一些像 Slack 的平台也能做 Chatbot;而 Chatbot 又需要什麼功能呢?

功能設計:App 和 Chatbot 其實沒什麼不同

先講功能設計好了,你的 Chatbot 會需要什麼功能呢?其實製作一個 Chatbot 能用的功能和 App 能用的功能沒什麼不同。以訂便當這個例子來說,原本 App 是設 button.onclick 的時候呼叫 order() 這個函式,現在只是改成 if(input == “訂便當”) 的時候呼叫 order() 這個函式而已。核心功能,也就是 order 的寫法還是一樣的。

唯一不同的地方剩下輸入和輸出的部分,例如如何取得使用者的地標?使用者輸入地標的話該怎麼分析?使用者輸入一串文字以後該怎麼做分析?

輸出的部分能不能送出圖片、該怎麼去表達一個座標?用地圖?傳地址?

再來,你的 Chatbot 需要什麼功能?根據之前的聊天機器人(Chatbot)失敗了,十點告訴你為什麼提到,很會做某一件事情的 Chatbot 通常會比會做很多事情但做不好的 Chatbot 還有幫助。你的 Chatbot 有哪些核心功能是一定該放進去的?畢竟使用者想要的東西不見得是使用者需要的東西。

Chatbot 平台百家爭鳴,我該選哪家?

這點看要用什麼方向去看,目前各個平台支援的功能不同、價格也不同。就功能上,我首推 Telegram 平台,能夠做到付款、Dialog 對話框、甚至在 inline keyboard 塞 gif 等等;但若是以 Target Audience 去考量,目前在臺灣使用 Telegram 的人可能沒有那麼多,你的 Chatbot 可能就沒有那麼普及。

如果要以目前臺灣比較常見的 Messenger、LINE 來說的話,API 也是蠻有彈性的,像目前 Messenger 可以做到基本 NLP,但 LINE 居然連主動推播都要付錢?

大概比較一下這三家:

就 event 的部分,Messenger 可以做到 message_read、message_delivery 的 event;LINE 可以做到 follow、unfollow、join、leave、beacon 等 event;Telegram 則有一些比較特別的像是 edited_message、channel_post、shipping_query、pre_checkout_query 等等。

其中,Telegram 可以用 Polling 的方式,不需要特別找一個 HTTP 伺服器做 Webhook。

群組聊天的部分,Messenger 目前完全不能把 bot 加進群組;LINE 有 Group 和 Room 兩種東西;Telegram 則是有 channel、group、supergroup。

簡單來說,選平台還是要先參考自己的目標客群有誰,然後確定該平台的 API 支不支援自己要做的功能

AI 呢?人工智慧呢?

其實大部分的 Chatbot 都還沒有用到 AI 就是了,大多還是用事先建立好的模板(類似流程圖的概念)下去跟使用者對話;或是用關鍵詞去回應使用者。真正要做到 AI,頂多也是用到一些 NLP(自然語言分析) 的服務而已。

下一篇再來講最潮的中文語意分析。

Chatbot 開發前的那兩三事 目錄

你可能會有興趣......?

廣告