플레이북 평가

이 가이드에서는 Dialogflow CX 콘솔의 기본 제공 평가 기능을 사용하여 에이전트의 기능을 확인하고 업데이트 후 회귀를 방지하는 방법을 설명합니다. Dialogflow는 에이전트의 성능을 평가하는 데 도움이 되는 기본 제공 측정항목을 제공합니다.

지연 시간을 제외한 모든 측정항목에는 Dialogflow가 에이전트의 성능을 비교하여 성능을 계산하는 '골든 응답'인 테스트 사례가 하나 이상 필요합니다. 각 테스트 사례는 환경의 컨텍스트에서 측정할 수 있으므로 에이전트의 성능 평가에 사용할 플레이북, 흐름, 도구의 다양한 버전을 지정할 수 있습니다.

(선택사항) 환경 만들기

환경을 만드는 것은 선택사항입니다. 만들지 않으면 기본값은 초안입니다.

  1. 환경을 만들려면 왼쪽 메뉴에서 환경을 클릭하고 + 만들기를 선택합니다.
  2. 상담사의 실적을 측정하는 데 사용할 플레이북, 흐름, 도구의 버전을 선택합니다.
  3. 저장을 클릭하여 환경을 저장합니다.

테스트 사례 만들기

대화 기록의 기존 대화에서 테스트 사례를 만들거나, 테스트 사례로 저장할 새 대화를 만들거나, 테스트 사례를 Dialogflow로 가져올 수 있습니다.

콘솔에서 테스트 사례 만들기

  1. 왼쪽 메뉴에서 대화 기록으로 이동합니다.
  2. 새 대화를 만들려면 에이전트를 활성화하여 (예: 에이전트의 전화번호를 호출) 대화 기록에 대화를 만듭니다. 테스트 사례로 사용할 대화가 있으면 선택합니다.
  3. 대화를 확인하고 에이전트 응답, 호출된 도구, 각 응답의 어조를 확인합니다. 만족스러우면 창의 오른쪽 상단에 있는 테스트 사례 만들기를 클릭합니다.
  4. 테스트 사례의 표시 이름을 제공하고 대화 수준에서 발생해야 하는 이벤트에 대한 기대치를 지정합니다. 여기에는 대화 내에서 호출될 것으로 예상되는 도구, 플레이북, 흐름이 포함될 수 있습니다. +기대치 추가를 클릭하여 기대치를 추가합니다. 기대를 나열된 순서 (위에서 아래로)대로 평가하려면 순차적 유효성 검사를 전환합니다.
  5. 저장을 클릭하여 테스트 사례를 저장합니다.

테스트 사례 업로드

  1. 테스트 사례는 다음 CSV 형식이어야 합니다.
  2. 테스트 사례를 시스템에 업로드하려면 텍스트 사례 메뉴 상단에서 가져오기를 클릭합니다.
  3. 팝업 메뉴에서 로컬에 저장된 파일을 선택하거나 Cloud Storage 버킷의 경로를 입력합니다.
  4. 이제 테스트 사례가 테스트 사례 메뉴에 표시됩니다.

테스트 사례 실행

  1. 왼쪽 메뉴에서 테스트 사례를 클릭하고 에이전트와 비교할 테스트 사례를 선택합니다. 단일 테스트 사례 또는 여러 테스트 사례일 수 있습니다.
  2. 선택한 테스트 사례 실행을 클릭합니다.

테스트 결과

  1. 결과 액세스: 완료 후 테스트 사례 뷰의 각 테스트 사례에 대해 최신 테스트 실행 실행 결과가 표시됩니다.
    1. 의미 유사성: 에이전트의 대화가 '골든 응답' (테스트 사례의 응답)과 얼마나 유사한지 측정합니다. 이 측정항목을 받으려면 골든 응답이 필요합니다. 값은 0(일관성 없음), 0.5 (약간 일관성 있음), 1 (매우 일관성 있음) 중 하나일 수 있습니다.
    2. 도구 호출 정확도: 대화에 대화 중에 호출될 것으로 예상되는 도구가 얼마나 충실하게 포함되어 있는지를 반영하는 값입니다. 값의 범위는 0~1입니다. 대화에서 도구를 사용하지 않으면 정확도가 -- (해당 사항 없음)로 표시됩니다.
    3. 지연 시간: 에이전트가 최종 사용자 요청을 처리하고 사용자에게 응답하는 데 걸리는 총시간 (사용자 발화 종료와 에이전트 응답 시작 간의 차이)입니다. 단위는 초입니다.
  2. 골든 테스트 사례 업데이트: 최신 실행에 에이전트 업데이트로 인한 예상 변경사항이 반영된 경우 '골든으로 저장'을 클릭하여 원래 테스트 사례를 덮어쓸 수 있습니다.
  3. 결과 필터링 및 정렬: 생성된 측정항목 또는 특정 환경을 기준으로 평가 결과를 필터링하고 정렬할 수 있습니다. 이는 업데이트 후 실적 변화를 추적하는 데 유용합니다.

테스트 사례 일괄 가져오기 형식

이 섹션에서는 에이전트의 일괄 테스트 사례를 가져오기 위해 CSV 파일의 형식을 지정하는 방법을 설명합니다. 시스템은 이 파일을 읽어 하나 이상의 대화 턴이 포함된 구조화된 테스트 사례 집합을 만듭니다.

단일 테스트 사례는 CSV 파일에서 여러 행에 걸쳐 있을 수 있습니다. 테스트 사례의 첫 번째 행은 이름, 언어와 같은 전체 속성을 정의합니다. 해당 테스트 사례의 각 후속 행은 대화에서 단일 왕복 턴을 정의합니다 (사용자가 말하면 에이전트가 대답해야 함).

CSV 파일의 첫 번째 줄은 헤더 행이어야 합니다. 이 헤더는 각 열의 데이터를 정의합니다.

필수 헤더

필수 헤더 두 개는 표시된 순서대로 있어야 합니다. 둘 다 새 테스트 사례의 첫 번째 행에 필요합니다. 새 DisplayNameLanguageCode 값을 제공하여 새 테스트 사례를 시작할 수 있습니다.

  • DisplayName: 테스트 사례의 이름입니다. 새 테스트 사례의 첫 번째 행에만 채워집니다.
  • LanguageCode: 테스트의 언어 코드입니다 (예: en, en-US, es).

헤더(선택사항)

다음 선택적 헤더를 포함하여 테스트 사례에 관한 세부정보를 제공할 수 있습니다. 처음 두 개의 필수 열 뒤에 오는 열은 순서가 달라도 됩니다.

테스트 사례 메타데이터

  • 태그: 테스트를 정리하기 위한 공백으로 구분된 태그입니다 (예: 'payments onboarding').
  • Notes: 자유 텍스트 메모 또는 테스트 사례 목적에 대한 설명입니다.
  • 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 문자열로 형식이 지정됩니다.

테스트 사례 빌드

테스트 사례는 데이터 행별로 구성됩니다.

  1. 새 테스트 사례를 시작하려면 메타데이터 행을 작성합니다.
    • 규칙: 이 행의 DisplayName 열에 값이 있어야 합니다.
    • 작업: DisplayNameLanguageCode 값을 입력합니다. 이 행에 태그, 메모 또는 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}