평가 프레임워크를 사용하여 주문 에이전트 평가

이 가이드에서는 음식 주문 AI 에이전트의 평가 프레임워크를 사용하여 AI 음식 주문 에이전트를 테스트, 검증, 벤치마킹하는 방법을 설명합니다.

자동화된 평가를 사용하면 주문 에이전트가 주문을 정확하게 받고, 복잡한 수정자 선택을 처리하고, 메뉴 규칙을 올바르게 적용하고, 에이전트 동작을 검증하는지 확인할 수 있습니다.

평가 프레임워크 개요

평가 프레임워크는 음식 주문 대화에 자동화된 시뮬레이션 및 검증을 제공합니다. 모든 메뉴 항목과 대화형 엣지 케이스를 수동으로 테스트하는 대신 에이전트에 대해 시뮬레이션된 고객 세션을 실행하고 결과 장바구니 상태와 대화를 검증하는 테스트 모음을 정의할 수 있습니다.

평가 실행 중에 프레임워크는 두 가지 유형의 테스트 사례 중 하나를 사용하여 대화의 고객 측을 시뮬레이션합니다.

  • 미리 정의된 대화 턴: 결정적 회귀 테스트를 위한 스크립트된 고객 텍스트 입력 시퀀스를 제공합니다. 이 모드를 사용하여 정확한 고객 문구가 예상되는 에이전트 응답을 생성하는지 확인하거나 프로덕션에서 실제 고객 세션 및 에스컬레이션을 재현합니다.
  • 동적 명령어 기반 세션 시뮬레이션: 상위 수준의 자연어 주문 명령어 (예: 특정 항목 주문, 대체 요청, 알레르기 유발 물질 문의)를 제공합니다. LLM 고객 시뮬레이터는 대화를 동적으로 역할극하여 에이전트가 실제 대화, 질문 명확히 하기, 주문 중 마음 바꾸기, 다양한 고객 문구를 처리하는 방법을 테스트합니다.

평가 리소스 모델

평가 프레임워크는 다음 네 가지 기본 리소스를 중심으로 구성됩니다.

  • EvaluationDataset: 핵심 메뉴 회귀 모음 또는 아침 콤보 테스트와 같은 테스트 모음을 나타내는 평가 케이스의 명명된 모음입니다.
  • EvaluationCase: 평가 컨텍스트 및 일치자 집합에 대해 주문 상호작용을 평가하는 개별 테스트 시나리오입니다 (미리 정의된 턴 또는 동적 명령어 사용).
  • EvaluationContext: 대상 매장 위치, 활성 메뉴, 시간대, 시뮬레이션된 세션 시작 시간을 비롯한 테스트 사례 또는 데이터 세트의 실행 환경입니다.
  • EvaluationMatcher: 주문 세션이 끝날 때 평가되는 어설션 규칙으로, 특정 장바구니 상태, 발화 텍스트 또는 의미론적 기준을 확인합니다.

평가 일치자

EvaluationMatcher는 테스트 사례가 통과하려면 에이전트가 충족해야 하는 조건을 정의합니다. 평가 케이스는 여러 일치자를 참조할 수 있으며 각 일치자는 불리언 통과 또는 실패 결과를 생성합니다.

  • 주문 결과 일치자: 고객의 최종 장바구니를 예상되는 Order와 비교합니다. 일치자는 정규화 후 모든 항목, 수정자 그룹, 중첩된 수정자, 항목 수량이 일치하는지 확인합니다.
  • 에이전트 발화 문자열 일치자: 에이전트의 응답에 특정 하위 문자열이 포함되어 있는지 또는 정규 표현식과 일치하는지 확인합니다. 일치 조건을 반전하여 에이전트가 금지된 문구를 말하지 않는지 확인할 수 있습니다.
  • LLM 판단 일치자: LLM 평가자를 사용하여 정확한 문자열 일치로 검증할 수 없는 자연어 기준을 평가합니다. 예를 들어 '에이전트가 주문을 완료하기 전에 고객이 치즈를 원하는지 확인했습니다.' 또는 '에이전트가 아침 식사 중에는 밀크셰이크를 이용할 수 없다고 고객에게 정중하게 알렸습니다.'라고 어설션할 수 있습니다.

평가 컨텍스트

EvaluationContext는 평가 세션이 실행되는 레스토랑 환경을 구성합니다.

  • 매장: 대상 매장의 리소스 이름 (projects/{project}/locations/{location}/brands/{brand}/stores/{store}). 매장은 활성 메뉴, 가격 책정, 시간대, 에이전트 맞춤설정 재정의를 결정합니다.
  • 메뉴: 프로덕션에서 매장과 연결하기 전에 후보 메뉴를 테스트하는 선택적 메뉴 리소스 이름입니다.
  • 시간대 ID: 특정 식사 시간 동안 메뉴 항목 재고 및 가격 책정 규칙을 확인하는 선택적 시간대 ID (예: breakfast 또는 dinner)입니다.
  • 테스트 세션 시작 시간: 특정 시간대 또는 요일에 주문한 주문을 시뮬레이션하는 선택적 ISO 타임스탬프입니다.

음식 주문 AI 에이전트 콘솔에서 평가

음식 주문 AI 에이전트 콘솔은 평가 데이터 세트 관리, 테스트 실행, 결과 분석을 위한 대화형 인터페이스를 제공합니다.

1. 평가 컨텍스트 만들기

  1. 음식 주문 AI 에이전트 콘솔에서 프로젝트와 브랜드를 선택합니다.
  2. 탐색 메뉴에서 평가 를 클릭합니다.
  3. 컨텍스트 탭을 클릭합니다.
  4. 새 컨텍스트 를 클릭합니다.
  5. 표시 이름을 입력하고 대상 매장 을 선택합니다.
  6. 선택사항: 특정 메뉴 또는 시간대 재정의를 선택합니다.
  7. 만들기 를 클릭합니다.

2. 평가 일치자 만들기

  1. 평가 페이지에서 일치자 탭을 클릭합니다.
  2. 새 일치자 를 클릭합니다.
  3. 표시 이름을 입력하고 일치자 유형을 선택합니다.
    • 주문 결과: 항목, 수정자, 수량을 선택하여 예상 주문을 구성합니다.
    • 에이전트 발화: 필요한 하위 문자열 또는 정규 표현식 패턴을 입력합니다.
    • LLM 판단: LLM 평가자의 자연어 기준을 입력합니다.
  4. 만들기 를 클릭합니다.

3. 데이터 세트 만들기 및 테스트 사례 가져오기

콘솔에서 테스트 사례는 자체적으로 존재하거나 데이터 세트로 구성될 수 있습니다. 콘솔에서 직접 데이터 세트를 만들 수 있지만 테스트 사례는 YAML 파일에서 가져오거나 프로덕션 세션에서 변환해야 합니다.

데이터 세트 만들기

  1. 음식 주문 AI 에이전트 콘솔에서 평가 > 데이터 세트 및 케이스 로 이동합니다.
  2. 데이터 세트 창에서 새 데이터 세트 를 클릭합니다.
  3. 표시 이름 (예: Combo Meals Regression)과 선택적 설명을 입력합니다.
  4. 만들기 를 클릭합니다.

데이터 세트 창에서 가져오기 를 클릭하여 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. 업로드를 확인합니다. 가져온 케이스가 케이스 목록에 표시됩니다.

데이터 세트 또는 케이스 창에서 내보내기 를 클릭하여 기존 정의를 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 평가자 설명을 비롯하여 통과하거나 실패한 일치자를 검토합니다.

다음 단계