本指南說明如何使用 Dialogflow CX 控制台內建的評估功能,驗證代理的功能,並防止更新後發生任何迴歸。Dialogflow CX 提供現成指標,協助您評估代理的成效。
除了延遲時間以外,所有指標都至少需要一個測試案例,也就是「黃金回覆」,Dialogflow CX 會將代理的效能與黃金回覆進行比較,藉此計算效能。每個測試案例都可以在環境中評估,您可以指定不同版本的 Playbook、流程和工具,用於評估代理的效能。
(選用) 建立環境
您可以選擇是否要建立環境。如未建立,預設值為「Draft」。
- 如要建立環境,請按一下左側選單中的「Environments」(環境),然後選取「+ Create」(建立)。
- 選擇要用來評估代理成效的 playbook、流程和工具版本。
- 按一下「儲存」來儲存環境。
建立測試案例
您可以選擇從對話記錄中的現有對話建立測試案例、建立新對話並儲存為測試案例,或將測試案例匯入 Dialogflow CX。
在控制台中建立測試案例
- 前往左側選單中的「對話記錄」。
- 如要建立新的對話,請啟用代理 (例如撥打代理的電話號碼),在對話記錄中建立對話。選取要用做測試案例的對話。
- 查看對話,確認代理的回覆、叫用的工具,以及每則回覆的語音效果。確認無誤後,按一下視窗右上角的「Create test case」(建立測試案例)。
- 提供測試案例的顯示名稱,並指定您對對話層級應發生事件的預期。這可能包括您預期在對話中呼叫的工具、playbook 和流程。按一下「+Add expectation」,即可新增更多預期。如要按照列出的順序 (由上至下) 評估預期,請切換「Sequential validation」(依序驗證)。
- 按一下「Save」(儲存) 儲存測試案例。
上傳測試案例
- 測試案例必須採用以下 CSV 格式。
- 如要將測試案例上傳至系統,請按一下測試案例選單頂端的「Import」(匯入)。
- 在彈出的選單中,選取儲存在本機的檔案,或輸入 Cloud Storage bucket 的路徑。
- 測試案例現在應該會顯示在測試案例選單中。
執行測試案例
- 按一下左側選單中的「Test cases」(測試案例),然後選取要與代理進行比較的測試案例。可以是一或多個測試案例。
- 按一下「Run selected test cases」。
測試結果
- 存取結果:測試完成後,Test Case 檢視畫面會顯示每個測試案例的最新測試執行結果:
- 語意相似度:評估代理的對話與「黃金回覆」(測試案例中的回覆) 的相似程度。必須提供黃金回覆,才能取得這項指標。值可以是 0 (不一致)、0.5 (大致一致) 或 1 (非常一致)。
- 工具呼叫準確率:這個值反映對話中是否忠實包含預期叫用的工具。值介於 0 到 1 之間。如果對話中未使用任何工具,準確度會顯示為
--(不適用)。 - 延遲時間:代理處理使用者要求並回覆使用者所需的總時間 (使用者語句結束與代理回覆開始之間的時間差)。單位為秒。
- 更新黃金測試案例:如果最新執行結果反映了因代理更新而產生的預期變更,您可以點選「儲存為黃金測試案例」,覆寫原始測試案例。
- 篩選及排序結果:您可以依據任何產生的指標或特定環境,篩選及排序評估結果。這有助於追蹤每次更新後的效能變化。
批次匯入測試案例格式
本節說明如何設定 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 字串。
建立測試案例
測試案例會依資料列整理。
- 如要開始新的測試案例,請填寫中繼資料列。
- 規則:這一列的「
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。
- 規則:這一列的「
- 在剛才建立的測試案例下方新增一列,即可加入對話回合。
- 規則:
DisplayName欄必須留空。這會告知剖析器,該回合屬於前一個測試案例。 - 動作:填寫說明使用者動作的資料欄,以及這個回合預期的代理回覆,例如
UserInput.Input.Text和OrderedExpectations.ExpectedAgentReply。如果資料欄需要 JSON,您必須以字串形式提供有效的 JSON 物件。例如:{"param_name": "param_value", "number_param": 123}。
- 規則: