透過Azure Bot Service將QnA Maker所建立的知識庫串接起來完全不用Coding
在上一篇介紹QnA Maker後已建立好一個YouBike的常見問題知識庫,接下來我們要透過Azure Bot Service串接成為正式的服務,首先登入Azure後在左方點選"+"輸入Bot Service
找到後點選建立
輸入服務名稱、資源群組及位置後,建議勾選釘選到儀表板之後較好維護,接下來點選建立會開始部署
部署完成進入設定時需要先建立Microsoft App ID,此時點選Create a Microsoft App ID and password
接下來會導到登入畫面輸入帳密後,依其產生應用程式識別碼及密碼後,記得將密碼複製起來,點選完成,返回Bot Framework
在步驟2將剛剛的密碼貼上
步驟3選擇程式語言時,我選預設的C#(有試過用NodeJS但失敗,找不到原因為何)
在Choose a template時請選擇Question and Answer
勾選我同意使用條款點選建立
接下來會要求登入QnA Maker
登入後下拉選擇我們之前建立的YouBike知識庫,點選OK後就等待一段時間讓Azure建立相關服務
(原本用IE建立時會出現“This item cannot be accessed or modified.”的錯誤訊息,後來改用Chrome就好了如果你建立時也有相同狀況請記得更換瀏覽器)
系統會自動產生相關程式碼,完全不需要寫任何一行程式碼,你可以點選右上方的Test測試相關的問題其回答是否正確,若不正確則要回到QnA Maker訓練再Publish
如何知道這個服務的URL呢?此時可以點選CHANNELS,在Web Chat右邊點選Edit
可以看到Embed code中有段URL,"https://webchat.botframework.com/embed/YouBike?s=YOUR_SECRET_HERE"先將其記下來;再點選Secrret keys第1行右邊的Show再將其記下來,最後再將YOUR_SECRET_HERE置換為剛剛的key就得到完整的服務URL
利用剛剛組出來的URL可以看到Web Chat的畫面,輸入問題後若有回答就表示服務正常
當你測了一段時間後發現有些問題沒有建在知識庫內,但系統都回答"No match found!"時若想改變其預設的回答時要怎麼做呢?
此時需要稍微改一下程式碼,可以參閱Create a bot using the Question and Answer template這段中說明預設的訊息是optional也就是非必填
於是我們回到Develop,找到BasicQnAMakerDialog.csx,在public BasicQnAMakerDialog()後面加入我們想要的預設回答,記得點選Save
再回到剛剛的Web Chat輸入同樣的問題,可以發現預設的回答已經變成我們要的了。