对话数据接受以转写形式(智能回复)和转写数据加注解数据(总结)的形式。您可以选择性地使用 Agent Assist 提供的对话数据和演示模型来测试功能或集成,而无需提供您自己的数据。为了在运行时使用智能回复和摘要功能,您必须提供自己的对话数据。
本页将指导您完成使用公共数据集以及设置数据格式以便上传到 Cloud Storage 所需的步骤。您必须以 JSON 格式的文本文件形式提供对话数据。
智能回复数据格式
智能回复可以与任何客服助手功能搭配使用,也可以作为一项独立功能使用。如需实现智能回复,您必须向 Agent Assist 提供对话数据。
Agent Assist 提供了可用于训练模型的对话数据示例,以及一个演示模型和许可名单。您可以使用这些资源来创建对话配置文件并测试功能,而无需提供自己的数据。如果您要提供自己的数据,则必须采用指定的格式。
使用智能回复示例对话数据
示例对话数据集派生自外部来源,并存储在 Google Cloud Storage 存储桶中。数据包含涉及六个领域的面向任务的对话:“预订”“餐厅”“酒店”“景点”“出租车”和“火车”。如需使用此数据集训练您自己的模型,请按照相应步骤使用 Agent Assist 控制台创建对话数据集。在对话数据字段中,输入 gs://smart_messaging_integration_test_data/*.json
以使用测试数据集。如果您要发出直接 API 调用,而不是使用控制台,则可以将 API 指向上述 Cloud Storage 存储桶,以创建对话数据集。
使用演示版智能回复模型和许可名单
如需使用控制台测试演示版智能回复模型和许可名单(无需数据集),请前往 Agent Assist 控制台,然后点击“智能回复”功能下的开始使用按钮。控制台教程提供了使用您自己的数据、提供的数据或演示模型的选项。
如果您直接调用 API(而非使用控制台),则可以在以下位置找到模型和许可名单:
- 模型:
projects/ccai-shared-external/conversationModels/c671dd72c5e4656f
- 许可名单:
projects/ccai-shared-external/knowledgeBases/smart_messaging_kb/documents/NzU1MDYzOTkxNzU0MjQwODE5Mg
如需测试功能,我们建议您首先使用以下最终用户消息来触发响应:
- “您能找到一个位于东部比较贵的住宿地点吗?”
- “我正在寻找一家比较贵的餐厅,供应泰国食物。”
- “您好,我需要一家酒店,在剑桥以北,可提供免费 Wi-Fi。”
总结数据格式
您可以将摘要功能与任何 Agent Assist 功能搭配使用,也可以将其作为一项独立功能使用。如需实现摘要功能,您必须向 Agent Assist 提供包含注释的对话数据。注解是对关联对话转写内容的摘要。注释用于训练模型,您可以使用该模型在与最终用户的每次对话结束时为客服人员生成摘要。
使用示例总结对话数据和演示模型
Agent Assist 还提供了带注释的对话数据示例,可供您用于训练模型。如果您想先测试“总结”功能,然后再设置自己的数据集格式,建议您选择此选项。测试数据集位于以下 Cloud Storage 存储桶中:gs://summarization_integration_test_data/data
。如果您使用示例数据,则可以使用控制台或 API 训练总结模型。在“数据集 URI”字段中输入 gs://summarization_integration_test_data/data/*
以使用示例数据集。
如需测试演示版摘要模型(无需数据集),请前往 Agent Assist 控制台,然后点击“摘要”功能下的开始使用按钮。控制台教程中提供了使用您自己的数据、提供的数据或演示模型的选项。
设置注释格式
Agent Assist 摘要自定义模型是使用对话数据集训练的。对话数据集包含您自己上传的转写和注解数据。
在开始上传数据之前,您必须确保每份对话转写均采用 JSON
格式、具有关联的注解,并且存储在 Google Cloud Storage 存储桶中。
如需创建注释,请将预期的 key
和 value
字符串添加到与数据集中每个对话关联的 annotation
字段。为了获得最佳结果,注解训练数据应遵循以下准则:
- 建议的训练注释数量下限为 1,000 个。强制执行的最小数量为 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 快速入门中的说明创建存储分区并上传文件。