Regeln für automatisches Labeling und Korrelation

Customer Experience Insights bietet zwei regelbasierte Funktionen zur Verbesserung der Konversationsverarbeitung:

  • Regeln für automatisches Labeling:Schlüssel-Wert-Labels werden automatisch auf Konversationen angewendet, basierend auf definierten Bedingungen.
  • Korrelationsregeln:Definieren, wie zusammengehörige Konversationssegmente verknüpft werden, um vollständige Ansichten der Kundeninteraktion zu erstellen.

Beide Regeltypen verwenden die Common Expression Language (CEL), um flexible und dynamische Regeldefinitionen zu ermöglichen. CEL ist sowohl für Regeln für automatisches Labeling als auch für Korrelationsregeln von grundlegender Bedeutung. Sie können diese Regeln mit der API oder der CX Insights-Konsole konfigurieren.

Regeln für automatisches Labeling

Mit Regeln für automatisches Labeling werden Konversationen beim Import automatisch mit benutzerdefinierten Schlüssel-Wert-Labels angereichert. Diese Labels verbessern die Filterung, Kategorisierung und Integration mit anderen Analysen und Workflows. Mit Regeln für automatisches Labeling haben Sie folgende Möglichkeiten:

  • Konversationen nach Thema, Kundentyp, Produkt oder Ergebnis kategorisieren
  • Schlüsseldatenpunkte aus Konversationsmetadaten oder Dialogflow-Parametern wie callId, isAuthenticated und intent-Namen in Labels extrahieren
  • Konversationen kennzeichnen, die besondere Aufmerksamkeit erfordern, z. B. high_escalation_risk

Labels

Jede Regel für automatisches Labeling definiert ein Label und enthält geordnete Bedingungsnachrichten. Für jedes Label werden die folgenden CEL-Ausdrücke verwendet:

  • Bedingung: Wertet aus, ob eine Unterhaltung „true“ oder „false“ ist. Eine leere Bedingung wird standardmäßig als „true“ ausgewertet.
  • Wert: Erzeugt den Stringwert für ein Label, wenn die Bedingung „true“ ist.

Die erste übereinstimmende LabelingCondition bestimmt den Wert des Labels.

Regeln konfigurieren

Folgen Sie dieser Anleitung, um Regeln für automatisches Labeling entweder mit der API oder der CX Insights-Konsole zu konfigurieren.

API

  1. Verwenden Sie den Vorgang Create, um eine AutoLabelingRule zu konfigurieren. Beispiel für einen Anfragetext:

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

    Curl-Befehl, wenn die Anfrage in auto_labeling_rule.json gespeichert ist:

      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. Geben Sie Ihrer Regel einen Namen im folgenden Format: projects/[project-id]/locations/[location-id]/autoLabelingRules/[auto_labeling_rule]. Die ID [auto_labeling_rule] ist der label_key für benutzerdefinierte Regeln.

Sie können auch die folgenden Vorgänge mit Regeln für automatisches Labeling verwenden. Eine Regel für automatisches Labeling kann maximal 100 Labels pro Unterhaltung mit maximal 256 Zeichen pro Eintrag haben.

  • 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. Geben Sie je nach den zu aktualisierenden Feldern die update_mask an.
    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. Die Nutzlast sollte die zu testende Regel und eine Beispielkonversation enthalten, anhand derer die Regel ausgewertet wird. Beispiel:
    {
    "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. Rufen Sie die CX Insights-Konsole auf, melden Sie sich an und wählen Sie Ihr Projekt aus. CX Insights-Konsole
  2. Klicken Sie auf die EinstellungenSettings > Auto Labeling Rules (Regeln für automatisches Labeling).
  3. Geben Sie CEL-Ausdrücke mit einem Monaco-Editor ein.
  4. Klicken Sie auf Speichern.

CEL-Beispiele

  • Label nach Agenten-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'"
    }
  • Negative Wahrnehmung kennzeichnen:
    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-Parameter extrahieren:
    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()"
    }

Automatische Labels in Filtern für Analyseregeln verwenden

Mit Regeln für automatisches Labeling können Labels angewendet werden, die steuern, welche Konversationen von den Hauptanalyseregeln verarbeitet werden. Das Feld conversation_filter in einer Analyseregel kann mithilfe der Labels-Map auf Labels verweisen.

Beispiel:

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

Korrelationsregeln

Korrelationsregeln definieren, wie Customer Experience Insights zusammengehörige Konversationssegmente identifiziert und verknüpft. Ein Konversationssegment stellt einen einzelnen Teil einer Konversation dar, so wie sie erfasst wurde, z. B. eine Dialogflow-Sitzung oder eine einzelne Agenteninteraktion. Eine vollständige Konversation stellt eine vollständige, verknüpfte Konversation dar, die aus einem oder mehreren Segmenten besteht. Standardmäßig beginnen alle neuen Konversationen als Segmente. Mit Korrelationsregeln können Sie einen vollständigen Verlauf der Interaktion eines Kunden erstellen, auch wenn sie sich über mehrere Agenten, Kanäle oder Sitzungen erstreckt.

Korrelationsregeln bieten die folgenden Vorteile für die Analyse von Kundenservice-Konversationen.

  • Einheitliches Transkript:Ein einzelnes, chronologisches Transkript, das Äußerungen aus mehreren Quellen kombiniert, z. B. eine Chatbot-Sitzung gefolgt von einem Anruf mit einem Live-Agenten.
  • Kanalübergreifende Analyse:Verknüpfen Sie Interaktionen über verschiedene Kanäle hinweg, z. B. Chat und Sprache, um Sentimenttrends und die Entwicklung von Themen während des gesamten Konversationsverlaufs zu analysieren.
  • Genauigkeit der Messwerte:Berechnen Sie Messwerte wie die gesamte Bearbeitungszeit oder die Lösungsrate für die gesamte Interaktion und nicht nur für einzelne Teile.
  • Kontext für Agenten:Stellen Sie menschlichen Agenten den vollständigen Verlauf früherer automatisierter Interaktionen zur Verfügung.

Korrelationsprozess

Wenn Korrelationsregeln mit mehreren Konversationssegmenten übereinstimmen, werden sie von CX Insights gruppiert. CX Insights erstellt dann einen neuen Eintrag, der die vollständige Konversation mit einer eigenen eindeutigen Konversations-ID darstellt. CX Insights legt die Korrelations-ID einer vollständigen Konversation auf den gemeinsamen Schlüssel fest, der die Segmente verknüpft, und den Typ auf FULL. CX Insights legt die Korrelations-IDs der ursprünglichen Segmente auf den gemeinsamen Schlüssel und ihre Typen auf SEGMENT fest. Wenn ein Segment nicht mit anderen Segmenten korreliert ist, weist CX Insights ihm sowohl die Korrelationstypen SEGMENT als auch FULL zu.

Korrelationsregeln verknüpfen zusammengehörige Konversationssegmente aus verschiedenen Quellen und Kanälen. CX Insights führt die folgenden Schritte aus, um Konversationssegmente zu verknüpfen:

  1. Nach Join-Schlüssel gruppieren:CX Insights wertet einen CEL-Join-Schlüssel-Ausdruck aus, um eine gemeinsame ID aus der Unterhaltung zu extrahieren, z. B. callId. Konversationen mit demselben Join-Schlüssel sind potenzielle Kandidaten für die Verknüpfung. Join-Schlüssel müssen spezifisch sein. Wenn ein Schlüssel mit mehr als 20 Konversationen übereinstimmt, wird die Korrelation möglicherweise abgelehnt, um Leistungsprobleme zu vermeiden.
  2. Mit Einschränkungen verfeinern:Der CEL-Einschränkungsausdruck ist eine optionale boolesche Prüfung, die paarweise zwischen Kandidaten ausgewertet wird. Dieser Ausdruck hilft zu bestätigen, ob zwei Segmente mit einem gemeinsamen Schlüssel tatsächlich verknüpft werden sollten. Diese Prüfung ist bidirektional. Sie kann also Segment A, das mit Segment B verknüpft ist, und Segment B, das mit Segment A verknüpft ist, umfassen.
  3. Transitive Verknüpfung:Die Verknüpfung ist transitiv. Wenn Konversation A mit B und B mit C verknüpft ist, werden A, B und C zu einer einzigen FULL-Konversationsgruppe zusammengeführt.

Eine zusammengeführte Konversation kann maximal fünf Segmente enthalten.

Korrelationsregeln konfigurieren

Sie können Korrelationsregeln entweder mit der API oder der CX Insights-Konsole konfigurieren.

API

  1. Führen Sie den folgenden Code aus, um eine CorrelationConfig einzurichten.
    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. Geben Sie Ihrer Regel einen Namen im folgenden Format: projects/{project-id}/locations/{location-id}/correlationConfig.
  3. Sehen Sie sich das Ergebnis im Feld Conversation.CorrelationInfo an.

Sie können die folgenden Vorgänge mit Korrelationsregeln verwenden.

  • 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. Beispiel für eine Anfragetext, wenn sie in updated_corr_config.json gespeichert ist:
    {
    "fullConversationConfig": {
    "correlationRules": [
      {
        "joinKeyExpression": "conversation.labels.uui",
        "active": true
      }
    ]
    }
    }
  • TestCorrelationConfig. Die Nutzlast sollte neben der zu testenden Korrelationsregel auch die Details der Beispielkonversation enthalten. Beispiel:
    {
    "correlationConfig": {
    "fullConversationConfig": {
      "correlationRules": [
       {
          "joinKeyExpression": "conversation.agent_id",
         "active": true
        }
      ]
    }
    },
    "filter": "agent_id="agent_007"",
    "maxSampleCount": 100
    }

Console

  1. Rufen Sie die CX Insights-Konsole auf, melden Sie sich an und wählen Sie Ihr Projekt aus. CX Insights-Konsole
  2. Klicken Sie auf die settingsSettings > Correlation Config (Korrelationskonfiguration).
  3. Klicken Sie auf Speichern.

Administratoren können CorrelationRule-Einträge in der CorrelationConfig definieren und verwalten. Sie können Ihre Korrelationsregeln testen, indem Sie Konversationen auswählen. Die Testergebnisse werden einem Dataset zur Überprüfung hinzugefügt.

CEL-Beispiel

Verknüpfung nach callId aus 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)

CEL-Dienstfunktionen

CX Insights bietet mehrere Dienstfunktionen, die Sie in CEL-Ausdrücken verwenden können, um Konversationen auszuwerten.

Funktionssignatur Beschreibung
get_label(string key) Gibt den Stringwert des Labels zurück, das mit dem angegebenen key aus der aktuellen Konversation verknüpft ist.
exists_call_back_conversation(
  string filter)
Gibt true zurück, wenn eine „Rückruf“-Konversation vorhanden ist, die dem angegebenen filter entspricht. Es wird in einem Standardzeitraum in der Zukunft (24 Stunden) nach Konversationen mit derselben Nutzer-ID gesucht (verschleierte Nutzer-ID oder vordefiniertes Label für die Nutzer-ID). Der angegebene filter wird an diese Kriterien angehängt.
has_same_caller_conversation_in_n_hours(
  int hours)


has_same_caller_conversation_in_n_hours(
  int hours, string filter)
Gibt true zurück, wenn es Konversationen vom selben Anrufer/Nutzer innerhalb der angegebenen Anzahl von hours gibt (positiv für die Zukunft, negativ für die Vergangenheit). Optional kann ein filter angegeben werden, um die Suche weiter einzuschränken.
get_same_caller_conversations_in_n_hours(
  int hours)


get_same_caller_conversations_in_n_hours(
  int hours, string filter)
Gibt eine Liste von Konversationen vom selben Anrufer/Nutzer innerhalb der angegebenen Anzahl von hours zurück. Optional kann ein filter angegeben werden.
get_session_params(string key) Ruft den Stringwert eines Sitzungsparameters (aus Dialogflow oder CES) ab, der mit dem angegebenen key verknüpft ist. Es wird in umgekehrter chronologischer Reihenfolge nach Laufzeitannotationen und CES-Turn-Annotationen gesucht. Gibt einen leeren String zurück, wenn nichts gefunden wird.
get_last_subagent()

get_last_subagent(list excludes)
Gibt den Anzeigenamen des letzten Sub-Agenten zurück, der an der Konversation beteiligt war. Optional können Sub-Agenten ausgeschlossen werden, die in der Liste excludes aufgeführt sind (dazu gehört in der Regel der Sub-Agent, der speziell für die Eskalation zuständig ist), es sei denn, er ist der einzige Sub-Agent.
get_last_subagent_id()

get_last_subagent_id(list excludes)
Gibt die ID des letzten Sub-Agenten zurück, der an der Konversation beteiligt war. Optional können Sub-Agenten ausgeschlossen werden, die in der Liste excludes aufgeführt sind (dazu gehört in der Regel der Sub-Agent, der speziell für die Eskalation zuständig ist), es sei denn, er ist der einzige Sub-Agent.
list.first_element_or_empty_string() Verfügbar für Listen von Strings. Gibt das erste Element der Liste zurück, wenn es ein String ist. Andernfalls (oder wenn die Liste leer ist) wird ein leerer String zurückgegeben.

Analyse auf Segment- und Konversationsebene

Mit CX Insights können Sie Konversationen auf verschiedenen Detailebenen analysieren, einschließlich Analysen pro Segment und pro Konversation für alle Funktionen. Auf den Seiten Conversation Hub und Quality AI in der Konsole werden Daten auf Konversations- und Segmentebene verglichen, wobei die Struktur mit mehreren Segmenten verknüpfter Konversationen angegeben wird.

Wenn Sie bestimmte Analyseebenen anvisieren möchten, verwenden Sie die folgenden Filter mit einer Analyseregel.

Ansicht auf Segmentebene

Ziel dieser Ansicht ist es, bestimmte Teile einer Interaktion zu analysieren, z. B. den Turn eines einzelnen Agenten. Verwenden Sie den Parameter correlation_info.correlation_types:SEGMENT, um die Ansicht auf Segmentebene zu filtern.

Konversationsansicht

In dieser Ansicht können Sie den gesamten Kaufprozess analysieren, unabhängig davon, ob er aus verknüpften oder eigenständigen Konversationen besteht. Verwenden Sie den Parameter correlation_info.correlation_types:FULL, um die Konversationsansicht zu filtern.