使用評估架構評估訂購代理

本指南說明如何使用 Food Ordering AI Agent 的評估架構,測試、驗證及評估 AI 訂餐代理。

自動評估功能可驗證訂購代理是否能準確接單、處理複雜的加購選項、正確套用菜單規則,以及驗證代理行為。

評估架構總覽

評估架構會自動模擬及驗證訂餐對話,您不必手動測試每個選單項目和對話邊界條件,只要定義測試套件,就能針對代理執行模擬的顧客工作階段,並驗證產生的購物車狀態和對話。

在評估執行期間,架構會使用下列兩種測試案例之一,模擬顧客端的對話:

  • 預先定義的對話輪次:提供預先編寫的顧客文字輸入序列,用於確定性迴歸測試。使用這個模式驗證確切的顧客用語是否會產生預期的服務專員回覆,或重現正式環境中的實際顧客工作階段和升級。
  • 動態指令式會話模擬:提供高階自然語言訂購指令 (例如訂購特定商品、要求更換商品或詢問過敏原)。LLM 顧客模擬器會動態模擬對話,測試代理如何處理實際對話、釐清問題、中途改變主意,以及各種顧客用語。

評估資源模型

評估架構主要由四項資源組成:

  • EvaluationDataset:評估案例的命名集合,代表測試套件,例如核心選單迴歸測試套件或早餐套餐測試。
  • EvaluationCase:個別測試情境,根據評估環境和一組比對器,評估排序互動 (使用預先定義的回合或動態指令)。
  • EvaluationContext:測試案例或資料集的執行環境,包括目標商店地點、有效選單、時段和模擬工作階段開始時間。
  • EvaluationMatcher:在點餐工作階段結束時評估的斷言規則,用於檢查特定購物車狀態、語句文字或語意條件。

評估比對器

EvaluationMatcher 定義代理必須滿足的條件,測試案例才能通過。評估案例可以參照多個比對器,每個比對器都會產生布林值 (通過或失敗) 結果:

  • 訂單結果比對器:將顧客最終的購物車內容與預期的 Order 進行比較。比對器會驗證所有項目、修改器群組、巢狀修改器和項目數量在正規化後是否相符。
  • 代理語句字串比對器:檢查代理的回覆是否包含特定子字串,或符合規則運算式。您可以反轉比對條件,確認代理商不會說出禁止用語。
  • LLM 判斷比對器:使用 LLM 判斷器評估無法透過完全字串比對驗證的自然語言條件。例如,您可以斷言:「服務專員在完成訂單前,確認顧客是否要加起司」或「服務專員禮貌地告知顧客,早餐時段不供應奶昔」。

評估情境

EvaluationContext 會設定評估工作階段執行的餐廳環境:

  • Store:目標商店的資源名稱 (projects/{project}/locations/{location}/brands/{brand}/stores/{store})。商店會決定有效的選單、定價、時區和代理自訂覆寫。
  • Menu:選用的菜單資源名稱,用於測試候選菜單,再與正式版商店建立關聯。
  • Daypart ID:選填的時段 ID (例如 breakfast 或 dinner),用於驗證特定用餐時段的菜單品項供應情形和定價規則。
  • 測試工作階段開始時間:選用的 ISO 時間戳記,可模擬在特定時段或星期幾下單。

在訂餐 AI 代理控制台中評估

訂餐 AI 代理控制台提供互動式介面,可用於管理評估資料集、執行測試及分析結果。

1. 建立評估情境

  1. 在訂餐 AI 代理控制台中,選取專案和品牌。
  2. 在導覽選單中,按一下「Evaluation」(評估)。
  3. 按一下「Contexts」分頁標籤。
  4. 按一下「New context」(新增情境)。
  5. 輸入顯示名稱,然後選取目標「商店」。
  6. 選用:選取特定「菜單」或「時段」覆寫。
  7. 點選「建立」。

2. 建立評估比對器

  1. 在「Evaluation」(評估) 頁面中,按一下「Matchers」(比對器) 分頁標籤。
  2. 按一下「New matcher」(新增比對器)。
  3. 輸入顯示名稱,並選擇比對器類型:
    • 訂單結果:選取品項、修飾符和數量,建構預期訂單。
    • 代理語句:輸入必要的子字串或規則運算式模式。
    • LLM 判斷:輸入 LLM 評審的自然語言條件。
  4. 點選「建立」。

3. 建立資料集並匯入測試案例

在控制台中,測試案例可以單獨存在,也可以整理成資料集。您可以在控制台中直接建立資料集,但測試案例必須從 YAML 檔案匯入,或是從正式版工作階段轉換而來。

建立資料集

  1. 在訂餐 AI 代理控制台中,依序前往 Evaluation > Datasets & cases。
  2. 在「Datasets」(資料集) 窗格中,按一下「New dataset」(新增資料集)。
  3. 輸入顯示名稱 (例如 Combo Meals Regression),並視需要填寫說明。
  4. 點選「建立」。

您也可以在「Datasets」(資料集) 窗格中點選「Import」(匯入),從 YAML 檔案匯入資料集。

以下 YAML 檔案範例定義了內含評估案例的評估資料集:

- name: projects/PROJECT_ID/locations/LOCATION/brands/BRAND_ID/evaluationDatasets/DATASET_ID
  displayName: Core Combo Regression
  description: Core combo ordering and modifier selection regression suite
  evaluationContext: projects/PROJECT_ID/locations/LOCATION/brands/BRAND_ID/evaluationContexts/CONTEXT_ID
  evaluationCases:
    - name: projects/PROJECT_ID/locations/LOCATION/brands/BRAND_ID/evaluationCases/CASE_ID_1
      displayName: double_cheeseburger_combo
      description: Tests combo meal ordering with side and drink modifier selections
      evaluationContext: projects/PROJECT_ID/locations/LOCATION/brands/BRAND_ID/evaluationContexts/CONTEXT_ID
      evaluationMatchers:
        - projects/PROJECT_ID/locations/LOCATION/brands/BRAND_ID/evaluationMatchers/ORDER_MATCHER_ID
      staticTextTurnCase:
        textTurns:
          - userTextInput: "I'd like a double cheeseburger combo."
            exampleAgentResponse: "What drink and side would you like with your combo?"
          - userTextInput: "Onion rings and a large diet cola, please."
            exampleAgentResponse: "Got it, a double cheeseburger combo with onion rings and a large diet cola. Anything else?"
          - userTextInput: "No, that's everything."
            exampleAgentResponse: ''

匯入評估案例

  1. 在「案件」窗格中,按一下「匯入」。
  2. 選取定義評估案例的 YAML 檔案。
  3. 確認上傳。匯入的案件會顯示在「案件」清單中。

您也可以在「Datasets」(資料集) 或「Cases」(案例) 窗格中點選「Export」(匯出),將現有定義下載為 YAML 檔案。

下列 YAML 檔案範例定義了評估案例,其中包含預先定義的對話輪次、評估情境和比對器:

- name: projects/PROJECT_ID/locations/LOCATION/brands/BRAND_ID/evaluationCases/CASE_ID_1
  displayName: Double Cheeseburger Combo
  description: Tests combo meal ordering with side and drink modifier selections
  evaluationContext: projects/PROJECT_ID/locations/LOCATION/brands/BRAND_ID/evaluationContexts/CONTEXT_ID
  evaluationMatchers:
    - projects/PROJECT_ID/locations/LOCATION/brands/BRAND_ID/evaluationMatchers/ORDER_MATCHER_ID
    - projects/PROJECT_ID/locations/LOCATION/brands/BRAND_ID/evaluationMatchers/UTTERANCE_MATCHER_ID
  staticTextTurnCase:
    textTurns:
      - userTextInput: "I'd like a double cheeseburger combo."
        exampleAgentResponse: "What drink and side would you like with your combo?"
      - userTextInput: "Onion rings and a large diet cola, please."
        exampleAgentResponse: "Got it, a double cheeseburger combo with onion rings and a large diet cola. Anything else?"
      - userTextInput: "No, that's everything."

- name: projects/PROJECT_ID/locations/LOCATION/brands/BRAND_ID/evaluationCases/CASE_ID_2
  displayName: Breakfast Allergen Inquiry
  description: Tests agent handling of customer allergy questions during breakfast
  evaluationContext: projects/PROJECT_ID/locations/LOCATION/brands/BRAND_ID/evaluationContexts/CONTEXT_ID
  evaluationMatchers:
    - projects/PROJECT_ID/locations/LOCATION/brands/BRAND_ID/evaluationMatchers/LLM_JUDGEMENT_MATCHER_ID
  staticTextTurnCase:
    textTurns:
      - userTextInput: "Are your pancakes prepared with peanut oil?"
      - userTextInput: "Okay, I'll take the oatmeal instead."

將案件整理成資料集

評估案例可以獨立存在,不屬於任何資料集。如要將案例整理成資料集,請按照下列步驟操作:

  1. 在「案例」窗格中,使用核取方塊選取一或多個測試案例。
  2. 將所選案件拖曳至「資料集」窗格中的目標資料集。
  3. 在「資料集」窗格中點選資料集,展開並查看指派給該資料集的案件。

4. 從「訂單記錄」轉換顧客工作階段

如要重現客戶回報的問題,或直接根據實際正式環境流量建構測試套件,請按照下列步驟操作:

  1. 在導覽選單中,按一下「訂單記錄」。
  2. 按一下要測試的訂購工作階段所屬資料列。
  3. 在「訂單詳細資料」面板中,按一下「轉換為評估案件」。
  4. 選取或建立評估情境和比對器。
  5. 按一下「轉換」。系統會自動將顧客的逐輪對話轉換為評估案件。

5. 執行評估並檢查結果

您可以執行整個資料集,或執行個別選取的案件:

  • 執行資料集:在「資料集」窗格中,按一下目標資料集旁的「執行資料集」。
  • 執行個別案例:在「案例」窗格中,使用核取方塊選取一或多個案例,然後在選取動作列中按一下「執行」。

如要監控執行作業並檢查詳細結果,請按照下列步驟操作:

  1. 按一下「記錄」分頁標籤,即可追蹤執行進度、整體通過率和執行時間長度。
  2. 按一下記錄表格中的任何執行作業,即可查看詳細的測試案例結果:
    • 摘要:查看整體通過或失敗百分比,以及通過的測試案例總數。
    • 輪次轉錄稿:檢查模擬顧客與服務專員之間的輪次對話。
    • 比對器詳細資料:查看哪些比對器通過或失敗,包括 LLM 評判對失敗質性條件的說明。

後續步驟