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