應對手冊評估

本指南說明如何使用 Dialogflow CX 控制台內建的評估功能,驗證代理的功能,並防止更新後發生任何迴歸。Dialogflow CX 提供現成指標,協助您評估代理的成效。

除了延遲時間以外,所有指標都至少需要一個測試案例,也就是「黃金回覆」,Dialogflow CX 會將代理的效能與黃金回覆進行比較,藉此計算效能。每個測試案例都可以在環境中評估,您可以指定不同版本的 Playbook、流程和工具,用於評估代理的效能。

(選用) 建立環境

您可以選擇是否要建立環境。如未建立,預設值為「Draft」。

  1. 如要建立環境,請按一下左側選單中的「Environments」(環境),然後選取「+ Create」(建立)。
  2. 選擇要用來評估代理成效的 playbook、流程和工具版本。
  3. 按一下「儲存」來儲存環境。

建立測試案例

您可以選擇從對話記錄中的現有對話建立測試案例、建立新對話並儲存為測試案例,或將測試案例匯入 Dialogflow CX。

在控制台中建立測試案例

  1. 前往左側選單中的「對話記錄」。
  2. 如要建立新的對話,請啟用代理 (例如撥打代理的電話號碼),在對話記錄中建立對話。選取要用做測試案例的對話。
  3. 查看對話,確認代理的回覆、叫用的工具,以及每則回覆的語音效果。確認無誤後,按一下視窗右上角的「Create test case」(建立測試案例)。
  4. 提供測試案例的顯示名稱,並指定您對對話層級應發生事件的預期。這可能包括您預期在對話中呼叫的工具、playbook 和流程。按一下「+Add expectation」,即可新增更多預期。如要按照列出的順序 (由上至下) 評估預期,請切換「Sequential validation」(依序驗證)。
  5. 按一下「Save」(儲存) 儲存測試案例。

上傳測試案例

  1. 測試案例必須採用以下 CSV 格式。
  2. 如要將測試案例上傳至系統,請按一下測試案例選單頂端的「Import」(匯入)。
  3. 在彈出的選單中,選取儲存在本機的檔案,或輸入 Cloud Storage bucket 的路徑。
  4. 測試案例現在應該會顯示在測試案例選單中。

執行測試案例

  1. 按一下左側選單中的「Test cases」(測試案例),然後選取要與代理進行比較的測試案例。可以是一或多個測試案例。
  2. 按一下「Run selected test cases」。

測試結果

  1. 存取結果:測試完成後,Test Case 檢視畫面會顯示每個測試案例的最新測試執行結果:
    1. 語意相似度:評估代理的對話與「黃金回覆」(測試案例中的回覆) 的相似程度。必須提供黃金回覆,才能取得這項指標。值可以是 0 (不一致)、0.5 (大致一致) 或 1 (非常一致)。
    2. 工具呼叫準確率:這個值反映對話中是否忠實包含預期叫用的工具。值介於 0 到 1 之間。如果對話中未使用任何工具,準確度會顯示為 -- (不適用)。
    3. 延遲時間:代理處理使用者要求並回覆使用者所需的總時間 (使用者語句結束與代理回覆開始之間的時間差)。單位為秒。
  2. 更新黃金測試案例:如果最新執行結果反映了因代理更新而產生的預期變更,您可以點選「儲存為黃金測試案例」,覆寫原始測試案例。
  3. 篩選及排序結果:您可以依據任何產生的指標或特定環境,篩選及排序評估結果。這有助於追蹤每次更新後的效能變化。

批次匯入測試案例格式

本節說明如何設定 CSV 檔案格式,以便為代理匯入批次測試案例。系統會讀取這個檔案,建立一組結構化測試案例,每個案例包含一或多個對話輪。

單一測試案例可以跨越多個 CSV 檔案資料列。測試案例的第一列會定義整體屬性 (例如名稱和語言)。該測試案例的後續每一列,都會定義對話中的單一來回互動 (使用者說話,代理應回覆)。

CSV 檔案的第一行必須是標頭列。這個標頭會定義各欄中的資料。

必要標頭

兩個必要標頭必須按照所示順序排列。新測試案例的第一列必須包含這兩項。您可以提供新的 DisplayName 和 LanguageCode 值,開始新的測試案例。

  • DisplayName:測試案例的名稱。只有新測試案例的第一列會填入這項資訊。
  • LanguageCode:測試的語言代碼 (例如 en、en-US、es)。

選用標頭

您可以加入下列任一選用標頭,為測試案例提供更多詳細資料。在最初兩個必要欄之後,這些欄可以任意順序排列。

測試案例中繼資料

  • 標記:以空格分隔的標記,用於整理測試 (例如「付款新手上路」)。
  • 附註:測試案例用途的自由格式文字附註或說明。
  • TestCaseConfigV2.StartResource:指定要開始測試的流程或預戰手冊。

使用者輸入內容

  • UserInput.Input.Text:使用者在特定回合「輸入」的文字。
  • UserInput.InjectedParameters:在對話開始時插入的參數,格式為 JSON 字串。

代理輸出

  • AgentOutput.QueryResult.ResponseMessages.Text:你認為服務專員回覆的確切文字。
  • AgentOutput.QueryResult.Parameters:您斷言由代理擷取的參數,格式為 JSON 字串。

預期使用情形

  • OrderedExpectations.ExpectedFlow:預期在該輪對話後啟用的流程。
  • OrderedExpectations.ExpectedIntent:您預期該回合會比對出的意圖。
  • OrderedExpectations.ExpectedAgentReply:您預期代理回覆的文字。可以是完整回覆的子字串。
  • OrderedExpectations.ExpectedOutputParameter:您預期在回合結束時設定的參數,格式為 JSON 字串。

音訊中繼資料

  • AudioTurnMetadata 音訊測試的中繼資料,格式為 JSON 字串。

建立測試案例

測試案例會依資料列整理。

  1. 如要開始新的測試案例,請填寫中繼資料列。
    • 規則:這一列的「DisplayName」欄必須有值。
    • 動作:輸入 DisplayName 和 LanguageCode 的值。您也可以在這一列新增標記、附註或TestCaseConfigV2.StartResource。這一列的對話輪次資料欄 (例如 UserInput.Input.Text) 應留空。如要使用標記,請以空格分隔每個標記。例如:tag1 tag2 tag3。如果使用 TestCaseConfigV2.StartResource,請在資源名稱前加上 start_flow: 或 start_playbook:。例如:start_flow:projects/p/locations/l/agents/a/flows/f。
  2. 在剛才建立的測試案例下方新增一列,即可加入對話回合。
    • 規則:DisplayName 欄必須留空。這會告知剖析器,該回合屬於前一個測試案例。
    • 動作:填寫說明使用者動作的資料欄,以及這個回合預期的代理回覆,例如 UserInput.Input.Text 和 OrderedExpectations.ExpectedAgentReply。如果資料欄需要 JSON,您必須以字串形式提供有效的 JSON 物件。例如:{"param_name": "param_value", "number_param": 123}。