流量拆分功能可將使用者對話分配給單一部署管道中,不同版本的 CX Agent Studio 代理程式應用程式。您可以透過流量拆分功能,將指定比例的流量轉送至各個版本,藉此進行 A/B 測試,或分階段安全地部署更新。
本指南說明如何使用 CX Agent Studio 控制台或 CX Agent Studio REST API 設定流量分配,並在實驗收到即時客戶流量後,使用 BigQuery 記錄檔分析版本效能。
工作流程總覽
- 建立應用程式版本:建立代理程式應用程式的不可變動快照 (版本),以便進行比較。
- 在部署管道上設定流量分配:使用控制台或 REST API,為多個應用程式版本指派流量百分比。
- 在 BigQuery 中分析效能:實驗開始執行並處理足夠的消費者流量後,請在 BigQuery 中查詢匯出的對話記錄,評估各版本的指標。
設定流量拆分
您可以使用控制台或 REST API,為不同應用程式版本設定流量分配。每個分配比例都必須指向現有的代理程式應用程式版本,且部署作業中所有流量百分比的總和必須等於 100。
使用主控台
如要在代理程式建構工具控制台中設定流量拆分,請按照下列步驟操作:
- 開啟 CX Agent Studio 控制台,然後選取您的代理程式應用程式。
- 按一下頁面頂端的「Deploy」分頁標籤。
- 選取現有的部署管道,或按一下「新管道」建立管道 (例如「API 存取權」)。
- 在「代理程式版本」下方,按一下「新增版本」,然後選取要納入實驗的代理程式應用程式版本。
- 輸入每個版本的流量百分比 (例如 A 版為
90%,B 版為10%)。確認百分比總和為 100%。 - 按一下「建立頻道」套用設定。
使用 REST API
如要以程式輔助方式設定流量分配,請在 Deployment 資源上呼叫 patch 方法,並定義 experimentConfig.versionRelease.trafficAllocations。
呼叫 API 前,請確認您擁有下列 ID:
PROJECT_ID: Google Cloud 專案 ID。LOCATION_ID:代理程式應用程式的區域 (例如us-east1)。APP_ID:代理程式應用程式的 ID。DEPLOYMENT_ID:部署管道的 ID。VERSION_A_UUID/VERSION_B_UUID:應用程式版本的專屬 ID。
傳送 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 控制台中開啟「Deploy」(部署) 頁面。
- 在部署作業清單中找出您的管道。
- 確認「版本」欄顯示已設定的分割 (例如
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 包含有效 experimentConfig,確認指派給各版本的流量百分比,並在 versionRelease 內顯示 "state": "RUNNING"。
在 BigQuery 中分析版本成效
流量分配實驗開始運作並處理足夠的即時顧客對話量後,您可以使用 BigQuery 記錄檔分析版本成效。
分析記錄前,請先在 CX Agent Studio 控制台中依序前往「Build」 >「Settings」 >「Advanced」,然後開啟「Export logs to 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% 流量。