Alan Tsai 的學習筆記


學而不思則罔,思而不學則殆,不思不學則“網貸” 記錄軟體開發的點點滴滴 著重於微軟技術、網頁開發、DevOps、C#, Asp .net Mvc、Azure、AI、Chatbot、Docker、Data Science

[chatbot + AI = 下一代操作模式][16]BotBuilder開發總結 - 下一步是搭AI服務

[chatbot + AI = 下一代操作模式][16]BotBuilder開發總結 - 下一步是搭AI服務.jpg
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 

在上一篇([15]上綫 - 透過Direct Line把chatbot和任意程式做連接)介紹完了Direct Line Channel之後,Azure Bot Service 和 BotBuilder 搭配開發chatbot的部分就到了一個尾聲。當然,裡面還有很多細節可以介紹,但是以目前介紹的内容來説,要開發出一個能用的chatbot已經不是什麽問題。

那下一步是什麽?在介紹bot builder的過程會發現,開發chatbot其實蠻死板的,有沒有辦法讓他更加智能一些?如果搭上最近幾年很火的AI服務就可以。

這篇將快速回顧一下目前bot builder所學到的内容,以及下一步如何搭配AI服務來增加可用性。

整個Azure Bot Service

a238a09a-ee30-4106-8ec1-175e92acb902.jpg
整個Azure Bot Service的框架

知道大家應該已經看膩上面那張圖,不過在回來看一下應該會更有感。

從右邊的bot builder框架開發出chatbot,再到左邊的搭配bot channel registration把chatbot和各個channel連接起來,在整個過程介紹了:

  1. bot builder的開發,從模擬器測試,邏輯最小單位的Dialog、到FormFlow再到訊息卡片話呈現
  2. 把chatbot上綫,使用到了Azure的App Service來做hosting
  3. 透過bot channel registration把chatbot和各個channel做關聯,有任意網頁的web control,有Facebook Messenger再到任意程式都可以接的Direc tLIne Channel

到這邊對於整個chatbot開發應該有些感覺了,但是會發現chatbot有個很大的問題,那就是感覺像玩具,蠻好玩,但是如果真的用來做什麽,好像又沒有什麽辦法,這是爲什麽?

目前爲止的chatbot開發有什麽問題?

如果沒有真的開發下去,可能還沒發現什麽,但是如果回想一下目前整個操作,會發現:

太笨了,如果使用者輸入複雜語句就gg了

chatbot不是新奇的東西,本質上他就是一個大大的switch程式,輸入關鍵字,就有對應動作,但是如果今天換個説法呢?舉例來説,像目前的範例有個指令是查飯店,但是如果有使用者習慣用酒店那不就gg了。

或許會説,那我就把都有可能的語句寫進去不就得了。好吧,或許這樣可以,但是其實人類是一直在新增文字。我曾經聽過一個在做文字分析的專家説,他們曾經做過從電商平臺的留言統計快遞很快有幾種説法,當下做完發現 2000多種,結果半年之後在統計發現變成了3000多種(專家説的準確數字我可能記得沒有很清楚,但是概念是一樣的,説辭增長是很快的),怎麽可能把這些語句都寫進去?舉例來説,如果不完游戲,就不知道gg是什麽, 不過因爲玩游戲的多了所以gg有點變成通用詞了。

輸入内容太單調
目前爲止都是用文字作爲輸入的方式,不過文字有時候打起來太慢或者不方便。可不可以用圖片來代替文字?可不可以用說的來下達指令?當以這種模式來思考的時候,會發現chatbot有點變成生活小秘書了,如果我可以直接 用説的或者我看到的東西拍照來下指令,那麽整個的操作體驗完全不同。任何科幻類型的電影或者書都一定有個智能系統,是不是都用説的就可以叫他們做事,就像鋼鐵人裡面的Jarvis一樣。
知識太少
這邊指的知識太少是本身資訊内容太少。舉例來説,如果是訂房的bot,如果不能夠顯示所有在記錄裡面的飯店那麽基本上沒有什麽用。因此,取決於chatbot是哪一種類型,背後可能都會搭配一個龐大但是搜索快的資料庫。

AI服務怎麽解決這些問題?

微軟在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來解決,并且快速看了幾個裡面可以用到的服務。

在接下來就要開始往這些服務做介紹,下一篇([17]語義識別服務 - LUIS概念介紹)由語言文字處理的LUIS開始。


如果文章對您有幫助,就請我喝杯飲料吧
街口支付QR Code
街口支付QR Code
台灣 Pay QR Code
台灣 Pay QR Code
Line Pay 一卡通 QR Code
Line Pay 一卡通 QR Code
街口支付QR Code
支付寶QR Code
街口支付QR Code
微信支付QR Code
comments powered by Disqus