在 QnA Maker 中測試您的知識庫
測試 QnA Maker 知識庫是反復程式的重要部分,可改善所傳迴響應的正確性。 您可以透過增強的聊天介面來測試知識庫,也可讓您進行編輯。
注意
QnA Maker 服務將于 2025 年 3 月 31 日淘汰。 較新版的問題和解答功能現在隨附於 Azure AI 語言。 如需語言服務內的問題解答功能,請參閱 問題解答 。 從 2022 年 10 月 1 日起,您將無法建立新的 QnA Maker 資源。 如需將現有 QnA Maker 知識庫移轉至問題解答的相關資訊,請參閱 移轉指南 。
在 QnA Maker 入口網站中以互動方式測試
- 選取 [我的知識庫] 頁面上的名稱 ,以存取您的知識庫。
- 若要存取 [測試滑出] 面板,請選取 應用程式頂端面板中的 [測試 ]。
- 在文字方塊中輸入查詢,然後選取 Enter。
- 回應會傳回來自知識庫的最佳比對答案。
清除測試面板
若要從測試主控台清除所有輸入的測試查詢及其結果,請選取 [測試] 面板左上角的 [開始 ]。
關閉測試面板
若要關閉 [測試] 面板,請再次選取 [ 測試] 按鈕。 當 [測試] 面板開啟時,您無法編輯知識庫內容。
檢查分數
您可以在 [檢查] 面板中檢查測試結果的詳細資料。
開啟 [測試投影片] 面板後,選取 [ 檢查 ] 以取得該回應的詳細資料。
[檢查] 面板隨即出現。 此面板包含最高評分意圖,以及任何已識別的實體。 此面板會顯示所選語句的結果。
更正最高評分答案
如果評分最高的答案不正確,請從清單中選取正確的答案,然後選取 [ 儲存並定型 ]。
新增替代問題
您可以將問題的替代形式新增至指定的答案。 在文字方塊中輸入替代答案,然後選取 Enter 以新增答案。 選取 [儲存] 和 [ 定型 ] 以儲存更新。
新增答案
如果任何相符的現有答案不正確,或答案不存在於知識庫中,您可以新增答案(KB 中找不到良好的相符專案)。
在答案清單底部,使用文字方塊來輸入新的答案,然後按 Enter 以新增答案。
選取 [ 儲存並定型 ] 以保存此答案。 新的問答組現在已新增至您的知識庫。
注意
當您按下 [儲存] 和 [定型 ] 按鈕時,所有對知識庫的編輯只會儲存。
測試已發佈的知識庫
您可以在測試窗格中測試已發佈版本的 知識庫。 發佈 KB 之後,請選取 [ 已發佈的 KB] 方塊,然後傳送查詢以從已發佈的 KB 取得結果。
使用工具進行批次測試
當您想要下列專案時,請使用批次測試控管:
- 決定一組問題的最佳答案和分數
- 驗證一組問題的預期答案
必要條件
- Azure 訂用帳戶 - 免費建立一個訂用帳戶
- 建立 QnA Maker 服務 或使用使用英文的現有服務。
- 下載多回合範例
.docx
檔案 - 下載批次測試控管 ,從
.zip
檔案擷取可執行檔。
登入 QnA Maker 入口網站
登入 QnA Maker 入口網站。
從多回合 sample.docx 檔案建立新的知識庫
從工具列選取 [建立知識庫 ]。
略過 步驟 1 ,因為您應該已經有 QnA Maker 資源,請移至 步驟 2 以選取現有的資源資訊:
- Microsoft Entra ID
- Azure 訂用帳戶名稱
- Azure QnA 服務名稱
- 語言 - 英文
輸入名稱
Multi-turn batch test quickstart
作為知識庫的名稱。在 步驟 4 中,使用下表設定設定:
設定 值 從 URL、.pdf 或 .docx 檔案啟用多回合擷取。 已核取 預設回應文字 Batch test - default answer not found.
+ 新增檔案 選取必要條件中下載的 .docx
檔案清單。閒聊 選取 專業 在 步驟 5 中,選取 [ 建立知識庫 ]。
建立程式完成時,入口網站會顯示可編輯的知識庫。
儲存、定型和發佈知識庫
從工具列選取 [ 儲存並定型 ],以儲存知識庫。
從工具列選取 [發佈 ],然後再次選取 [發佈 ] 以發佈知識庫。 發佈可讓知識庫可供來自公用 URL 端點的查詢使用。 發佈完成時,儲存 [ 發佈 ] 頁面上顯示的主機 URL 和端點金鑰資訊。
必要的資料 範例 已發佈的主機 https://YOUR-RESOURCE-NAME.azurewebsites.net
已發佈的金鑰 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
(後面Endpoint
顯示的 32 個字元字串)應用程式識別碼 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
(36 個字元字串顯示為 的一POST
部分)
建立具有問題識別碼的批次測試檔案
若要使用批次測試控管,請使用文字編輯器建立名為 batch-test-data-1.tsv
的檔案。 檔案應為 UTF-8 格式,而且它必須有下列資料行以索引標籤分隔。
TSV 輸入檔欄位 | 備註 | 範例 |
---|---|---|
知識庫識別碼 | 您在 [發佈] 頁面上找到知識庫識別碼。 使用單一檔案中的不同知識庫識別碼,在單一檔案中一次測試相同服務中的數個知識庫。 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (36 個字元字串顯示為 的一 POST 部分) |
問題 | 使用者會輸入的問題文字。 最大 1,000 個字元。 | How do I sign out? |
元資料標記 | 選用 | topic:power key:value 使用格式 |
Top 參數 | 選用 | 25 |
預期的答案識別碼 | 選用 | 13 |
針對此知識庫,只將兩個必要資料行的三個數據列新增至檔案。 第一個資料行是您知識庫識別碼,第二個數據行應該是下列問題清單:
第 2 欄 - 問題 |
---|
Use Windows Hello to sign in |
Charge your Surface Pro 4 |
Get to know Windows 10 |
這些問題是知識庫的確切措辭,應該傳回 100 作為信賴分數。
接下來,請新增一些問題,類似于這些問題,但在另外三個數據列上沒有完全相同的問題,請使用相同的知識庫識別碼:
第 2 欄 - 問題 |
---|
What is Windows Hello? |
How do I charge the laptop? |
What features are in Windows 10? |
警告
請確定每個資料行都只以定位字元分隔。 前置或尾端空格會新增至資料行資料,而且會導致程式在類型或大小不正確時擲回例外狀況。
在 Excel 中開啟時,批次測試檔案看起來像下圖。 知識庫識別碼已取代 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
為 安全性。 針對您自己的批次測試,請確定資料行會顯示您的知識庫識別碼。
測試批次檔
在命令列使用下列 CLI 格式執行批次測試程式。
將 和 ENDPOINT-KEY
取代 YOUR-RESOURCE-NAME
為您自己的服務名稱和端點金鑰值。 這些值位於 QnA Maker 入口網站的 [設定 ] 頁面上。
batchtesting.exe batch-test-data-1.tsv https://YOUR-RESOURCE-NAME.azurewebsites.net ENDPOINT-KEY out.tsv
測試會完成並產生 out.tsv
檔案:
知識庫識別碼已取代 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
為 安全性。 針對您自己的批次測試,資料行會顯示您的知識庫識別碼。
第四個數據行中信賴分數的測試輸出會顯示前三個問題傳回 100 分,因為每個問題都與出現在知識庫中完全相同。 最後三個問題,以新的措辭的問題,不會傳回100作為信賴分數。 若要增加測試的分數,以及您的使用者,您需要將更多替代問題新增至知識庫。
使用選擇性欄位進行測試
瞭解格式和程式之後,您可以產生測試檔案,從聊天記錄等資料來源對知識庫執行。
因為資料來源和程式是自動化的,因此測試檔案可以多次使用不同的設定來執行,以判斷正確的值。
例如,如果您有聊天記錄,而且您想要判斷哪些聊天記錄文字會套用至哪些元資料欄位,請建立測試檔案,並設定每個資料列的元資料欄位。 執行測試,然後檢閱符合中繼資料的資料列。 一般而言,比對應該是正數,但您應該檢閱誤判的結果。 誤判是符合中繼資料但根據文字的資料列,它不應該相符。
在輸入批次測試檔案中使用選擇性欄位
使用下列圖表來瞭解如何尋找選擇性資料的域值。
Column number | 選擇性資料行 | 資料位置 |
---|---|---|
3 | 中繼資料 | 匯出現有 key:value 配對的現有知識庫。 |
4 | top | 建議使用 的預設值 25 。 |
5 | 問答集識別碼 | 匯出識別碼值的現有知識庫。 另請注意,輸出檔中傳回識別碼。 |
將中繼資料新增至知識庫
在 QnA 入口 網站的 [編輯 ] 頁面上,將 的
topic:power
中繼資料新增至下列問題:問題 為您的 Surface Pro 4 收費 檢查電池計量 兩個 QnA 組都有元資料集。
提示
若要查看每個集合的中繼資料和 QnA 識別碼,請匯出知識庫。 選取 [設定 ] 頁面,然後選取 [匯出 為
.xls
檔案]。 尋找此下載的檔案,並使用 Excel 檢閱中繼資料和識別碼開啟。選取 [ 儲存並定型 ],然後選取 [發佈] 頁面,然後選取 [ 發佈] 按鈕。 這些動作可讓批次測試使用變更。 從 [設定 ] 頁面下載知識庫。
下載的檔案具有中繼資料的正確格式,以及正確的問答集識別碼。 在下一節中使用這些欄位
建立第二個批次測試
批次測試有兩個主要案例:
- 處理聊天記錄檔 - 判斷先前看不見問題的最佳答案 - 最常見的情況是,您需要處理查詢的記錄檔,例如聊天機器人的使用者問題。 建立批次檔測試,只包含必要的資料行。 此測試會傳回每個問題的最佳答案。 這並不意味著最上層答案是正確的答案。 完成此測試之後,請移至驗證測試。
- 驗證測試 - 驗證預期的答案。 此測試要求已驗證批次測試中的所有問題和相符預期答案。 這可能需要一些手動程式。
下列程式假設案例是使用 處理聊天記錄
建立新的批次測試檔案,以包含選擇性資料
batch-test-data-2.tsv
。 從原始批次測試輸入檔新增六個數據列,然後為每個資料列新增中繼資料、頂端和 QnA 配對識別碼。若要模擬針對知識庫從聊天記錄中檢查新文字的自動化程式,請將每個資料行的中繼資料設定為相同的值:
topic:power
。再次執行測試,變更輸入和輸出檔案名以指出這是第二個測試。
測試結果和自動化測試系統
此測試輸出檔案可以剖析為自動化連續測試管線的一部分。
此特定測試輸出應讀取為:每個資料列都已使用中繼資料進行篩選,而且因為每個資料列不符合知識庫中的中繼資料,因此傳回之非相符資料列的預設答案(「在 kb 中找不到良好的相符專案」)。 在確實相符的資料列中,會傳回 QnA 識別碼和分數。
所有資料列都會傳回不正確的標籤,因為沒有任何資料列符合預期的回應識別碼。
您應該能夠看到這些結果,您可以取得聊天記錄,並使用文字作為每個資料列的查詢。 在不知道資料的任何資訊的情況下,結果會告訴您許多有關資料的資訊,然後您可以使用往前移動:
- 中繼資料
- QnA 識別碼
- score
使用中繼資料進行篩選是測試的好主意嗎? 可以說是,也可以說不是。 測試系統應該為每個中繼資料組建立測試檔案,以及沒有中繼資料組的測試。
清除資源
如果您不打算繼續測試知識庫,請刪除批次檔和測試檔案。
如果您不打算繼續使用此知識庫,請使用下列步驟刪除知識庫:
- 在 QnA Maker 入口網站中,從頂端功能表中選取 [我的知識庫 ]。
- 在知識庫清單中,選取 本快速入門知識庫列上的 [刪除 ] 圖示。
工具的相關 參考檔包括:
- 工具的命令列範例
- TSV 輸入和輸出檔案的格式