自動ラベル付けと関連付けのルール

Customer Experience Insights には、会話処理を強化するためのルールベースの機能が 2 つあります。

  • 自動ラベリング ルール: 定義された条件に基づいて、会話に Key-Value ラベルを自動的に適用します。
  • 相関ルール: 関連する会話セグメントをリンクして、完全な顧客対応ビューを作成する方法を定義します。

どちらのルールタイプでも、Common Expression Language(CEL)を使用して、柔軟で動的なルール定義を提供します。CEL は、自動ラベリング ルールと相関ルールの両方で基本となります。これらのルールは、API または CX Insights コンソールで構成できます。

自動ラベリング ルール

自動ラベリング ルールは、インポート時にカスタム Key-Value ラベルで会話を自動的に強化します。これらのラベルを使用すると、フィルタリング、カテゴリ分け、他の分析やワークフローとの統合を改善できます。自動ラベリング ルールを使用すると、次の操作を行うことができます。

  • トピック、顧客タイプ、商品、結果で会話を分類します。
  • 会話メタデータまたは Dialogflow パラメータ(callIdisAuthenticatedintent 名など)から重要なデータポイントを抽出してラベルに含めます。
  • high_escalation_risk など、特別な注意が必要な会話にフラグを設定します。

ラベル

各自動ラベリング ルールはラベルを定義し、順序付けられた条件メッセージを含みます。各ラベルは次の CEL 式を使用します。

  • 条件: 会話が true か false かを評価します。条件が空の場合、デフォルトは true です。
  • : 条件が true の場合、ラベルの文字列値を生成します。

一致する最初の LabelingCondition によって、ラベルの値が決まります。

ルールの設定

API または CX Insights コンソールを使用して自動ラベリング ルールを構成する手順は次のとおりです。

API

  1. 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"

  2. ルールに 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
    }
    }

コンソール

  1. CX Insights コンソールに移動してログインし、プロジェクトを選択します。 CX Insights コンソール
  2. 設定アイコン [settings] [Settings] > [Auto Labeling Rules] をクリックします。
  3. Monaco エディタで CEL 式を入力します。
  4. [保存] をクリックします。

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

相関ルール

相関ルールは、Customer Experience Insights が関連する会話セグメントを識別してリンクする方法を定義します。会話セグメントは、取り込まれた会話の 1 つの部分を表します。たとえば、Dialogflow セッションや 1 人のエージェントの対応などです。完全な会話は、1 つ以上のセグメントで構成される、リンクされた完全な会話を表します。デフォルトでは、新しい会話はすべてセグメントとして開始されます。相関ルールを使用すると、複数のエージェント、チャネル、セッションにまたがる場合でも、顧客対応の完全な履歴を作成できます。

相関ルールは、カスタマー サービスの会話分析に次のメリットをもたらします。

  • 統合されたトランスクリプト: チャットボット セッションの後にライブエージェントによる通話が続くなど、複数のソースからの発話を組み合わせた、時系列のトランスクリプトを 1 つ表示します。
  • クロスチャネル分析: チャットや音声など、さまざまなチャネルでのやり取りをリンクして、会話全体を通してセンチメントの傾向とトピックの進行状況を分析します。
  • 指標の精度: 個々の部分だけでなく、やり取り全体の合計発送準備時間や解決率などの指標を計算します。
  • エージェントのコンテキスト: 以前の自動化されたやり取りの完全な履歴を人間のエージェントに提供します。

相関プロセス

相関ルールが複数の会話セグメントと一致すると、CX Insights はそれらをグループ化します。次に、CX Insights は、独自の会話 ID を持つ完全な会話を表す新しいエントリを作成します。CX Insights は、完全な会話の相関 ID をセグメントをリンクする共通キーに設定し、タイプを FULL に設定します。CX Insights は、元のセグメントの相関 ID を共通キーに設定し、タイプを SEGMENT に設定します。セグメントが他のセグメントと関連付けられていない場合、CX Insights は SEGMENTFULL の両方の相関タイプを付与します。

相関ルールは、さまざまなソースやチャネルの関連する会話セグメントをリンクします。CX Insights は、次の手順で会話セグメントをリンクします。

  1. 結合キーでグループ化する: CX Insights は CEL 結合キー式を評価して、会話から共通の識別子(callId など)を抽出します。同じ結合キーを共有する会話は、リンクの候補となります。結合キーは固有である必要があります。キーが 20 件を超える会話と一致する場合、パフォーマンスの問題を防ぐために相関が拒否されることがあります。
  2. 制約で絞り込む: CEL 制約式は、候補間でペアごとに評価されるオプションのブール値チェックです。この式は、キーを共有する 2 つのセグメントを実際にリンクする必要があるかどうかを確認するのに役立ちます。このチェックは双方向であるため、セグメント A がセグメント B にリンクされ、セグメント B がセグメント A にリンクされる可能性があります。
  3. 推移的なリンク: リンクは推移的です。会話 A が B にリンクされ、B が C にリンクされている場合、A、B、C は 1 つの FULL 会話グループにマージされます。

マージされた会話には、最大 5 つのセグメントを含めることができます。

相関ルールを構成する

相関ルールは、API または CX Insights コンソールを使用して構成できます。

API

  1. 次のコードを実行して 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"
  2. ルールに projects/{project-id}/locations/{location-id}/correlationConfig の形式で名前を付けます。
  3. 結果は 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"
  • UpdateCorrelationConfigupdated_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
    }

コンソール

  1. CX Insights コンソールに移動してログインし、プロジェクトを選択します。 CX Insights コンソール
  2. 設定アイコン [settings] [Settings] > [Correlation Config] をクリックします。
  3. [保存] をクリックします。

管理者は、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)

セグメント レベルと会話レベルの分析

CX Insights を使用すると、すべての機能でセグメント単位と会話単位の両方の分析など、さまざまな粒度で会話を分析できます。コンソールの [会話ハブ] ページと [Quality AI] ページでは、会話レベルとセグメント レベルのデータが比較され、リンクされた会話のマルチセグメント構造が示されます。

特定の分析レベルをターゲットにするには、フィルタ分析ルールで使用します。

セグメント レベルのビュー

このビューの目的は、1 人のエージェントのターンなど、やり取りの特定の部分を分析することです。correlation_info.correlation_types:SEGMENT パラメータを使用して、セグメント レベルのビューをフィルタします。

スレッド表示

このビューを使用して、リンクされた会話とスタンドアロンの会話のどちらで構成されているかに関係なく、顧客の完全なカスタマー ジャーニーを分析します。correlation_info.correlation_types:FULL パラメータを使用して、完全なスレッド表示をフィルタします。