QnA Maker 知識庫的最佳做法

知識庫開發生命週期可引導您了解如何從頭到尾管理知識庫。 使用下列最佳做法可改善您的知識庫,並為用戶端應用程式或聊天機器人使用者提供更好的結果。

注意

QnA Maker 服務即將於 2025 年 3 月 31 日淘汰。 現在,Azure AI 語言提供較新版本的問題和答案功能。 如需瞭解語言服務內的問題解答功能,請參閱問題解答。 從 2022 年 10 月 1 日開始,您將無法建立新的 QnA Maker 資源。 如需將現有 QnA Maker 知識庫移轉至問題解答的相關資訊,請參閱移轉指南

擷取

QnA Maker 服務會持續改進從內容中擷取 QnA 的演算法,並擴充支援的檔案和 HTML 格式清單。 請遵循指導方針,以根據您的文件類型擷取資料。

一般情況下,常見問題集頁面應獨立存在,而不會與其他資訊結合。 產品手冊應有清楚的標題,且最好有索引頁面。

設定多回合

建立已啟用多回合擷取的知識庫。 如果您的知識庫可支援 (或應該支援) 問題階層,則階層可以從文件中擷取,或在擷取文件之後建立這個階層。

建立良好的問題與解答

良好的問題

最好的問題非常簡單。 考慮每個問題的關鍵字或片語,然後建立針對該關鍵字或片語的簡單問題。

您可視需要新增多個替代問題,但要讓替代問題維持一樣的簡單性。 新增更多的單字或片語並非問題的主要目的,也無助於 QnA Maker 尋找答案。

新增相關的替代問題

使用者可以透過交談形式的文字 (How do I add a toner cartridge to my printer?) 或關鍵字搜尋 (例如 toner cartridge) 來輸入問題。 知識庫應該具備這兩種形式的問題,才能正確地傳回最佳解答。 如果您不確定客戶會輸入哪些關鍵字,請使用 Application Insights 資料來分析查詢。

良好的解答

最佳解答是簡單但不過於簡單的解答。 請勿使用如 yesno 的解答。 如果您想讓解答連結到其他資源,或提供含有媒體和連結的豐富體驗,請使用中繼資料標記來區分解答,然後在 strictFilters 屬性中提交查詢與中繼資料標記,以取得正確的解答版本。

回答 後續提示
使用鍵盤上的電源按鈕來關閉 Surface 膝上型電腦的電源。 * 要睡眠、關機和重新開機的按鍵組合。
* 如何以硬式開機方法將 Surface 膝上型電腦開機
* 如何變更 Surface 膝上型電腦的 BIOS
* 睡眠、關機與重新開機之間的差異
可透過電話、Skype 和文字訊息 (每天 24 小時) 取得客戶服務。 * 銷售的連絡人資訊。
* 可供親自造訪的辦公室和商店地點與時間。
* Surface 膝上型電腦的配件。

閒聊

將閒聊新增至您的 Bot,輕而易舉地讓 Bot 變得更健談且吸引人。 您可以在建立知識庫時,透過預先定義的特質輕鬆新增閒聊資料集,並隨時加以變更。 了解如何將閒聊新增至您的 KB

多種語言皆支援閒聊。

選擇特質

有多種預先定義的特質可支援閒聊:

特質 QnA Maker 資料集檔案
Professional qna_chitchat_professional.tsv
易記 qna_chitchat_friendly.tsv
機智 qna_chitchat_witty.tsv
關心 qna_chitchat_caring.tsv
熱情 qna_chitchat_enthusiastic.tsv

回應的範圍從正式到非正式和不敬。 選取最符合您期望的 Bot 語調特質。 您可以檢視資料集,並選擇其中一個資料集作為 Bot 的基礎,然後自訂回應。

編輯 Bot 特有問題

有一些屬於閒聊資料集的 Bot 特有問題,而且已填入泛型回答。 變更下列回答,充分反映您的 Bot 詳細資料。

建議讓下列閒聊 QnA 更加明確:

  • 您是誰?
  • 您可以做什麼?
  • 你幾歲?
  • 誰建立了你?
  • 您好

新增自訂閒聊與中繼資料標記

如果您新增自己的閒聊 QnA 配對,請務必新增中繼資料,以便傳回相關解答。 中繼資料名稱/值對為 editorial:chitchat

搜尋解答

GenerateAnswer API 會使用這兩組問題和解答來搜尋使用者查詢的最佳解答。

僅在解答不相關時才搜尋問題

如果您不需要搜尋解答,請使用 RankerType=QuestionOnly

舉例來說,您的知識庫是一種縮寫目錄,問題是縮寫,解答則為完整內容。 答案值將無法協助搜尋適當的解答。

排名/評分

請務必充分利用 QnA Maker 所支援的排名功能。 這樣將可提高指定的使用者查詢獲得適當回應的可能性。

選擇閾值

預設信賴分數為 0 (作為閾值),不過您可以根據需求為知識庫變更該閾值。 每個知識庫各有不同,因此您應該測試並選擇最適合您知識庫的閾值。

選擇排名工具類型

根據預設,QnA Maker 會搜尋問題和解答。 如果您只想要搜尋問題,請在 GenerateAnswer 要求的 POST 主體中使用 RankerType=QuestionOnly 以產生解答。

新增替代問題

替代問題可提高使用者查詢產生相符項目的可能性。 在同樣的問題可用多種方式提問時,替代問題就有其效用。 這可以包括文句結構和字組樣式的變更。

原始查詢 替代查詢 變更
Is parking available? Do you have car park? 文句結構
Hi Yo
Hey there!
字組樣式或俚語

使用中繼資料標記來篩選問題和答案

中繼資料可讓用戶端應用程式根據中繼資料標記來縮小使用者查詢結果的範圍,而非採用所有的解答。 即使查詢相同,知識庫解答也可能根據中繼資料標記而不同。 例如,如果餐廳分店的地點不同 (亦即,中繼資料為「地點:西雅圖」和「地點:雷德蒙」的不同),「停車場在哪裡」就可能有不同的回答。

使用同義字

儘管同義字在英文中可獲得某種程度的支援,但請透過變更 API,使用不區分大小寫的文字變異形式,為關鍵字新增不同格式的同義字。 同義字會新增於 QnA Maker 服務層級上,以供服務中所有的知識庫共用

使用相異字詞區隔問題

QnA Maker 排名演算法會比對使用者查詢與知識庫中的所含問題,在每個問題分別處理不同的需求時,可獲得最佳效果。 若在不同問題間有相同的字組重複出現,就比較難以用這些字組為指定的使用者查詢選擇正確的解答。

例如,您對於下列問題可能會有兩個不同的 QnA:

QnA
where is the parking location
where is the ATM location

因為上述兩個 QnA 的文句表達方式非常類似,因此如果許多使用者查詢使用 "where is the <x> location" 這類文句表達,此相似性可能會導致非常類似的分數。 反之,請嘗試避免使用知識庫中許多問題都有的字組 (像是 "location"),而以 "where is the parking lot""where is the ATM" 之類的查詢來清楚區分。

共同作業

QnA Maker 可讓使用者對知識庫進行共同作業。 使用者需要存取 Azure AI QnA Maker 資源群組,才能存取知識庫。 有些組織可能想要將知識庫的編輯和維護委外處理,但同時仍能夠保護其 Azure 資源的存取權。 若要完成此「編輯者-核准者」模型,可以在不同的訂用帳戶中設定兩個相同的 QnA Maker 服務,並選取其中一個用於編輯測試週期。 測試完成之後,就會使用匯入-匯出程序將知識庫內容轉移至核准者的 QnA Maker 服務,由他來執行最終的知識庫發佈和端點更新。

主動學習

主動式學習具有各種品質和數量的使用者查詢時,其在建議替代問題方面的表現最好。 務必讓用戶端應用程式的使用者查詢參與主動式回饋迴圈,而不需要審查。 在 QnA Maker 入口網站中建議問題之後,您可以依建議篩選,然後檢閱並接受或拒絕這些建議。

下一步