将对话记录导出到 BigQuery

您可以将对话记录导出到 BigQuery。配置完成后,所有实时对话记录都会写入 BigQuery 表。这为您提供了高级分析工具,可帮助您调试和改进代理,并发现对话数据中的模式。

限制

存在以下限制:

  • 每个对话最多可导出 500 轮。

跨项目权限

如果您的 Dialogflow 代理和 BigQuery 数据不在同一项目中,则与 Dialogflow Google Cloud 项目关联的服务账号还必须具有 BigQuery Google Cloud 项目中 BigQuery 数据集的 roles/bigquery.dataEditor IAM 权限。

服务账号格式:service-<dialogflow-project-number>@gcp-sa-dialogflow.

在 Dialogflow 中配置导出的用户必须拥有 BigQuery 项目的权限。否则,BigQuery 项目不会作为选项显示在 Dialogflow 控制台中。

用户在 Dialogflow 中查看 BigQuery 项目所需的最低权限为 resourcemanager.projects.get。或者,您也可以分配以下 Google Cloud 预定义角色之一,这些角色包含此权限,但不要求用户有权访问 BigQuery 数据集:roles/browser或roles/bigquery.metadataViewer。

表说明

表的每一行都包含一轮对话,其中包含以下列:

列 类型 说明
project_id STRING 项目 ID。
agent_id STRING 代理 ID。
conversation_name STRING 会话的完全限定资源名称。
turn_position INTEGER 对话轮数。
request_time 时间戳 对话轮次的时间。
language_code STRING 语言标记。
请求 JSON 检测 intent 请求。
Response JSON 检测 intent 响应。
partial_responses JSON 只答完一部分的回答(如果适用)。
derived_data JSON 此对话轮次的其他元数据。
conversation_signals JSON NLU 相关分析数据。如需了解 JSON 架构,请参阅 ConversationSignals。
bot_answer_feedback JSON 回答反馈(如有)。

配置

如需配置对话记录导出,请执行以下操作:

  1. 确保已启用对话记录。
  2. 按照 BigQuery 数据集创建指南创建数据集。记下数据集名称,因为您在下一步中会用到它。
  3. 按照 BigQuery 表创建指南,使用 SQL 架构定义创建表。使用以下 SQL 语句进行创建:

    CREATE TABLE <your_dataset_name>.dialogflow_bigquery_export_data(
      project_id STRING,
      agent_id STRING,
      conversation_name STRING,
      turn_position INTEGER,
      request_time TIMESTAMP,
      language_code STRING,
      request JSON,
      response JSON,
      partial_responses JSON,
      derived_data JSON,
      conversation_signals JSON,
      bot_answer_feedback JSON
    );
    
  4. 配置您的 代理设置 ,以启用 BigQuery Export,并提供上面创建的数据集和表名称。