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

Customer Experience Insights には、会話処理を強化するための 2 つのルールベースの機能が導入されています。

  • 自動ラベル付けルール: 定義された条件に基づいて、キーと値のラベルを会話に自動的に適用します。
  • 相関ルール: 関連する会話セグメントをリンクして、顧客とのやり取りの完全なビューを形成する方法を定義します。

どちらのルールタイプも、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. 設定アイコン [設定] > [自動ラベル付けルール] をクリックします。
  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 つの時系列の文字起こしを表示します。
  • クロスチャネル分析: チャットや音声などのさまざまなチャネルでのやり取りをリンクして、会話の全過程における感情の傾向やトピックの進行状況を分析します。
  • 指標の精度: 個々の部分だけでなく、インタラクション全体について、合計処理時間や解決率などの指標を計算します。
  • エージェントのコンテキスト: 過去の自動化されたやり取りの完全な履歴を人間のエージェントに提供します。

相関プロセス

相関ルールが複数の会話セグメントに一致すると、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. 設定設定 > [相関構成] をクリックします。
  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 では、すべての機能についてセグメント単位と会話単位の両方の分析など、さまざまな粒度で会話を分析できます。

  1. CX Insights コンソールに移動してログインし、プロジェクトを選択します。CX Insights コンソール
  2. 設定アイコン 設定 をクリックして、分析の粒度を選択します。選択した内容は今後の分析に適用され、遡って適用することもできますが、追加費用が発生する可能性があります。
  3. [保存] をクリックします。

コンソールの [会話ハブ] ページと [品質 AI] ページでは、会話レベルとセグメント レベルのデータが比較され、リンクされた会話のマルチセグメント構造が示されます。

フィルタの指標と分析

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

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

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

会話の全文を表示

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