1. 程式人生 > >從零開始玩人工智能-機器人服務-04

從零開始玩人工智能-機器人服務-04

sta wid 圖片 回復 依賴包 http ase services space

前文書說到目前微軟的Bot機器人分為五類,也從以前的Bot Framework遷往Azure的Bot Service。利用QnA Maker,我們已經快速的做了一個對話機器人。那麽,怎麽讓這個對話機器人面向大眾提供服務呢?目前的架構而言,自己開發代碼連到QnA Maker機器人是一種做法,而使用Azure的Bot Service讓機器人更加容易部署,更加聰明也是一種做法。接下來就會看看怎麽在Azure裏部署一個機器人。

技術分享圖片 技術分享圖片

在Azure的訂閱裏,從“AI+Cognitive Services”中直接新建一個“Web App Bot”。和之前定義的一樣,有五類機器人可選,並可以選擇使用 C# 還是 Node.js 來實現。Bot Service是泡在 IIS 的 Web 服務上的,所以創建Bot的時候,就會創建Web Bot App服務、Bot使用的應用服務和對應的應用服務計劃。Bot可以選擇F0的計劃,這樣測試的時候不用花錢。應用服務計劃在隨Bot創建的時候,會自動選擇S1的標準計劃,這個計劃是要收費的,所以我趕緊把應用服務計劃改成F1免費的。如果使用模板部署,可以直接修改模板文件。

技術分享圖片

順便提一下,因為應用服務可以按照需要進行伸縮,所以選擇合適的應用服務計劃是很好的做法。

坐和放寬,不一會Bot服務就制備好了,因為選擇的是QnA的機器人,所以到應用配置中,輸入我們之前創建的QnA Maker的訂閱ID和KB的ID。

技術分享圖片

默認Bot服務就會開啟Web Chat的信道,信道的概念暫且不提,以後再寫。接下來,我就興沖沖的打開Bot機器人,選擇“Test in Web Chat”來測試我的機器人,可是,等了半天,對話窗口一直打不開。好失望……仔細檢查,應用服務記錄了500的HTTP錯誤。

我回到Docs站點,查看微軟的文檔,示例選擇的是Basic機器人,難道跟機器人類型有關?這不科學啊。不過可以創建一個Basic的來試試。

技術分享圖片

看上去貌似是正常的,問題在哪呢?翻來翻去,發現有個在線代碼編輯器,可以直接在線查看代碼。立馬打開兩邊的代碼進行比較。

技術分享圖片

這是Basic機器人的,可以看到你說啥它就回復啥。

技術分享圖片

這是QnA機器人,可以看到使用環境傳入的訂閱ID和KB的ID連接QnA Maker的服務。代碼沒毛病啊,要是有問題,還能放到Azure裏?反正是Node.js,我就在編輯器裏運行唄。查看一下輸出,還真有不少報錯,提示依賴包沒找到……

技術分享圖片

Node.js的代碼不會寫,包我還不會安裝麽。看看都有啥包。

技術分享圖片

確實比Basic機器人依賴的包多啊。怎麽加這些包呢?又不是一臺IaaS的虛擬機,可以遠程上去裝。看了看,在線編輯器居然提供了Console~ 趕緊試試npm install,沒毛病~

技術分享圖片

趕緊把依賴的包全部都裝上,再次運行代碼。這次沒報錯了,回到Azure的Portal,繼續測試Web Chat。

技術分享圖片

這次終於能跑了。不過還有兩個問題:

1、發送問題跟獲得回答的時間挺長,我估計跟我全部選擇免費服務計劃有關,慢一點忍了。

2、在這個QnA Maker服務裏,我同時添加了URL和上傳了KB文件(txt),但是只有內置的和URL的KB能夠響應。即使我把URL的KB刪除了,KB文件依然沒有生效。報了一個事件給QnAmaker.ai的反饋。


從零開始玩人工智能-機器人服務-04