在 QnA Maker 中測試您的知識庫

測試 QnA Maker 知識庫是反復程式的重要部分,可改善所傳迴響應的正確性。 您可以透過增強的聊天介面來測試知識庫,也可讓您進行編輯。

注意

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

在 QnA Maker 入口網站中以互動方式測試

  1. 選取 [我的知識庫] 頁面上的名稱 ,以存取您的知識庫。
  2. 若要存取 [測試滑出] 面板,請選取 應用程式頂端面板中的 [測試 ]。
  3. 在文字方塊中輸入查詢,然後選取 Enter。
  4. 回應會傳回來自知識庫的最佳比對答案。

清除測試面板

若要從測試主控台清除所有輸入的測試查詢及其結果,請選取 [測試] 面板左上角的 [開始 ]。

關閉測試面板

若要關閉 [測試] 面板,請再次選取 [ 測試] 按鈕。 當 [測試] 面板開啟時,您無法編輯知識庫內容。

檢查分數

您可以在 [檢查] 面板中檢查測試結果的詳細資料。

  1. 開啟 [測試投影片] 面板後,選取 [ 檢查 ] 以取得該回應的詳細資料。

    Inspect responses

  2. [檢查] 面板隨即出現。 此面板包含最高評分意圖,以及任何已識別的實體。 此面板會顯示所選語句的結果。

更正最高評分答案

如果評分最高的答案不正確,請從清單中選取正確的答案,然後選取 [ 儲存並定型 ]。

Correct the top scoring answer

新增替代問題

您可以將問題的替代形式新增至指定的答案。 在文字方塊中輸入替代答案,然後選取 Enter 以新增答案。 選取 [儲存] 和 [ 定型 ] 以儲存更新。

Add alternate questions

新增答案

如果任何相符的現有答案不正確,或答案不存在於知識庫中,您可以新增答案(KB 中找不到良好的相符專案)。

在答案清單底部,使用文字方塊來輸入新的答案,然後按 Enter 以新增答案。

選取 [ 儲存並定型 ] 以保存此答案。 新的問答組現在已新增至您的知識庫。

注意

當您按下 [儲存] 和 [定型 ] 按鈕時,所有對知識庫的編輯只會儲存。

測試已發佈的知識庫

您可以在測試窗格中測試已發佈版本的 知識庫。 發佈 KB 之後,請選取 [ 已發佈的 KB] 方塊,然後傳送查詢以從已發佈的 KB 取得結果。

Test against a published KB

使用工具進行批次測試

當您想要下列專案時,請使用批次測試控管:

  • 決定一組問題的最佳答案和分數
  • 驗證一組問題的預期答案

必要條件

登入 QnA Maker 入口網站

登入 QnA Maker 入口網站。

從多回合 sample.docx 檔案建立新的知識庫

  1. 從工具列選取 [建立知識庫 ]。

  2. 略過 步驟 1 ,因為您應該已經有 QnA Maker 資源,請移至 步驟 2 以選取現有的資源資訊:

    • Microsoft Entra ID
    • Azure 訂用帳戶名稱
    • Azure QnA 服務名稱
    • 語言 - 英文
  3. 輸入名稱 Multi-turn batch test quickstart 作為知識庫的名稱。

  4. 步驟 4 中,使用下表設定設定:

    設定
    從 URL、.pdf 或 .docx 檔案啟用多回合擷取。 已核取
    預設回應文字 Batch test - default answer not found.
    + 新增檔案 選取必要條件中下載的 .docx 檔案清單。
    閒聊 選取 專業
  5. 步驟 5 中,選取 [ 建立知識庫 ]。

    建立程式完成時,入口網站會顯示可編輯的知識庫。

儲存、定型和發佈知識庫

  1. 從工具列選取 [ 儲存並定型 ],以儲存知識庫。

  2. 從工具列選取 [發佈 ],然後再次選取 [發佈 ] 以發佈知識庫。 發佈可讓知識庫可供來自公用 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:powerkey: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 為 安全性。 針對您自己的批次測試,請確定資料行會顯示您的知識庫識別碼。

Input first version of .tsv file from batch test

測試批次檔

在命令列使用下列 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 檔案:

Output first version of .tsv file from batch test

知識庫識別碼已取代 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 為 安全性。 針對您自己的批次測試,資料行會顯示您的知識庫識別碼。

第四個數據行中信賴分數的測試輸出會顯示前三個問題傳回 100 分,因為每個問題都與出現在知識庫中完全相同。 最後三個問題,以新的措辭的問題,不會傳回100作為信賴分數。 若要增加測試的分數,以及您的使用者,您需要將更多替代問題新增至知識庫。

使用選擇性欄位進行測試

瞭解格式和程式之後,您可以產生測試檔案,從聊天記錄等資料來源對知識庫執行。

因為資料來源和程式是自動化的,因此測試檔案可以多次使用不同的設定來執行,以判斷正確的值。

例如,如果您有聊天記錄,而且您想要判斷哪些聊天記錄文字會套用至哪些元資料欄位,請建立測試檔案,並設定每個資料列的元資料欄位。 執行測試,然後檢閱符合中繼資料的資料列。 一般而言,比對應該是正數,但您應該檢閱誤判的結果。 誤判是符合中繼資料但根據文字的資料列,它不應該相符。

在輸入批次測試檔案中使用選擇性欄位

使用下列圖表來瞭解如何尋找選擇性資料的域值。

Column number 選擇性資料行 資料位置
3 中繼資料 匯出現有 key:value 配對的現有知識庫。
4 top 建議使用 的預設值 25
5 問答集識別碼 匯出識別碼值的現有知識庫。 另請注意,輸出檔中傳回識別碼。

將中繼資料新增至知識庫

  1. 在 QnA 入口 網站的 [編輯 ] 頁面上,將 的 topic:power 中繼資料新增至下列問題:

    問題
    為您的 Surface Pro 4 收費
    檢查電池計量

    兩個 QnA 組都有元資料集。

    提示

    若要查看每個集合的中繼資料和 QnA 識別碼,請匯出知識庫。 選取 [設定 ] 頁面,然後選取 [匯出 .xls 檔案]。 尋找此下載的檔案,並使用 Excel 檢閱中繼資料和識別碼開啟。

  2. 選取 [ 儲存並定型 ],然後選取 [發佈] 頁面,然後選取 [ 發佈] 按鈕。 這些動作可讓批次測試使用變更。 從 [設定 ] 頁面下載知識庫。

    下載的檔案具有中繼資料的正確格式,以及正確的問答集識別碼。 在下一節中使用這些欄位

    Exported knowledge base with metadata

建立第二個批次測試

批次測試有兩個主要案例:

  • 處理聊天記錄檔 - 判斷先前看不見問題的最佳答案 - 最常見的情況是,您需要處理查詢的記錄檔,例如聊天機器人的使用者問題。 建立批次檔測試,只包含必要的資料行。 此測試會傳回每個問題的最佳答案。 這並不意味著最上層答案是正確的答案。 完成此測試之後,請移至驗證測試。
  • 驗證測試 - 驗證預期的答案。 此測試要求已驗證批次測試中的所有問題和相符預期答案。 這可能需要一些手動程式。

下列程式假設案例是使用 處理聊天記錄

  1. 建立新的批次測試檔案,以包含選擇性資料 batch-test-data-2.tsv 。 從原始批次測試輸入檔新增六個數據列,然後為每個資料列新增中繼資料、頂端和 QnA 配對識別碼。

    若要模擬針對知識庫從聊天記錄中檢查新文字的自動化程式,請將每個資料行的中繼資料設定為相同的值: topic:power

    Input second version of .tsv file from batch test

  2. 再次執行測試,變更輸入和輸出檔案名以指出這是第二個測試。

    Output second version of .tsv file from batch test

測試結果和自動化測試系統

此測試輸出檔案可以剖析為自動化連續測試管線的一部分。

此特定測試輸出應讀取為:每個資料列都已使用中繼資料進行篩選,而且因為每個資料列不符合知識庫中的中繼資料,因此傳回之非相符資料列的預設答案(「在 kb 中找不到良好的相符專案」)。 在確實相符的資料列中,會傳回 QnA 識別碼和分數。

所有資料列都會傳回不正確的標籤,因為沒有任何資料列符合預期的回應識別碼。

您應該能夠看到這些結果,您可以取得聊天記錄,並使用文字作為每個資料列的查詢。 在不知道資料的任何資訊的情況下,結果會告訴您許多有關資料的資訊,然後您可以使用往前移動:

  • 中繼資料
  • QnA 識別碼
  • score

使用中繼資料進行篩選是測試的好主意嗎? 可以說是,也可以說不是。 測試系統應該為每個中繼資料組建立測試檔案,以及沒有中繼資料組的測試。

清除資源

如果您不打算繼續測試知識庫,請刪除批次檔和測試檔案。

如果您不打算繼續使用此知識庫,請使用下列步驟刪除知識庫:

  1. 在 QnA Maker 入口網站中,從頂端功能表中選取 [我的知識庫 ]。
  2. 在知識庫清單中,選取 本快速入門知識庫列上的 [刪除 ] 圖示。

工具的相關 參考檔包括:

  • 工具的命令列範例
  • TSV 輸入和輸出檔案的格式

下一步