您可以将对话记录导出到 BigQuery。配置完成后,所有实时对话记录都会写入您的 BigQuery 表中。这为您提供了高级分析工具,可帮助您调试和改进代理,并发现对话数据中的模式。
限制
存在以下限制:
- 每次对话最多可导出 500 个对话轮次。
跨项目权限
如果您的 Dialogflow 代理和 BigQuery 数据不在同一项目中,则与您的 Dialogflow Google Cloud 项目关联的服务账号还必须具有 BigQuery Google Cloud 项目中 BigQuery 数据集的 roles/bigquery.dataEditor IAM 权限。
服务账号格式:service-<dialogflow-project-number>@gcp-sa-dialogflow.iam.gserviceaccount.com
在 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 | 检测意图请求。 |
| Response | JSON | 检测意图响应。 |
| partial_responses | JSON | 部分响应(如果适用)。 |
| derived_data | JSON | 相应对话轮次的其他元数据。 |
| conversation_signals | JSON | 与 NLU 相关的分析数据。如需查看 JSON 架构,请参阅 ConversationSignals。 |
| bot_answer_feedback | JSON | 如果提供了反馈,请回答反馈。 |
配置
如需配置对话记录导出,请执行以下操作:
- 确保已启用对话记录。
- 按照 BigQuery 数据集创建指南创建一个数据集。 记下数据集名称,因为您在下一步中需要用到该名称。
按照 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 );配置代理设置,以启用 BigQuery 导出功能,并提供上面创建的数据集和表名称。