对话数据以转录(智能回复)和转录加注解数据(总结)的形式接受。为了在运行时使用智能回复和总结功能,您必须提供自己的对话数据。
本页面将指导您完成使用公开数据集以及设置数据格式以上传到 Cloud Storage 所需的步骤。您必须以 JSON 格式的文本文件形式提供对话数据。
智能回复数据格式
智能回复可以与任何 Agent Assist 功能搭配使用,也可以作为独立功能使用。如需实现智能回复,您必须向 Agent Assist 提供对话数据。
总结数据格式
总结功能可以与任何 Agent Assist 功能搭配使用,也可以单独使用。如需实现总结功能,您必须向 Agent Assist 提供包含注释的对话数据。注解是关联的对话转写内容的摘要。注释用于训练模型,您可以使用该模型在每次与最终用户对话结束后为代理生成摘要。
设置注释格式
Agent Assist 总结自定义模型使用对话数据集进行训练。对话数据集包含您自己上传的转录数据和注解数据。
在开始上传数据之前,您必须确保每个对话转录内容都采用 JSON 格式,具有关联的注解,并且存储在 Google Cloud Storage 存储桶中。
如需创建注释,请将预期 key 和 value 字符串添加到数据集中与每段对话关联的 annotation 字段中。为获得最佳效果,注解训练数据应遵循以下准则:
- 建议的最小训练注释数量为 1000。强制执行的最小值是 100。
- 训练数据不应包含个人身份信息。
- 注释不应包含任何有关性别、种族或年龄的信息。
- 注释不得使用有害或亵渎性语言。
- 注释不应包含任何无法从相应对话转录中推断出的信息。
- 每条注解最多可包含 3 个部分。您可以自行选择版块名称。
- 注释应使用正确的拼写和语法。
以下示例展示了包含关联注解的对话转写的格式:
{
"entries": [
{
"text": "How can I help?",
"role": "AGENT"
},
{
"text": "I cannot login",
"role": "CUSTOMER"
},
{
"text": "Ok, let me confirm. Are you experiencing issues accessing your account",
"role": "AGENT"
},
{
"text": "Yes",
"role": "CUSTOMER"
},
{
"text": "Got it. Do you still have access to the registered email for the account",
"role": "AGENT"
},
{
"text": "Yes",
"role": "AGENT"
},
{
"text": "I have sent an email with reset steps. You can follow the instructions in the email to reset your login password",
"role": "AGENT"
},
{
"text": "That's nice",
"role": "CUSTOMER"
},
{
"text": "Is there anything else I can help",
"role": "AGENT"
},
{
"text": "No that's all",
"role": "CUSTOMER"
},
{
"text": "Thanks for calling. You have a nice day",
"role": "AGENT"
}
],
"conversation_info": {
"annotations": [
{
"annotation": {
"conversation_summarization_suggestion": {
"text_sections": [
{
"key": "Situation",
"value": "Customer was unable to login to account"
},
{
"key": "Action",
"value": "Agent sent an email with password reset instructions"
},
{
"key": "Outcome",
"value": "Problem was resolved"
}
]
}
}
}
]
}
}
对话转录数据
文本会话数据必须以 JSON 格式文件提供,其中每个文件包含单个对话的数据。下文介绍了必需的 JSON 格式。
对话
对话数据的顶级对象。
| 字段 | 类型 | 说明 |
|---|---|---|
| conversation_info | ConversationInfo { } | 可选。对话的元数据。 |
| entries | Entry [ ] | 必需。按时间顺序排序的对话消息。 |
ConversationInfo
对话的元数据。
| 字段 | 类型 | 说明 |
|---|---|---|
| 类别 | Category [ ] | 可选。对话数据的自定义类别。 |
类别
对话数据类别。如果您提供包含对话数据的类别,则这些类别将用于标识对话中的主题。如果您没有提供类别,系统将根据内容自动对对话进行分类。
| 字段 | 类型 | 说明 |
|---|---|---|
| display_name | 字符串 | 必需。类别的显示名。 |
条目
单个对话消息的数据。
| 字段 | 类型 | 说明 |
|---|---|---|
| text | 字符串 | 必需。此对话消息的文本。 所有文本都应大写。如果文本中的所有字母均为大写或小写,则模型质量可能会受到显著影响。如果此字段留空,将返回错误。 |
| user_id | 整数 | 可选。标识对话参与者的数字。每个参与者应该有一个 user_id,并在他们参与多个对话时重复使用。 |
| 角色 | 字符串 | 必需。对话参与者角色。“AGENT”或“CUSTOMER”之一。 |
| start_timestamp_usec | 整数 | 如果对话仅用于常见问题解答辅助、文章建议和总结,则为可选;否则为必需。此轮对话开始时的时间戳(以微秒为单位)。 |
示例
以下示例展示了对话数据文件。
{
"conversation_info":{
"categories":[
{
"display_name":"Category 1"
}
]
},
"entries": [
{
"start_timestamp_usec": 1000000,
"text": "Hello, I'm calling in regards to ...",
"role": "CUSTOMER",
"user_id": 1
},
{
"start_timestamp_usec": 5000000,
"text": "Yes, I can answer your question ...",
"role": "AGENT",
"user_id": 2
},
...
]
}
将对话上传到 Cloud Storage
您必须在 Google Cloud Platform 项目包含的 Cloud Storage 存储桶中提供对话数据。创建存储桶时,请注意以下几点:
- 务必选择用于 Dialogflow 的 Google Cloud Platform 项目。
- 使用 Standard 存储类别。
- 将存储分区位置设置为离您最近的位置。您在提供对话数据时需要使用位置 ID(例如
us-west1),因此请记下您的选择。 - 在提供对话数据时,您还需要使用存储桶名称。
按照 Cloud Storage 快速入门中的说明创建存储分区并上传文件。