데이터 스토어 성능 개선

이 가이드에서는 데이터 스토어 핸들러의 성능을 모니터링하고 개선하기 위한 권장사항을 제공합니다.

에이전트의 성능 추적

에이전트 대화 기록을 모니터링하고 분석 도구를 사용하여 에이전트 통계를 확인할 수 있습니다.

셀프서비스 평가 실행

데이터 스토어 상담사의 품질을 평가하고 변경사항을 추천하는 셀프서비스 평가를 실행할 수 있습니다.

상담사 응답 개선

테스트 중 일부 응답이 기대에 부합하지 않는 경우 다음을 수행하세요.

Playbook에서 사용하는 데이터 저장소 도구 최적화

이 설정은 사용자 쿼리를 재작성하거나 도구 매개변수를 동적으로 채우지 않음으로써 데이터 스토어의 RAG 응답을 가속화하고 지연 시간을 개선합니다. 즉, 사용자 쿼리가 있는 그대로 데이터 스토어에 전달되고 필터나 사용자 메타데이터 관련 매개변수가 채워지지 않습니다.

Dialogflow CX 콘솔에서 플레이북을 선택한 다음 설정 탭을 클릭하여 이 기능을 사용 설정할 수 있습니다. 후속 작업을 즉시 계속 처리하거나 다음 최종 사용자 입력을 기다리도록 플레이북을 구성할 수 있습니다.

사용 설정된 경우에도 다음 Playbook 안내는 계속 적용됩니다.

  • 데이터 스토어를 사용하여 사용자 쿼리에 답변해야 하는 경우
  • 데이터 저장소를 사용하여 사용자 쿼리에 응답하지 않고 대체 응답을 제공해야 하는 경우
  • 예를 들어 '경쟁업체에 관한 질문에는 답변하지 마세요'와 같이 방어적인 안내

사용 설정하면 다음 Playbook 안내가 무시됩니다. 다음과 같은 쿼리 요구사항이 있는 경우 이 설정을 활성화하지 마세요.

  • 안내에 따라 채울 특정 데이터 스토어 필터
  • 필터에서 전달된 사용자 맞춤설정 메타데이터를 적용하는 방법 안내
  • 데이터 스토어를 쿼리하기 전에 사용자 쿼리를 다시 작성하는 기타 안내

대화 여담 처리

최종 사용자가 대화 중에 명확한 질문을 할 수 있습니다. 예를 들어 신용카드 정보 수집 중에 CVV가 무엇인지 명확히 하고 싶을 수 있습니다. 이 경우 에이전트는 질문에 답하고 필요한 신용카드 정보 수집으로 돌아가야 합니다. 이를 위해 질문에 답변하는 데이터 스토어가 포함된 데이터 스토어 핸들러를 만들고 이 핸들러를 신용카드 정보 수집을 처리하는 흐름의 흐름 시작 페이지에 적용하고 이 핸들러가 '현재 페이지'로 돌아가도록 전환 대상을 설정할 수 있습니다.

원치 않는 인텐트 일치 처리

에이전트가 데이터 스토어 핸들러를 사용해야 할 때 인텐트가 일치하는 경우 다음을 시도하여 이를 수정할 수 있습니다.

  • 모호한 학습 문구를 삭제하거나 수정하여 모든 학습 문구가 원하는 인텐트를 정확하게 처리하고 데이터 스토어 콘텐츠와 충돌하지 않도록 합니다.
  • 인텐트 일치를 방지하려면 부정 예시를 사용하세요.

데이터 스토어 필터링

때로는 세션 매개변수 값에 따라 쿼리에 특정 데이터 스토어만 사용할 수 있습니다. 예를 들어 제품 카테고리에 고유한 데이터 스토어가 있을 수 있습니다. 제품 카테고리에 데이터 스토어 필터링을 수행하려면 다음 안내를 따르세요.

  • 세션 매개변수를 제품 카테고리로 설정합니다.
  • 세션 매개변수 값을 확인하고 원하는 데이터 스토어 핸들러가 있는 특정 페이지로 전환하는 조건 경로를 만듭니다.
  • 데이터 스토어 핸들러는 대화를 계속할 수 있도록 호출 페이지로 다시 전환해야 합니다.

맞춤설정

최종 사용자에게 보다 관련이 높은 생성형 답변을 만들려면 대화형 에이전트 (Dialogflow CX)에 사용자 관련 정보를 제공할 수 있습니다.

이 정보는 JSON으로 제공됩니다. 예상 스키마가 없으므로 객체 속성을 자유롭게 정의할 수 있습니다. 이 JSON은 대규모 언어 모델에 있는 그대로 전송되므로, 설명적인 속성 이름과 값을 사용하는 것이 가장 좋은 결과로 이어집니다.

예를 들면 다음과 같습니다.

{
  "subscription plan": "Business Premium Plus",
  "devices owned": [
    {"model": "Google Pixel 7"},
    {"model": "Google Pixel Tablet"}
  ]
}

API로 맞춤설정

인텐트 인식 요청을 전송할 때 이 데이터를 대화형 에이전트 (Dialogflow CX)에 제공할 수 있습니다. 이 정보는 세션에 지속되지 않기 때문에 모든 인텐트 인식 요청에 제공되어야 합니다.

Sessions.detectIntent 메서드의 queryParams.endUserMetadata 필드에 이 정보를 제공합니다.

세션 참조의 프로토콜 및 버전을 선택합니다.

프로토콜 V3 V3beta1
REST 세션 리소스 세션 리소스
RPC 세션 인터페이스 세션 인터페이스
C++ SessionsClient 해당 사항 없음
C# SessionsClient 해당 사항 없음
Go SessionsClient 해당 사항 없음
자바 SessionsClient SessionsClient
Node.js SessionsClient SessionsClient
PHP 없음 해당 사항 없음
Python SessionsClient SessionsClient
Ruby 없음 해당 사항 없음

Dialogflow CX Messenger로 맞춤설정

Dialogflow CX 메신저 통합에 이 데이터를 제공할 수 있습니다. setContext 메서드를 참조하세요.

검색 구성

에이전트 동작을 보다 효율적으로 제어하고 답변의 품질을 개선하기 위해 부스트 및 필터 검색 구성을 노출시켜 문서를 부스트, 숨기기, 필터링할 수 있습니다.

부스트 컨트롤을 사용하면 특정 문서에 부스트 값(순위가 높은 경우 0보다 큼, 순위가 낮은 경우 0보다 작음)을 적용하여 검색 결과 순위를 변경할 수 있습니다.

필터 컨트롤을 사용하면 지정된 필터 기준에 따라 검색 결과를 유지하거나 삭제할 수 있습니다.

이 정보는 대화형 에이전트 (Dialogflow CX) 요청에 JSON으로 제공됩니다. JSON 형식은 검색 컨트롤 유형에 따라 다릅니다.

부스트 컨트롤

다음 검색 구성은 부스트 컨트롤을 설명합니다.

"searchConfig": {
  "boostSpecs": [
    {
      "dataStores": [ "DATASTORE_ID" ],
      "spec": [
        {
          "conditionBoostSpecs": {
            "condition": "CONDITION",
            "boost": "1.0"
          }
        }
      ]
    }
  ]
}

필터 컨트롤

다음 검색 구성은 필터 컨트롤을 설명합니다.

"searchConfig": {
  "filterSpecs": [
    {
      "dataStores": [ "DATASTORE_ID" ],
      "filter": "CONDITION"
    }
  ]
}

API로 검색 구성 설정

인텐트 인식 요청을 전송할 때 이 데이터를 대화형 에이전트 (Dialogflow CX)에 제공할 수 있습니다. 이 정보는 세션에 지속되지 않기 때문에 모든 인텐트 인식 요청에 제공되어야 합니다.

Sessions.detectIntent 메서드의 queryParams.searchConfig 필드에 이 정보를 제공합니다.

세션 참조의 프로토콜 및 버전을 선택합니다.

프로토콜 V3 V3beta1
REST 세션 리소스 세션 리소스
RPC 세션 인터페이스 세션 인터페이스
C++ SessionsClient 해당 사항 없음
C# SessionsClient 해당 사항 없음
Go SessionsClient 해당 사항 없음
자바 SessionsClient SessionsClient
Node.js SessionsClient SessionsClient
PHP 없음 해당 사항 없음
Python SessionsClient SessionsClient
Ruby 없음 해당 사항 없음

Dialogflow CX Messenger로 검색 구성 설정

Dialogflow CX 메신저 통합에 이 데이터를 제공할 수 있습니다.

검색 컨트롤을 적용하려면 웹사이트에 메신저 코드를 삽입할 때 다음 스니펫을 추가해야 합니다.

<script>
  document.addEventListener('df-messenger-loaded', () => {
    const dfMessenger = document.querySelector('df-messenger');
    const searchConfig = { ... }
    dfMessenger.setQueryParameters(searchConfig);
  });
</script>

setQueryParameters 메서드를 참조하세요.