트래픽 분할을 사용하면 단일 배포 채널 내에서 CX Agent Studio 에이전트 애플리케이션의 여러 버전 간에 사용자 대화를 나눌 수 있습니다. 트래픽 분할을 사용하여 A/B 테스트를 실행하거나 각 버전에 지정된 비율의 트래픽을 라우팅하여 업데이트를 단계별로 안전하게 배포할 수 있습니다.
이 가이드에서는 CX Agent Studio 콘솔 또는 CX Agent Studio REST API를 사용하여 트래픽 분할을 구성하고 실험에서 실시간 고객 트래픽을 수신한 후 BigQuery 로그를 사용하여 버전 성능을 분석하는 방법을 설명합니다.
워크플로 개요
- 애플리케이션 버전 만들기: 비교할 에이전트 애플리케이션의 변경 불가능한 스냅샷 (버전)을 만듭니다.
- 배포 채널에서 트래픽 분할 구성: 콘솔 또는 REST API를 사용하여 여러 애플리케이션 버전 간에 트래픽 비율을 할당합니다.
- BigQuery에서 성능 분석: 실험이 실행되고 충분한 고객 트래픽을 처리한 후 BigQuery에서 내보낸 대화 로그를 쿼리하여 버전 간 측정항목을 평가합니다.
트래픽 분할 구성
콘솔 또는 REST API를 사용하여 여러 애플리케이션 버전 간에 트래픽 할당을 구성할 수 있습니다. 각 할당은 기존 에이전트 애플리케이션 버전을 가리켜야 하며 배포의 모든 트래픽 비율의 합계는 100이어야 합니다.
콘솔 사용
에이전트 빌더 콘솔에서 트래픽 분할을 구성하려면 다음 단계를 따르세요.
- CX Agent Studio 콘솔을 열고 에이전트 애플리케이션을 선택합니다.
- 페이지 상단의 배포 탭을 클릭합니다.
- 기존 배포 채널을 선택하거나 새 채널을 클릭하여 채널을 만듭니다 (예: API 액세스).
- 에이전트 버전에서 버전 추가를 클릭하고 실험에 포함할 에이전트 애플리케이션 버전을 선택합니다.
- 각 버전의 트래픽 비율 을 입력합니다 (예: 버전 A의 경우
90%, 버전 B의 경우10%). 비율의 합계가 100%인지 확인합니다. - 채널 만들기 를 클릭하여 구성을 적용합니다.
REST API 사용
배포 리소스에서 patch 메서드를 호출하고 experimentConfig.versionRelease.trafficAllocations를 정의하여 프로그래매틱 방식으로 트래픽 분할을 설정할 수 있습니다.
API를 호출하기 전에 다음 식별자가 있는지 확인합니다.
PROJECT_ID: Google Cloud 프로젝트 ID입니다.LOCATION_ID: 에이전트 애플리케이션의 리전입니다 (예:us-east1).APP_ID: 에이전트 애플리케이션의 ID입니다.DEPLOYMENT_ID: 배포 채널의 ID입니다.VERSION_A_UUID/VERSION_B_UUID: 애플리케이션 버전의 고유 식별자입니다.
PATCH 요청을 보내 배포 구성을 업데이트합니다.
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://ces.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION_ID/apps/APP_ID/deployments/DEPLOYMENT_ID?updateMask=experimentConfig" \
-d '{
"experimentConfig": {
"versionRelease": {
"trafficAllocations": [
{
"appVersion": "projects/PROJECT_ID/locations/LOCATION_ID/apps/APP_ID/versions/VERSION_A_UUID",
"trafficPercentage": 90
},
{
"appVersion": "projects/PROJECT_ID/locations/LOCATION_ID/apps/APP_ID/versions/VERSION_B_UUID",
"trafficPercentage": 10
}
]
}
}
}'
배포 구성 확인
트래픽 할당이 활성 상태인지 확인하려면 다음 단계를 따르세요.
콘솔 사용
- CX Agent Studio console에서 배포 페이지를 엽니다.
- 배포 목록에서 채널을 찾습니다.
- 버전 열에 구성된 분할이 표시되는지 확인합니다 (예:
Version A (90%), Version B (10%)).
REST API 사용
GET 요청을 보내 배포 리소스 세부정보를 가져옵니다.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://ces.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION_ID/apps/APP_ID/deployments/DEPLOYMENT_ID"
응답 JSON에는 각 버전에 할당된 트래픽 비율을 확인하고 "state": "RUNNING" 내에 versionRelease을 표시하는 활성 experimentConfig가 포함됩니다.
BigQuery에서 버전 성능 분석
트래픽 분할 실험이 실행되고 충분한 실시간 고객 대화 볼륨을 처리한 후 BigQuery 로그를 사용하여 버전 성능을 분석할 수 있습니다.
로그를 분석하기 전에 CX Agent Studio 콘솔에서 빌드 > 설정 > 고급으로 이동하여 BigQuery로 로그 내보내기를 사용 설정하여 애플리케이션의 BigQuery 내보내기를 사용 설정했는지 확인합니다. 내보내기가 사용 설정되면 각 턴에서 처리하는 특정 app_version_id를 비롯한 상호작용 기록이 BigQuery 데이터 세트에 기록됩니다.
SQL 쿼리를 실행하여 트래픽 분할 기간 동안 각 버전에서 생성된 응답을 평가하고 비교할 수 있습니다.
- Google Cloud 콘솔에서 BigQuery 로 이동합니다.
프로젝트 세부정보 및 평가 기간 (
START_TIME및END_TIME)을 대체하여 상호작용 로그 테이블에 대해 예시 쿼리를 실행합니다.SELECT app_version_id, tool_call.name AS tool_name, tool_call.output AS tool_result_message, COUNT(1) AS count FROM `PROJECT_ID.conversational_agents_logs.v1beta_logs`, UNNEST(json_payload.query_result.generations) AS generation, UNNEST(generation.tool_calls) AS tool_call WHERE json_payload.resource = 'projects/PROJECT_ID/locations/LOCATION_ID/apps/APP_ID' AND timestamp >= TIMESTAMP('START_TIME_YYYY-MM-DD HH:MM:SS', 'TIMEZONE') AND timestamp <= TIMESTAMP('END_TIME_YYYY-MM-DD HH:MM:SS', 'TIMEZONE') GROUP BY app_version_id, tool_name, tool_result_message ORDER BY app_version_id, count DESC측정항목 평가:
- 버전 식별: 출력 행을 특정 버전 UUID 또는 도구 실행에 매핑합니다 (예: 버전 A와 버전 B의 응답 비교).
- 성공률 계산: 두 버전 간의 결과 비율을 오류 또는 오래된 응답과 비교하여 후보 버전을 100% 트래픽으로 승격할지 결정합니다.