應對手冊評估

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

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

(選用) 建立環境

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

  1. 前往「環境」,然後點選「建立」。
  2. 選擇要用來評估代理效能的教戰手冊、流程和工具版本。
  3. 按一下「Save」(儲存) 儲存環境。

建立測試案例

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

在控制台中建立測試案例

  1. 前往導覽選單中的「對話記錄」。
  2. 如要建立新對話,請啟用代理,例如撥打代理的電話號碼。選取要用做測試案例的對話。
  3. 查看對話,確認代理的回覆、叫用的工具,以及每則回覆的語音效果。確認無誤後,選取「建立測試案例」。
  4. 提供測試案例的顯示名稱,並指定您預期在對話層級發生的事件。這類資源包括您預期在對話中呼叫的工具、playbook 和流程。選取「+ 新增預期」,即可新增更多預期。如要由上至下依序評估預期,請切換「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. 更新黃金測試案例:如果最新執行結果反映了因代理更新而產生的預期變更,請選取「Save as golden」(儲存為黃金測試案例),覆寫原始測試案例。
  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 字串。

Ordered expectations:

  • 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})。