在上一篇介紹完了Direct Line Channel之後,Azure Bot Service 和 BotBuilder 搭配開發chatbot的部分就到了一個尾聲。當然,裡面還有很多細節可以介紹,但是以目前介紹的内容來説,要開發出一個能用的chatbot已經不是什麽問題。
那下一步是什麽?在介紹bot builder的過程會發現,開發chatbot其實蠻死板的,有沒有辦法讓他更加智能一些?如果搭上最近幾年很火的AI服務就可以。
這篇將快速回顧一下目前bot builder所學到的内容,以及下一步如何搭配AI服務來增加可用性。
整個Azure Bot Service的框架
知道大家應該已經看膩上面那張圖,不過在回來看一下應該會更有感。
從右邊的bot builder框架開發出chatbot,再到左邊的搭配bot channel registration把chatbot和各個channel連接起來,在整個過程介紹了:
bot builder的開發,從模擬器測試,邏輯最小單位的Dialog、到FormFlow再到訊息卡片話呈現
把chatbot上綫,使用到了Azure的App Service來做hosting
透過bot channel registration把chatbot和各個channel做關聯,有任意網頁的web control,有Facebook Messenger再到任意程式都可以接的Direc tLIne Channel
到這邊對於整個chatbot開發應該有些感覺了,但是會發現chatbot有個很大的問題,那就是感覺像玩具,蠻好玩,但是如果真的用來做什麽,好像又沒有什麽辦法,這是爲什麽?
如果沒有真的開發下去,可能還沒發現什麽,但是如果回想一下目前整個操作,會發現:
太笨了,如果使用者輸入複雜語句就gg了
chatbot不是新奇的東西,本質上他就是一個大大的switch程式,輸入關鍵字,就有對應動作,但是如果今天換個説法呢?舉例來説,像目前的範例有個指令是查飯店,但是如果有使用者習慣用酒店那不就gg了。
或許會説,那我就把都有可能的語句寫進去不就得了。好吧,或許這樣可以,但是其實人類是一直在新增文字。我曾經聽過一個在做文字分析的專家説,他們曾經做過從電商平臺的留言統計快遞很快有幾種説法,當下做完發現 2000多種,結果半年之後在統計發現變成了3000多種(專家説的準確數字我可能記得沒有很清楚,但是概念是一樣的,説辭增長是很快的),怎麽可能把這些語句都寫進去?舉例來説,如果不完游戲,就不知道gg是什麽, 不過因爲玩游戲的多了所以gg有點變成通用詞了。
輸入内容太單調
目前爲止都是用文字作爲輸入的方式,不過文字有時候打起來太慢或者不方便。可不可以用圖片來代替文字?可不可以用說的來下達指令?當以這種模式來思考的時候,會發現chatbot有點變成生活小秘書了,如果我可以直接 用説的或者我看到的東西拍照來下指令,那麽整個的操作體驗完全不同。任何科幻類型的電影或者書都一定有個智能系統,是不是都用説的就可以叫他們做事,就像鋼鐵人裡面的Jarvis一樣。
知識太少
這邊指的知識太少是本身資訊内容太少。舉例來説,如果是訂房的bot,如果不能夠顯示所有在記錄裡面的飯店那麽基本上沒有什麽用。因此,取決於chatbot是哪一種類型,背後可能都會搭配一個龐大但是搜索快的資料庫。
微軟在Azure上面有一系列的AI服務叫做Cognitive Service,裡面包含了一些已經包好的AI服務讓我們可以搭在任意的程式裡面。這其中和chatbot搭配非常適合。
未來篇章可能會稱Cognitive Service這個AI服務為AI - 從純技術的角度來説,自己建立模型才是真AI,但是自己建立模型技術含量太高(詳細可以參考我的 「data science 到底是什麼從一個完全外行角度來看」),因此有一些已經建立好并且釋放出來的服務 像是Cognitive Service應該叫做AI服務才對。當然,Cognitive Service有部分可以讓你自己training model的一部分,因此叫做 AI 勉强也算。
cognitive service的所有服務,來源:https://blogs.msdn.microsoft.com/bluesky/2017/05/11/build-2017-cognitive-services-update-en/
導入Cognitive Service怎麽解決上面提到的問題?
太笨了,如果使用者輸入複雜語句就gg了
在Cognitive Service有一系列的語言相關的AI服務,最重要的是LUIS。因此,可以透過整合LUIS到chatbot裡面,讓在判別user的用意更加的容易以及方便。避免要在程式裡面寫上大大的switch。
輸入内容太單調
在Cognitive Service有一系列的圖片以及語音服務,因此可以透過搭配讓chatbot能夠接受語音或者圖片類型的輸入。
知識太少
假設,今天只是簡單的知識庫,例如FAQ那種,那麽Cognitive Service有個專門的服務稱爲QnA Maker可以搭配。如果是大型資料類型,例如所有的產品型號,那麽可以搭配Azure上面的CosmosDB以及Azure Search 達到大資料量儲存并且快速搜索的效果。
這篇,快速的review了一下目前爲止所看到的内容,并且點出了一些chatbot問題所在。
這些問題可以透過搭配Azure的AI 服務,Cognitive Service來解決,并且快速看了幾個裡面可以用到的服務。
在接下來就要開始往這些服務做介紹,下一篇由語言文字處理的LUIS開始。