微軟認知服務中的QnA Maker– (2) 建立QnA Maker服務

QnA Maker是微軟Cognitive Services中的一環,你可以從底下這個獨立的網址進入,大部分建立和管理knowledge base的功能也都在這裡。

https://www.qnamaker.ai/

但是具體要使用該服務前,你還是得要具有Azure帳號,和先前介紹過的LUIS一樣,你必須在Azure Portal先建立好使用QnA Maker時所需要的Key,建立的方式如下。

請透過https://portal.azure.com/ 進入Azure管理站台,在建立資源時,請搜尋QnA Maker即可找到要建立的服務:

建立時,請注意底下的畫面:

上圖中A與D的部分,建議你可以用同樣的名字,因為建立一組QnA Maker服務,Azure portal將會自動為你產生三個資源,分別是index服務、App Web Site、以及QnA Maker本體。

上圖D的部分,就是App Web Site這個網站的名稱。

會要您特別留意,是因為雖然QnA Maker在建立時你可以選擇F0免費方案,該方案讓你可以在每秒三次呼叫以內免費使用,聽起來很不錯,但你別忘了,其實在建立的同時,Azure還同時建立了Search服務以及Web App,特別是Web App在預設的狀況下是個S1等級的標準網站,每個月將會有幾千元台幣的費用。因此,請在建立好之後,自行找到該網站,調整資源大小,以避免被收取較高費用(當然,如果你需要大量使用,對效能來說恐怕S1是比較好的選擇)。

相關的調整辦法可以參考底下連結:

https://studyhost.blogspot.com/2018/07/qna-maker.html

順利的建立好了QnA Maker服務之後,你可以在該服務的Keys選項下找到你所需要的Key:

有了這組Key之後,我們就可以正式的使用該服務了。

建立知識庫

接著,我們回到https://www.qnamaker.ai 這個Portal,在主畫面中你會看到Create a knowledge base的選項:

點選後,系統會引導你透過五個步驟來建立KB。

你會發現,第一個步驟其實就是要你去Azure站台建立QnA Service,而這我們剛才也已經做了,所以只需要在步驟二,選擇你的Azure目錄、訂閱名稱、以及QnA 服務名稱就行了。

而步驟三,也只是要你輸入想建立的KB的名稱,自己取一個方便識別的名稱就好:


接著『步驟四』比較重要,其實也是唯一一個你需要留意的步驟:

由於QnA Maker會幫我們自動建立一個KB,所以,你可以上傳一個包含 Q/A的Excel檔案(上圖B),或是在上圖A的位置提供一個包含Q/A的網頁連結,QnA Maker會自動分析你的提供的檔案或網址,產生出基本的Q and A知識庫。

至於C的部分,是問你要不要幫你自動添加『閒聊』Q/A問答,諸如基本的問候或是些有的沒的的對話,但由於這功能目前只支援英文,因此我們選擇None跳過。

填妥KB的名稱與Q/A來源,最後按下『Create your KB』鈕即可。

QnA Maker會需要一點時間來產生資料庫:

下圖是我們透過QnA Maker建立好的KB部分內容:

而這些資料的來源其實是一個網頁:

QnA Maker會自動分析上面這樣的網頁(或是你上傳的word/pdf均可),在文件中找出QA之後自動產生KB。如果你還想要添加什麼額外的Q/A,可以點選KB紹面的『Add QnA pair』手動加入:

你只需要在上面輸入好Question與Answer欄位中的資料即可。

別忘了若對KB有任何的異動,最後都要按下右上角的『Save and train』鈕:

按下去後需要一點時間,系統會自動索引並訓練,完成候你就可以測試了。

下一篇,我們來看如何測試與訓練QnA Maker…

--------------------------------------------
本系列索引: https://studyhost.blogspot.com/2019/01/cognitive-servicesqna-maker-x-4.html
線上課程:https://www.udemy.com/line-bot/
電子書:https://www.pubu.com.tw/ebook/103305
LineBotSDK:https://www.nuget.org/packages/LineBotSDK
如果需要即時取得更多相關訊息,可按這裡加入FB專頁。若這篇文章對您有所幫助,請幫我們分享出去,謝謝您的支持。

留言

這個網誌中的熱門文章

使用 Airtable 在小型需求上取代傳統資料庫

使用Semantic Kernel 建立自然語言請假系統

精彩(且驚人)的Semantic Kernel入門範例

在 LINE Bot 開發中使用Semantic Kernel建立自然語言請假系統

專業的價值...