Alan Tsai 的學習筆記


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

[chatbot + AI = 下一代操作模式][37]維護QnA Maker的知識庫 - 設定url或者檔案為來源、多人維護以及離綫定義知識庫

[chatbot + AI = 下一代操作模式][37]維護QnA Maker的知識庫 - 設定url或者檔案為來源、多人維護以及離綫定義知識庫.jpg
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 

上一篇([36]Chatbot整合QnAMaker - 使用對話查找知識集)介紹完了如何把QnA Maker整合到Bot Builder SDK裡面,讓使用者可以透過問答的方式去搜索設定好的Knowledge。

這篇要來介紹維護Knowledge Base這件事。如何透過設定截取網頁内容或者截取檔案内容來設定Knowledge、怎麽多個人維護和怎麽Offline 透過LUDown這個工具來Offline備份以及設定。

如何設定用截取網站或者檔案方式設定Knowledge Base

還記得在一開始建立Knowledge Base的時候,在Step 4的時候有詢問設定網址或者檔案的方式來輸入Knowledge内容。那個時候我們沒有理他,直接跳過了。

這個功能其實非常方便,想象一下,一般來說會有一個官網,如果Chatbot裡面的知識庫和網頁某一頁内容是一樣的,那麽沒有這個功能的話需要使用者自己記得當有更新的時候,兩邊都要更新

有了這個功能之後,内容有更新的時候,只需要更新網頁版本的内容,而QnA Maker只需要在referesh一下,是不是變得很方便呢?

要設定這個功能很簡單:

  1. 先點選上面的【Settings】切換到設定的頁面
  2. 往下面找,可以看到【Manage Knowledge Base】,這邊可以輸入網址,或者上傳檔案。這邊將用Office 365的FAQ頁面做模擬 (https://products.office.com/zh-tw/microsoft-office-for-home-and-school-faq
  3. 確定沒有問題之後,可以選擇右上角的【Save and Train】
chrome_2018-08-18_20-18-39.png
設定url的畫面

稍等一下,轉完了之後在切回到【Edit】,會看到Knowledge Base多出了好多條記錄。這邊有個不錯的地方是,來源不同,會用類似頁簽的方式區分出那些屬於手動key的那些是屬於url的:

chrome_2018-08-21_17-23-26.png
檢查設定完url的knowledge base

關於url截取的網頁格式或者是檔案上傳的格式,可以參考:文件:資料來源

如何讓多人維護同一個Knowledge base

一般來説,靠一個人來維護Knowledge base不太現實,那麽如何讓多人可以共同維護一個Knowledge base呢?

在QnA Maker和其他Cognitive Service不同,他是透過使用Azure的Role Base Access Control (RBAC)設定到QnA Maker的服務上面。

進入QnA Maker的Azure服務,選擇Access Control (IAM)
chrome_2018-08-21_17-34-12.png
找到QnA Maker Service進入到Access Control
選擇加入一個人,Role可以是Owner或者Contributor
chrome_2018-08-21_17-37-52.png
加入某個人到QnA Maker裡面為Contributor

上面步驟設定完了之後,用那個帳號登入到qnamker.ai,就可以看到這個Service的所有Knowledge Base。

這邊注意一下,這裡只能夠控制到QnA Maker服務的層級,換句話説,如果要控制到Knowledge Base的層級是做不到。如果要控制Knowledge Base,那麽最好兩個為不同的QnA Maker才可以做到。

Offline設定Knowledge Base的工具

還記得在之前的篇幅([23]LUIS管理工具 - luis-api和LUDown介紹)介紹了luis-api以及LUDown這兩個工具嗎?

這兩個工具一個是用在透過command line的方式對LUIS的Project進行操作,另外一個則是用類似Markdown語法寫出LUIS的Model内容,然後透過工具轉換成LUIS看得懂的JSON Model,達到版本控制模型容易。

在QnA Maker也有同樣的工具,分別爲:

  1. Nodejs 套件 qnamaker - 官方文件
  2. Node js 套件 LUDown - 沒錯,和LUIS用的那個是同一個工具,只不過呼叫的參數以及格式略有不同而已 - QnA 的使用方式

這邊就不再詳細介紹這兩個工具了,有興趣可以看LUIS那篇的介紹,基本上qna maker和他的概念完全一樣,差異只在於呼叫的參數而已。

結語

這篇介紹了如何更好的維護QnA Maker的Knowledge Base。從介紹透過url或者檔案上傳的方式來設定Knowledge 内容,到如何加入其他人作爲維護的管理者,最後則是如何透過工具讓在沒聯網的時候可以先設計好Knowledge base内容,也讓 版控這件事情變得簡單。

在結束QnA Maker之前,還有一個功能想要介紹,那就是如何知道使用者都問了些什麽?只有知道了使用者問了什麽,才可以分析到底目前的Knowledge Base知識量夠不夠,有沒有需要調整等等。

其他的Cognitive Service這個部分都是整合到了對應的Portal裡面,可是QnA Maker不是這樣,QnA Maker透過的是Application Insight。

下一篇([38]用Application Insight看使用者都在QnA Maker查什麽)將簡單的介紹Application Insight,并且如何在Application Insight看到使用者都在問什麽問題。


如果文章對您有幫助,就請我喝杯飲料吧
街口支付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