Règles de corrélation et d'ajout automatique de libellés

Customer Experience Insights introduit deux fonctionnalités basées sur des règles pour améliorer le traitement des conversations :

  • Règles d'ajout automatique de libellés : appliquez automatiquement des libellés de paires clé-valeur aux conversations en fonction des conditions définies.
  • Règles de corrélation : définissez comment associer des segments de conversation liés pour former des vues complètes des interactions client.

Les deux types de règles utilisent le CEL (Common Expression Language) pour fournir des définitions de règles flexibles et dynamiques. Le CEL est essentiel pour les règles d'ajout automatique de libellés et de corrélation. Vous pouvez configurer ces règles avec l'API ou la console CX Insights.

Règles d'ajout automatique de libellés

Les règles d'ajout automatique de libellés enrichissent automatiquement les conversations avec des libellés de paires clé-valeur personnalisés lors de l'importation. Ces libellés améliorent le filtrage, la catégorisation et l'intégration avec d'autres analyses et workflows. Vous pouvez effectuer les actions suivantes avec les règles d'ajout automatique de libellés :

  • Catégorisez les conversations par sujet, type de client, produit ou résultat.
  • Extrayez des points de données clés des métadonnées de conversation ou des paramètres Dialogflow, tels que les noms callId, isAuthenticated et intent, dans des libellés.
  • Signalez les conversations nécessitant une attention particulière, telles que high_escalation_risk.

Étiquettes

Chaque règle d'ajout automatique de libellés définit un libellé et contient des messages de condition ordonnés. Chaque libellé utilise les expressions CEL suivantes :

  • Condition : évalue si une conversation est vraie ou fausse. Une condition vide est définie par défaut sur "true".
  • Valeur : génère la valeur de chaîne d'un libellé si la condition est vraie.

La première LabelingCondition correspondante détermine la valeur du libellé.

Configurer les règles

Pour configurer des règles d'ajout automatique de libellés à l'aide de l'API ou de la console CX Insights, procédez comme suit.

API

  1. Utilisez l'opération Create pour configurer une AutoLabelingRule. Exemple de corps de requête :

    {
      "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
    }

    Commande Curl, si la requête est enregistrée dans auto_labeling_rule.json :

      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. Attribuez un nom à votre règle au format suivant : projects/[project-id]/locations/[location-id]/autoLabelingRules/[auto_labeling_rule]. L'ID [auto_labeling_rule] est la label_key des règles personnalisées.

Vous pouvez également utiliser l'une des opérations suivantes avec les règles d'ajout automatique de libellés. Une règle d'ajout automatique de libellés peut comporter jusqu'à 100 libellés par conversation, avec un maximum de 256 caractères par entrée.

  • 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. Selon les champs à mettre à jour, spécifiez le 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. Votre charge utile doit contenir la règle à tester et un exemple de conversation sur lequel la règle sera évaluée. Exemple :
    {
    "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
    }
    }

Console

  1. Accédez à la console CX Insights, connectez-vous, puis sélectionnez votre projet. Console CX Insights
  2. Cliquez sur settingsSettings > Auto Labeling Rules (Règles d'ajout automatique de libellés).
  3. Saisissez des expressions CEL avec un éditeur Monaco.
  4. Cliquez sur Save (Enregistrer).

Exemples CEL

  • Libellé par ID d'agent :
    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'"
    }
  • Signaler un sentiment négatif :
    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'"
    }
  • Extraire un paramètre 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()"
    }

Utiliser des libellés automatiques dans les filtres de règles d'analyse

Les règles d'ajout automatique de libellés peuvent appliquer des libellés qui contrôlent les conversations traitées par les règles d'analyse principales. Le champ conversation_filter d'une règle d'analyse peut référencer des libellés à l'aide du mappage des libellés.

Exemple :

// 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

Règles de corrélation

Les règles de corrélation définissent comment Customer Experience Insights identifie et associe les segments de conversation liés. Un segment de conversation représente une partie unique d'une conversation, telle qu'elle a été ingérée, comme une session Dialogflow ou une interaction unique d'un agent. Une conversation complète représente une conversation complète et associée composée d'un ou de plusieurs segments. Par défaut, toutes les nouvelles conversations commencent en tant que segments. Les règles de corrélation vous aident à créer un historique complet de l'interaction d'un client, même si elle s'étend sur plusieurs agents, canaux ou sessions.

Les règles de corrélation offrent les avantages suivants pour l'analyse des conversations du service client.

  • Transcription unifiée : affichez une transcription unique et chronologique qui combine les énoncés provenant de plusieurs sources, comme une session de chatbot suivie d'un appel d'un agent en direct.
  • Analyse multicanal : associez les interactions sur différents canaux, tels que le chat et la voix, pour analyser les tendances des sentiments et la progression des sujets tout au long d'un parcours de conversation complet.
  • Précision des métriques : calculez des métriques telles que le temps de traitement total ou le taux de résolution pour l'interaction complète plutôt que pour des parties individuelles uniquement.
  • Contexte pour les agents : fournissez aux agents humains l'historique complet des interactions automatisées précédentes.

Processus de corrélation

Lorsque les règles de corrélation correspondent à plusieurs segments de conversation, CX Insights les regroupe. CX Insights crée ensuite une entrée pour représenter la conversation complète avec son propre ID de conversation unique. CX Insights définit l'ID de corrélation d'une conversation complète sur la clé commune qui associe les segments, et son type sur FULL. CX Insights définit les ID de corrélation des segments d'origine sur la clé commune et leurs types sur SEGMENT. Si un segment n'est corrélé à aucun autre segment, CX Insights lui attribue les types de corrélation SEGMENT et FULL.

Les règles de corrélation associent des segments de conversation liés provenant de différentes sources et de différents canaux. CX Insights procède comme suit pour associer des segments de conversation :

  1. Critère de regroupement par clé de jointure : CX Insights évalue une expression de clé de jointure CEL pour extraire un identifiant commun de la conversation, tel que callId. Les conversations partageant la même clé de jointure sont des candidats potentiels pour l'association. Les clés de jointure doivent être spécifiques. Si une clé correspond à plus de 20 conversations, la corrélation peut être rejetée pour éviter les problèmes de performances.
  2. Affiner avec des contraintes : l'expression de contrainte CEL est une vérification booléenne facultative évaluée par paires entre les candidats. Cette expression permet de confirmer si deux segments partageant une clé doivent réellement être associés. Cette vérification est bidirectionnelle. Elle peut donc inclure le segment A associé au segment B et le segment B associé au segment A.
  3. Lien transitif : l'association est transitive. Si la conversation A est associée à la conversation B, et que la conversation B est associée à la conversation C, alors les conversations A, B et C sont fusionnées en un seul groupe de conversations FULL.

Une conversation fusionnée peut contenir jusqu'à cinq segments.

Configurer des règles de corrélation

Vous pouvez configurer des règles de corrélation à l'aide de l'API ou de la console CX Insights.

API

  1. Exécutez le code suivant pour configurer un 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. Attribuez un nom à votre règle au format suivant : projects/{project-id}/locations/{location-id}/correlationConfig.
  3. Affichez le résultat dans le champ Conversation.CorrelationInfo.

Vous pouvez utiliser l'une des opérations suivantes avec les règles de corrélation.

  • 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. Exemple de corps de requête, s'il est enregistré dans un updated_corr_config.json :
    {
    "fullConversationConfig": {
    "correlationRules": [
      {
        "joinKeyExpression": "conversation.labels.uui",
        "active": true
      }
    ]
    }
    }
  • TestCorrelationConfig. Votre charge utile doit spécifier les détails de l'exemple de conversation en plus de la règle de corrélation à tester. Exemple :
    {
    "correlationConfig": {
    "fullConversationConfig": {
      "correlationRules": [
       {
          "joinKeyExpression": "conversation.agent_id",
         "active": true
        }
      ]
    }
    },
    "filter": "agent_id="agent_007"",
    "maxSampleCount": 100
    }

Console

  1. Accédez à la console CX Insights, connectez-vous, puis sélectionnez votre projet. Console CX Insights
  2. Cliquez sur settingsSettings > Correlation Config (Configuration de la corrélation).
  3. Cliquez sur Save (Enregistrer).

Les administrateurs peuvent définir et gérer des entrées CorrelationRule dans le CorrelationConfig. Vous pouvez tester vos règles de corrélation en sélectionnant des conversations. Les résultats des tests sont ajoutés à un ensemble de données pour examen.

Exemple CEL

Associer par callId à partir de Dialogflow :

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)

Analyse au niveau du segment et de la conversation

Avec CX Insights, vous pouvez analyser les conversations à différents niveaux de granularité, y compris l'analyse par segment et par conversation pour toutes les fonctionnalités. Les pages Conversation Hub (Hub de conversation) et Quality AI (IA de qualité) de la console comparent les données au niveau de la conversation et du segment, en indiquant la structure multisegment des conversations associées.

Pour cibler des niveaux d'analyse spécifiques, utilisez les filtres suivants avec une règle d'analyse.

Vue au niveau du segment

L'objectif de cette vue est d'analyser des parties spécifiques d'une interaction, comme le tour de parole d'un seul agent. Utilisez le paramètre correlation_info.correlation_types:SEGMENT pour filtrer la vue au niveau du segment.

Mode Conversation complet

Utilisez cette vue pour analyser le parcours client complet, qu'il s'agisse de conversations associées ou autonomes. Utilisez le paramètre correlation_info.correlation_types:FULL pour filtrer le mode Conversation complet.