使用 Agent Assist 對話資料計算指標

您可以將 Agent Assist 中的對話匯入 Customer Experience Insights 進行分析。本文將逐步說明如何計算匯入的 Agent Assist 資料中,幾項重要的對話指標。

JSON_QUERY(..., "$.reply")

必要條件

  1. 使用 Agent Assist智慧回覆摘要功能,生成對話資料。

  2. 在 Customer Experience Insights 中啟用 Dialogflow 執行階段整合功能

  3. 將資料從 CX Insights 匯出至 BigQuery。

觸發率

觸發率是指某種註解出現在對話中的頻率。

句子層級觸發率

如果註解至少每句會顯示一次,則適用句子層級的觸發率。

註解名稱 註解型別 條件
文章建議 'ARTICLE_SUGGESTION' 系統會為對話中的每則訊息傳送至少一項 SuggestArticles 要求。
常見問題小幫手 'FAQ' 系統會為對話中的每則訊息,傳送至少一個 SuggestFaqAnswersAnalyzeContent 要求。
智慧回覆 'SMART_REPLY' 系統會為對話中的每則訊息,傳送至少一個 SuggestSmartRepliesAnalyzeContent 要求。

WITH calculation AS
(
  SELECT
    COUNTIF(
      (
        SELECT COUNT(*)
        FROM UNNEST (sen.annotations) AS annotation
        WHERE annotation.type = 'ANNOTATION_TYPE'
      ) > 0
    ) AS numSentencesAtLeastOneAnnotation,
    COUNT(*) AS numSentencesTotal
  FROM BIGQUERY_TABLE,
  UNNEST (sentences) AS sen
)
SELECT
  numSentencesAtLeastOneAnnotation,
  numSentencesTotal,
  numSentencesAtLeastOneAnnotation / numSentencesTotal AS triggerRate
FROM calculation;

對話層級觸發率

如果註解在單一對話中最多只會顯示一次,則適用對話層級的觸發率。

註解名稱 註解型別 條件

| 生成式知識輔助 (GKA) | 'KNOWLEDGE_SEARCH' | 對話中的每則訊息至少會傳送一項 SearchKnowledge 要求。| | 主動生成知識輔助 | 'KNOWLEDGE_SEARCH' | 系統會為對話中的每則訊息傳送至少一個 SearchKnowledgeAnalyzeContent 要求。| 摘要 | 'CONVERSATION_SUMMARIZATION' | 每個對話至少會傳送一項 SuggestConversationSummary 請求。|

WITH calculation AS
(
  SELECT
    COUNTIF(
      (
        SELECT COUNT(*)
        FROM
          UNNEST (sentences) AS sen,
          UNNEST (sen.annotations) AS annotation
        WHERE annotation.type = 'ANNOTATION_TYPE'
      ) > 0
    ) AS numConversationsAtLeastOneAnnotation,
    COUNT(*) AS numConversationsTotal
  FROM BIGQUERY_TABLE
) SELECT
  numConversationsAtLeastOneAnnotation,
  numConversationsTotal,
  numConversationsAtLeastOneAnnotation / numConversationsTotal AS triggerRate
FROM calculation;

點閱率

點閱率是指通話服務專員點選系統建議註解的頻率。

句子層級點閱率

如果註解可讓服務專員在每個句子中點按多次,系統就會套用句子層級的點閱率。

註解名稱 註解型別 條件
文章建議 'ARTICLE_SUGGESTION' 系統會為對話中的每則訊息傳送至少一項 SuggestArticles 要求。
常見問題小幫手 'FAQ' 系統會為對話中的每則訊息,傳送至少一個 SuggestFaqAnswersAnalyzeContent 要求。
智慧回覆 'SMART_REPLY' 系統會為對話中的每則訊息,傳送至少一個 SuggestSmartRepliesAnalyzeContent 要求。

WITH calculation AS
(
  SELECT
    COUNTIF(
      (
        SELECT COUNT(*)
        FROM UNNEST (sen.annotations) AS annotation
        WHERE
          annotation.type = 'ANNOTATION_TYPE' AND
          annotation.displayed = TRUE AND
          annotation.clicked = TRUE
      ) > 0
    ) AS numSentencesAtLeastOneClickedAndDisplayedAnnotation,
    COUNTIF(
      (
        SELECT COUNT(*)
        FROM UNNEST (sen.annotations) AS annotation
        WHERE
          annotation.type = 'ANNOTATION_TYPE' AND
          annotation.displayed = TRUE
      ) > 0
    ) AS numSentencesAtLeastOneDisplayedAnnotation,
  FROM BIGQUERY_TABLE,
  UNNEST (sentences) AS sen
)
SELECT
  numSentencesAtLeastOneClickedAndDisplayedAnnotation,
  numSentencesAtLeastOneDisplayedAnnotation,
  numSentencesAtLeastOneClickedAndDisplayedAnnotation / numSentencesAtLeastOneDisplayedAnnotation AS clickThroughRate
FROM calculation;

對話層級點閱率

對話層級點閱率適用於註解,代理可在每次對話中多次點按註解。通話服務專員必須主動傳送要求,建立對話層級的註解。

註解名稱 註解型別 條件
生成式知識輔助 (GKA) 'KNOWLEDGE_SEARCH' 系統會為對話中的每則訊息傳送至少一項 SearchKnowledge 要求。
主動生成知識輔助 'KNOWLEDGE_SEARCH' 系統會為對話中的每則訊息,傳送至少一個 SearchKnowledgeAnalyzeContent 要求。

特定功能的指標

這個部分會列出各項功能的專屬指標。

生成式知識輔助

生成式知識輔助 (GKA) 會根據您提供的文件資訊,回答服務專員的問題。如果找不到答案,GKA 會建議類似的問題並提供答案。這項功能會產生下列知識搜尋指標:

指標名稱 定義 計算方式
結果數量 所有對話中,單一代理程式提供的答案總數。
服務專員查詢來源比率 代理程式問題占問題總數的比例。 計算方式為:代理商問題數量除以問題總數。
建議的查詢來源比例 建議問題占問題總數的比例。 計算建議問題數量除以問題總數。
URI 點閱率 至少有一個 URI 獲得點擊的答案比例,除以答案總數。 計算方式:代理商點選 URI 的答案數量除以答案總數。
正面評價比率 答案獲得正面意見回饋的比例。 計算獲得正面意見回饋的答案數量,然後除以答案總數。
負評比率 答案負評數占答案總數的比例。 計算收到負面意見回饋的答案數量,然後除以答案總數。

主動提供生成式知識輔助

主動式生成知識輔助會根據目前的對話內容建議問題,並根據您提供的文件資訊提供答案。主動生成知識輔助功能不需要專員互動。這項功能會產生下列知識輔助指標:

指標名稱 定義 計算方式
結果數量 系統在所有對話中,為單一服務專員提供的建議總數。
URI 點閱率 至少有一個 URI 遭到點選的建議所占比例 (與提供的建議總數相比)。 計算方式:代理商點選 URI 的建議數除以提供的建議總數。
正面評價比率 建議獲得正面評價的比例 (正面評價數除以建議總數)。 計算獲得正面意見回饋的建議數量,然後除以建議總數。
負評比率 對建議內容給予負評的比例,以建議總數為分母。 計算收到負面意見回饋的建議數量,然後除以建議總數。

智慧回覆

本節列出與智慧回覆相關的指標。

有效點閱率

相較於一般點閱率指標,有效點閱率更能準確反映通話服務專員點按智慧回覆註解的頻率。以下查詢會擷取每位服務專員的回覆,以及專為該回覆製作並由專員點選的智慧回覆註解。接著,系統會計算代理程式使用智慧回覆建議草擬回覆的次數,然後將這個數字除以代理程式回覆的總次數。

WITH calculation AS (
  SELECT
    sen.sentence AS agentResponse,
    (
      # Get a list of effective smart replies that map to each agent response.
      SELECT ARRAY_AGG(JSON_QUERY(PARSE_JSON(JSON_VALUE(annotation.annotationRecord)), "$.reply"))
      FROM
        UNNEST (sentences) AS sen2,
        UNNEST (sen2.annotations) AS annotation
      WHERE
        annotation.type='SMART_REPLY' AND
        annotation.clicked=TRUE AND
        annotation.annotationRecord IS NOT NULL AND
        annotation.createTimeNanos >= (
          # Get the timestamp of the agent response that immediately precedes
          # the current agent response. The timestamp of the effective smart
          # reply must be greater than this timestamp.
          SELECT MAX(sen3.createTimeNanos)
          FROM UNNEST(sentences) AS sen3
          WHERE
            sen3.participantRole = 'HUMAN_AGENT' AND
            sen3.createTimeNanos < sen.createTimeNanos
        ) AND
        annotation.createTimeNanos <= sen.createTimeNanos
    ) AS effectiveSmartRepliesPerAgentResponse
  FROM BIGQUERY_TABLE,
  UNNEST (sentences) AS sen
  WHERE sen.participantRole = 'HUMAN_AGENT'
)
SELECT COUNTIF(ARRAY_LENGTH(effectiveSmartRepliesPerAgentResponse) > 0) / COUNT(agentResponse) AS effectiveCTR
FROM calculation;

編輯取樣率

服務專員可以選擇直接使用建議的智慧回覆,也可以編輯後再傳送給顧客。計算智慧回覆的回覆編輯率,可瞭解建議回覆的編輯頻率。以下查詢會擷取每個建議的智慧回覆,以及代理程式緊接在該智慧回覆後的回應。接著,系統會計算專員回覆中未包含相應智慧回覆的次數,然後將這個數字除以智慧回覆總數。

WITH calculation AS
(
  SELECT
    JSON_VALUE(PARSE_JSON(JSON_VALUE(annotation.annotationRecord), wide_number_mode=>'round'), "$.reply") AS smartReply,
    (
      # Get the agent response that immediately follows the smart reply.
      SELECT sen2.sentence
      FROM UNNEST (sentences) AS sen2
      WHERE sen2.createTimeNanos = (
        SELECT MIN(sen3.createTimeNanos)
        FROM UNNEST (sentences) AS sen3
        WHERE
          sen3.createTimeNanos > sen.createTimeNanos AND
          sen3.participantRole = 'HUMAN_AGENT'
      )
    ) AS agentResponseThatFollows,
  FROM BIGQUERY_TABLE,
  UNNEST (sentences) AS sen,
  UNNEST (sen.annotations) AS annotation
  WHERE
    annotation.type='SMART_REPLY' AND
    annotation.clicked=TRUE AND
    annotation.annotationRecord IS NOT NULL
)
SELECT COUNTIF(REGEXP_CONTAINS(agentResponseThatFollows, smartReply)) / COUNT(smartReply) AS editRate
FROM calculation;

摘要

本節列出摘要專用的指標。

  • GENERATOR_SUGGESTION_RESULT 類型會包含所有生成結果,包括摘要。
  • CONVERSATION_SUMMARIZATION_SUGGESTION 類型會包含舊版摘要。

生成摘要

以下是存取生成器摘要和代理程式對摘要所做編輯的範例查詢 (JSON 格式):

SELECT
IF
  (JSON_VALUE(annotation.annotationRecord) != '', 
   JSON_QUERY(PARSE_JSON(JSON_VALUE(annotation.annotationRecord)), "$.generatorSuggestion.summarySuggestion"),
   NULL) AS generator_summary,
IF
  (JSON_VALUE(annotation.detailedFeedback) != '',
   JSON_QUERY(PARSE_JSON(JSON_VALUE(annotation.detailedFeedback)), "$.summarizationFeedback.summaryText"),
   NULL) AS feedback,
FROM
  BIGQUERY_TABLE AS c,
  UNNEST(c.sentences) AS sentences,
  UNNEST(sentences.annotations) AS annotation
WHERE
  annotation.type = 'GENERATOR_SUGGESTION_RESULT'
  AND JSON_QUERY(PARSE_JSON(JSON_VALUE(annotation.annotationRecord)), "$.generatorSuggestion.summarySuggestion") IS NOT NULL
LIMIT
  10 ;

編輯距離

摘要編輯距離是衡量專員編輯的摘要與建議摘要的差異程度。這項指標與代理程式編輯建議摘要所花費的時間量相關。

  1. 查詢摘要和修訂後的摘要 (如有)。

  2. 因為通話服務專員可以提交摘要修訂內容,而不必將 clicked 布林值設為 true,因此無論 clicked 狀態為何,查詢摘要都會提交。如果專員摘要為空值,表示專員未修訂建議摘要,或未透過偏好的意見回饋管道將修訂後的摘要傳送至 Agent Assist。

  3. 使用偏好的編輯距離演算法,比較建議摘要與服務專員修訂的摘要,計算摘要編輯距離。舉例來說,Levenshtein 距離的插入、刪除和替換處置相同。

SELECT
  JSON_VALUE(PARSE_JSON(JSON_VALUE(annotation.annotationRecord)), "$.text") AS suggestedSummary,
IF
  (JSON_VALUE(annotation.detailedFeedback) != '', JSON_QUERY(PARSE_JSON(JSON_VALUE(annotation.detailedFeedback)), "$.summarizationFeedback.summaryText"), NULL) AS feedback,
FROM
  BIGQUERY_TABLE,
  UNNEST (sentences) AS sen,
  UNNEST (sen.annotations) as annotation
WHERE
  type='CONVERSATION_SUMMARIZATION_SUGGESTION';

編輯取樣率

如要計算摘要的編輯率,請將編輯距離除以編輯後摘要的字串長度。這項指標反映了代理程式編輯摘要的程度。這項編輯率沒有上限,但如果值大於或等於 1,表示生成的摘要品質不佳,可能應停用這項功能。

編輯百分比

編輯百分比是指由服務專員編輯建議摘要的百分比,而非直接使用建議摘要。計算方式是將代理商編輯的摘要數量除以建議摘要數量。如果這項指標的值接近 0,就代表模型品質良好。不過,如果數值接近 1,不一定代表模型品質不佳,因為編輯內容可能很小,但仍會計為建議摘要已編輯。

WITH
  summaryAndEdits AS (
  SELECT
    JSON_VALUE(PARSE_JSON(JSON_VALUE(annotation.annotationRecord)), "$.text") AS suggestedSummary,
  IF
    (JSON_VALUE(annotation.detailedFeedback) != '', JSON_QUERY(PARSE_JSON(JSON_VALUE(annotation.detailedFeedback)), "$.summarizationFeedback.summaryText"), NULL) AS editedSummary,
  FROM
    BIGQUERY_TABLE,
    UNNEST (sentences) AS sen,
    UNNEST (sen.annotations) AS annotation
  WHERE
    type='CONVERSATION_SUMMARIZATION_SUGGESTION' )
SELECT
  countif (suggestedSummary IS NOT NULL) AS totalSummaries,
  countif (editedSummary IS NOT NULL) AS editedSummaries,
  countif (editedSummary IS NOT NULL) / countif (suggestedSummary IS NOT NULL) AS editRate
FROM
  summaryAndEdits;