本指南說明如何使用 Dialogflow CX 控制台的內建評估功能,驗證代理程式的功能,並防止更新後發生任何回歸情形。Dialogflow 提供現成指標,協助您評估代理程式的成效。
除了延遲時間以外,所有指標都需要至少一個測試案例,也就是「黃金回應」,Dialogflow 會比較代理程式的成效與黃金回應,藉此計算代理程式的成效。每個測試案例都可以在「環境」中評估,方便您指定要在代理程式的效能評估中使用不同版本的劇本、流程和工具。
(選用) 建立環境
建立環境是選用步驟。如未建立,預設值為「草稿」。
- 如要建立環境,請按一下左選單中的「環境」,然後選取「+ 建立」。
- 選擇要用來評估服務專員成效的劇本、流程和工具版本。
- 按一下「儲存」即可儲存環境。
建立測試案例
您可以從對話記錄中的現有對話建立測試案例、建立新對話並儲存為測試案例,或是將測試案例匯入 Dialogflow。
在控制台中建立測試案例
- 前往左選單中的「對話記錄」。
- 如要建立新對話,請啟用代理程式 (例如撥打代理程式的電話號碼),在對話記錄中建立對話。選取要當做測試案例的對話。
- 查看對話並驗證代理的回覆、叫用的工具,以及每則回覆的語氣。確認沒問題後,按一下視窗右上角的「建立測試案例」。
- 提供測試案例的顯示名稱,並指定您對對話層級事件的期望。這包括您預期在對話中呼叫的工具、劇本和流程。按一下「+ 新增期望」即可新增更多期望。如要依列出的順序 (由上而下) 評估期望值,請切換「依序驗證」。
- 按一下「儲存」即可儲存測試案例。
上傳測試案例
- 測試案例必須採用下列 CSV 格式。
- 如要將測試案例上傳至系統,請按一下測試案例選單頂端的「匯入」。
- 在彈出式選單中,選取本機儲存的檔案,或輸入檔案的 Cloud Storage 值區路徑。
- 測試案例現在應該會顯示在測試案例選單中。
執行測試案例
- 按一下左側選單中的「測試案例」,然後選取要用來比較代理程式的測試案例。可以是單一或多個測試案例。
- 按一下「執行選取的測試案例」。
測試結果
- 存取結果:完成後,每個測試案例的最新測試執行結果會顯示在「測試案例」檢視畫面中:
- 語意相似度:衡量代理程式的對話與「黃金回應」(測試案例中的回應) 的相似程度。如要取得這項指標,必須提供黃金回覆。值可以是 0 (不一致)、0.5 (有些一致) 或 1 (非常一致)。
- 工具呼叫準確度:這個值反映對話中是否忠實地包含預期在對話期間呼叫的工具。值的範圍為 0 到 1。如果對話中未使用任何工具,準確度會顯示為
--
(不適用)。 - 延遲時間:代理程式處理使用者要求並回應使用者所花費的總時間 (使用者語音結束與代理程式開始回應之間的時間差)。單位為秒。
- 更新黃金測試案例:如果最新一次的執行結果反映了因代理程式更新而產生的預期變更,您可以點選「儲存為黃金測試案例」,覆寫原始測試案例。
- 篩選及排序結果:您可以依據任何生成的指標或特定環境,篩選及排序評估結果。這項功能有助於追蹤每次更新後的成效變化。
批次匯入測試案例的格式
本節說明如何格式化 CSV 檔案,以便匯入代理程式的批次測試案例。系統會讀取這個檔案,建立一組結構化的測試案例,每個案例都包含一或多個對話回合。
單一測試案例可能會跨越多個 CSV 檔案列。測試案例的第一列會定義整體屬性 (例如名稱和語言)。該測試案例的後續每一列,都會定義對話中的單一來回回合 (使用者說了什麼,代理程式預期會回覆)。
標頭
CSV 檔案的第一行必須是標頭列。這個標頭會定義每個資料欄中的資料。
必要標頭
這兩個必要標題的順序必須如上所示。新測試案例的第一列必須同時包含這兩項資訊。您可以提供新的 DisplayName
和 LanguageCode
值,開始新的測試案例。
DisplayName
:測試案例的名稱。只有新測試案例的第一列會填入這項資料。LanguageCode
:測試的語言代碼 (例如en
、en-US
、es
)。
選用標頭
您可以加入下列任何選用標頭,為測試案例提供更多詳細資料。在最開始的兩個必要資料欄之後,這些資料欄可以按任意順序排列。
測試案例中繼資料
- 標記:以空格分隔的標記,用於整理測試 (例如「payments onboarding」)。
- 附註:任意文字附註或測試案例目的說明。
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}
。
- 規則: