고객 경험 인사이트에는 대화 처리를 개선하기 위한 두 가지 규칙 기반 기능이 도입되었습니다.
- 자동 라벨 지정 규칙: 정의된 조건에 따라 대화에 키-값 라벨을 자동으로 적용합니다.
- 상관관계 규칙: 관련 대화 세그먼트를 연결하여 완전한 고객 상호작용 보기를 형성하는 방법을 정의합니다.
두 규칙 유형 모두 Common Expression Language (CEL)을 사용하여 유연하고 동적인 규칙 정의를 제공합니다. CEL은 자동 라벨 지정과 상관관계 규칙 모두에 기본입니다. API 또는 CX Insights 콘솔을 사용하여 이러한 규칙을 구성할 수 있습니다.
자동 라벨 지정 규칙
자동 라벨 지정 규칙은 가져오기 중에 맞춤 키-값 라벨로 대화를 자동으로 보강합니다. 이러한 라벨은 필터링, 분류, 다른 분석 및 워크플로와의 통합을 개선합니다. 자동 라벨 지정 규칙을 사용하여 다음 작업을 수행할 수 있습니다.
- 주제, 고객 유형, 제품 또는 결과별로 대화를 분류합니다.
- 대화 메타데이터 또는 Dialogflow 매개변수(예:
callId,isAuthenticated,intent이름)에서 주요 데이터 포인트를 라벨로 추출합니다. high_escalation_risk와 같이 특별한 주의가 필요한 대화를 표시합니다.
라벨
각 자동 라벨 지정 규칙은 라벨을 정의하고 순서가 지정된 조건 메시지를 포함합니다. 각 라벨은 다음 CEL 표현식을 사용합니다.
- 조건: 대화가 참인지 거짓인지 평가합니다. 빈 조건은 기본적으로 true입니다.
- 값: 조건이 true인 경우 라벨의 문자열 값을 생성합니다.
일치하는 첫 번째 LabelingCondition에 따라 라벨의 값이 결정됩니다.
규칙 구성
API 또는 CX Insights 콘솔을 사용하여 자동 라벨 지정 규칙을 구성하려면 다음 단계를 따르세요.
API
Create작업을 사용하여AutoLabelingRule을 구성합니다. 샘플 요청 본문:{ "displayName": "$DISPLAY_NAME", "labelKey": "$UNIQUE_KEY_NAME", "labelKeyType": LABEL_KEY_TYPE_CUSTOM "conditions": [ { "condition": "conversation.turn_count > 10 && conversation.duration > "60s"", "value": "'long_call'" }, { "condition": "conversation.agent_id == "agent_007"", "value": "'special_agent'" } ], "active": true }요청이
auto_labeling_rule.json에 저장된 경우의 curl 명령어:curl-X POST
-H "Authorization: Bearer $(gcloud auth --impersonate-service-account=$SA_EMAIL print-access-token)"
-H "Content-Type: application/json; charset=utf-8"
-d @auto_labeling_rule.json
"https://$ENDPOINT/v1/projects/$PROJECT/locations/$LOCATION/autoLabelingRules?auto_labeling_rule_id=$RULE_ID"규칙 이름을
projects/[project-id]/locations/[location-id]/autoLabelingRules/[auto_labeling_rule]형식으로 지정합니다.[auto_labeling_rule]ID는 맞춤 규칙의label_key입니다.
자동 라벨 지정 규칙과 함께 다음 작업 중 하나를 사용할 수도 있습니다. 자동 라벨 지정 규칙은 대화당 최대 100개의 라벨을 가질 수 있으며 항목당 최대 256자(영문 기준)입니다.
Get개curl -X GET
-H "Authorization: Bearer $(gcloud auth --impersonate-service-account=$SA_EMAIL print-access-token)"
-H "Content-Type: application/json; charset=utf-8" \ "https://$ENDPOINT/v1/projects/$PROJECT/locations/$LOCATION/autoLabelingRules/$RULE_ID"List개curl -X GET
-H "Authorization: Bearer $(gcloud auth --impersonate-service-account=$SA_EMAIL print-access-token)"
-H "Content-Type: application/json; charset=utf-8" \ "https://$ENDPOINT/v1/projects/$PROJECT/locations/$LOCATION/autoLabelingRules"Update. 업데이트할 필드에 따라update_mask를 지정합니다.curl -X PATCH
-H "Authorization: Bearer $(gcloud auth --impersonate-service-account=$SA_EMAIL print-access-token)"
-H "Content-Type: application/json; charset=utf-8"
-d @update_payload.json \ "https://$ENDPOINT/v1/projects/$PROJECT/locations/$LOCATION/autoLabelingRules/$RULE_ID?update_mask=displayName,active"TestAutoLabelingRule. 페이로드에는 테스트할 규칙과 규칙이 평가될 샘플 대화가 포함되어야 합니다. 예:{ "conversation": { "agentId": "agent_007", "turnCount": 15, "duration": "75s" /# Add other conversation fields relevant to the rule }, "autoLabelingRule": { "displayName": "Test Rule", "labelKey": "test_category", "conditions": [ { "condition": "conversation.turn_count > 10 && conversation.duration > "60s"", "value": "'long_call_test'" } ], "active": true } }
콘솔
- CX Insights 콘솔로 이동하여 로그인하고 프로젝트를 선택합니다. CX Insights 콘솔
- 설정설정 > 자동 라벨 지정 규칙을 클릭합니다.
- Monaco 편집기로 CEL 표현식을 입력합니다.
- 저장을 클릭합니다.
CEL 예시
- 상담사 ID별 라벨:
label_key: "agent_category" conditions { condition: "conversation.agent_id == '007'" value: "'special_agent'" } conditions { condition: "conversation.agent_id.startsWith('team_a')" value: "'tier_1_support'" } conditions { condition: "" // Default value: "'standard'" } - 부정적인 감정 플래그 지정:
label_key: "needs_review" conditions { // This example assumes sentiment scores are present in the conversation's latest_analysis condition: "has(conversation.latest_analysis.analysis_result.call_analysis_metadata.sentiments) && conversation.latest_analysis. analysis_result.call_analysis_metadata.sentiments.exists(s, s. sentiment_data.score < -0.5)" value: "'true'" } - Dialogflow 매개변수를 추출합니다.
label_key: "df_session_outcome" conditions { condition: "" // Always try to extract value: "conversation.runtime_annotations.map(a, a.dialogflow_interaction.detect_intent_response_v3.query_result.parameters).filter(p, has(p.outcome)).map(p, p.outcome).first_element_or_empty_string()" }
분석 규칙 필터에서 자동 라벨 사용
자동 라벨 지정 규칙은 기본 분석 규칙이 처리하는 대화를 제어하는 라벨을 적용할 수 있습니다. 분석 규칙의 conversation_filter 필드는 라벨 맵을 사용하여 라벨을 참조할 수 있습니다.
예:
// AnalysisRule to run detailed analysis on conversations labeled 'needs_review: true'
display_name: "Detailed Analysis for Reviewed Conversations"
conversation_filter: "labels.needs_review = \"true\""
annotator_selector: {
run_summarization_annotator: true
// ... other annotators
}
analysis_percentage: 1.0
active: true
상관관계 규칙
상관관계 규칙은 고객 경험 인사이트가 관련 대화 세그먼트를 식별하고 연결하는 방법을 정의합니다. 대화 세그먼트는 Dialogflow 세션이나 단일 상담사 상호작용과 같이 수집된 대화의 단일 부분을 나타냅니다. 전체 대화는 하나 이상의 세그먼트로 구성된 완전한 연결된 대화를 나타냅니다. 기본적으로 모든 새 대화는 세그먼트로 시작됩니다. 상관관계 규칙을 사용하면 여러 상담사, 채널 또는 세션에 걸쳐 있더라도 고객 상호작용의 전체 기록을 만들 수 있습니다.
상관관계 규칙은 고객 서비스 대화 분석에 다음과 같은 이점을 제공합니다.
- 통합 스크립트: 챗봇 세션 후 실시간 상담사 통화와 같이 여러 소스의 발언을 결합한 단일 시간순 스크립트를 확인합니다.
- 교차 채널 분석: 채팅, 음성과 같은 다양한 채널의 상호작용을 연결하여 전체 대화 여정에서 감정 추세와 주제 진행 상황을 분석합니다.
- 측정항목 정확도: 개별 부분뿐만 아니라 전체 상호작용에 대한 총 주문 상품 준비 시간 또는 해결률과 같은 측정항목을 계산합니다.
- 상담사 컨텍스트: 이전 자동 상호작용의 전체 기록을 상담사에게 제공합니다.
상관관계 프로세스
상관관계 규칙이 여러 대화 세그먼트와 일치하면 CX Insights에서 이를 그룹화합니다. 그러면 CX Insights에서 고유한 대화 ID가 있는 전체 대화를 나타내는 새 항목을 만듭니다. CX Insights는 전체 대화의 상관관계 ID를 세그먼트를 연결하는 공통 키로 설정하고 유형을 FULL로 설정합니다. CX Insights는 원래 세그먼트의 상관관계 ID를 공통 키로 설정하고 유형을 SEGMENT로 설정합니다. 세그먼트가 다른 세그먼트와 상관관계가 없는 경우 CX 통계에서는 SEGMENT 및 FULL 상관관계 유형을 모두 부여합니다.
메시지 연결
상관관계 규칙은 다양한 소스와 채널의 관련 대화 세그먼트를 연결합니다. CX 통계는 다음 단계에 따라 대화 세그먼트를 연결합니다.
- 조인 키로 그룹화: CX Insights는 CEL 조인 키 표현식을 평가하여
callId와 같은 대화에서 공통 식별자를 추출합니다. 동일한 조인 키를 공유하는 대화는 연결될 수 있습니다. 조인 키는 구체적이어야 합니다. 키가 20개가 넘는 대화와 일치하는 경우 성능 문제를 방지하기 위해 상관관계가 거부될 수 있습니다. - 제약 조건으로 구체화: CEL 제약 조건 표현식은 후보 간에 쌍으로 평가되는 선택적 불리언 검사입니다. 이 표현식은 키를 공유하는 두 세그먼트가 실제로 연결되어야 하는지 확인하는 데 도움이 됩니다. 이 검사는 양방향이므로 세그먼트 B에 연결된 세그먼트 A와 세그먼트 A에 연결된 세그먼트 B를 포함할 수 있습니다.
- 전이적 링크: 연결은 전이적입니다. 대화 A가 B에 연결되고 B가 C에 연결되면 A, B, C가 하나의
FULL대화 그룹으로 병합됩니다.
병합된 대화에는 최대 5개의 세그먼트가 포함될 수 있습니다.
상관관계 규칙 구성
API 또는 CX Insights 콘솔을 사용하여 상관관계 규칙을 구성할 수 있습니다.
API
- 다음 코드를 실행하여
CorrelationConfig를 설정합니다.curl -X PATCH
-H "Authorization: Bearer $(gcloud auth --impersonate-service-account=$SA_EMAIL print-access-token)"
-H "Content-Type: application/json; charset=utf-8"
-d @update_corr_config.json
"https://$ENDPOINT/v1/projects/$PROJECT/locations/$LOCATION/correlationConfig?update_mask=fullConversationConfig" - 다음 형식으로 규칙 이름을 지정합니다.
projects/{project-id}/locations/{location-id}/correlationConfig Conversation.CorrelationInfo필드에서 결과를 확인합니다.
상관관계 규칙과 함께 다음 작업을 사용할 수 있습니다.
GetCorrelationConfig개curl-X GET
-H "Authorization: Bearer $(gcloud auth --impersonate-service-account=$SA_EMAIL print-access-token)"
-H "Content-Type: application/json; charset=utf-8"
"https://$ENDPOINT/v1/projects/$PROJECT/locations/$LOCATION/correlationConfig"UpdateCorrelationConfig.updated_corr_config.json에 저장된 경우의 샘플 본문 요청:{ "fullConversationConfig": { "correlationRules": [ { "joinKeyExpression": "conversation.labels.uui", "active": true } ] } }TestCorrelationConfig. 페이로드에는 테스트할 상관관계 규칙 외에 샘플 대화 세부정보가 지정되어야 합니다. 예:{ "correlationConfig": { "fullConversationConfig": { "correlationRules": [ { "joinKeyExpression": "conversation.agent_id", "active": true } ] } }, "filter": "agent_id="agent_007"", "maxSampleCount": 100 }
콘솔
- CX Insights 콘솔로 이동하여 로그인하고 프로젝트를 선택합니다. CX Insights 콘솔
- 설정Settings > 상관관계 구성을 클릭합니다.
- 저장을 클릭합니다.
관리자는 CorrelationConfig 내에서 CorrelationRule 항목을 정의하고 관리할 수 있습니다. 대화를 선택하여 상관관계 규칙을 테스트할 수 있습니다. 검토를 위해 테스트 결과가 데이터 세트에 추가됩니다.
CEL 예
Dialogflow의 callId로 연결:
join_key_expression:
// Extracts 'callId' from Dialogflow parameters, falls back to conversation name.
default(conversation.runtime_annotations.map(a,
a.dialogflow_interaction.detect_intent_response_v3.query_result.parameters)
.filter(p, has(p.callId))
.map(p, p.callId)
.first_element_or_empty_string(), conversation.name)
CEL 유틸리티 함수
CX 인사이트는 CEL 표현식에서 대화를 평가하는 데 사용할 수 있는 여러 유틸리티 함수를 제공합니다.
| 함수 서명 | 설명 |
|---|---|
get_label(string key) |
현재 대화에서 지정된 key와 연결된 라벨의 문자열 값을 반환합니다. |
exists_call_back_conversation( |
제공된 filter와 일치하는 '콜백' 대화가 있으면 true를 반환합니다. 기본 미래 기간 (24시간) 내에서 동일한 사용자 ID (난독화된 사용자 ID 또는 사전 정의된 사용자 ID 라벨)가 있는 대화를 검색합니다. 제공된 filter이 이 기준에 추가됩니다. |
has_same_caller_conversation_in_n_hours(has_same_caller_conversation_in_n_hours( |
지정된 hours 수 (미래는 양수, 과거는 음수) 내에 동일한 발신자/사용자의 대화가 있는 경우 true를 반환합니다. 선택적 filter를 제공하여 검색을 추가로 제한할 수 있습니다. |
get_same_caller_conversations_in_n_hours(get_same_caller_conversations_in_n_hours( |
지정된 hours 내에서 동일한 발신자/사용자의 대화 목록을 반환합니다. 선택적 filter을 제공할 수 있습니다. |
get_session_params(string key) |
지정된 key와 연결된 세션 매개변수 (Dialogflow 또는 CES에서)의 문자열 값을 가져옵니다. 런타임 주석과 CES 턴 주석을 시간 역순으로 검색합니다. 찾을 수 없는 경우 빈 문자열을 반환합니다. |
get_last_subagent()get_last_subagent(list excludes) |
대화에 참여한 마지막 하위 에이전트의 표시 이름을 반환합니다. 유일한 하위 에이전트가 아닌 경우 excludes 목록에 나열된 하위 에이전트 (일반적으로 에스컬레이션을 특별히 처리하는 하위 에이전트 포함)를 선택적으로 제외할 수 있습니다. |
get_last_subagent_id()get_last_subagent_id(list excludes) |
대화에 참여한 마지막 하위 에이전트의 ID를 반환합니다. 유일한 하위 에이전트가 아닌 경우 excludes 목록에 나열된 하위 에이전트 (일반적으로 에스컬레이션을 특별히 처리하는 하위 에이전트 포함)를 선택적으로 제외할 수 있습니다. |
list.first_element_or_empty_string() |
문자열 목록에서 사용할 수 있습니다. 목록이 문자열인 경우 목록의 첫 번째 요소를 반환하고, 그렇지 않은 경우 (또는 비어 있는 경우) 빈 문자열을 반환합니다. |
세그먼트 및 대화 수준 분석
CX Insights를 사용하면 모든 기능에 대해 세그먼트별 분석과 대화별 분석을 비롯한 다양한 세부사항으로 대화를 분석할 수 있습니다. 콘솔의 대화 허브 및 Quality AI 페이지에서는 대화 및 세그먼트 수준 데이터를 비교하여 연결된 대화의 다중 세그먼트 구조를 나타냅니다.
특정 분석 수준을 타겟팅하려면 분석 규칙과 함께 다음 필터를 사용하세요.
세그먼트 수준 보기
이 뷰의 목표는 단일 상담사의 턴과 같은 상호작용의 특정 부분을 분석하는 것입니다. correlation_info.correlation_types:SEGMENT 매개변수를 사용하여 세그먼트 수준 보기를 필터링합니다.
전체 대화형식으로 보기
이 뷰를 사용하여 연결된 대화든 독립형 대화든 전체 고객 여정을 분석합니다. correlation_info.correlation_types:FULL 파라미터를 사용하여 전체 대화형식으로 보기 뷰를 필터링합니다.