您的代理经过训练后,Dialogflow 会使用您的训练数据专门该代理构建机器学习模型。此训练数据主要由意图、意图训练短语和代理中引用的实体组成;实际上可将其用作机器学习数据标签。但是,代理模型是使用参数提示响应、代理设置以及与代理关联的许多其他数据构建的。
每次更改代理时,都应确保代理经过训练,然后再尝试使用。训练可能会自动或手动执行,具体取决于您的代理设置。
您还可以使用训练工具来分析和导入实际对话数据,以及改进训练数据。
草稿代理自动训练
默认情况下,每次通过控制台更新并保存代理时,系统将自动为草稿代理执行代理训练。弹出式对话框将显示此训练的状态。
但是,使用 API 更新代理不会触发自动训练。
草稿代理手动训练
您可以更新代理机器学习设置,以停用草稿代理的自动训练。
如果您的代理具有 780 个以上的意图,或者您已停用自动训练设置,则必须手动执行训练:
要从控制台手动训练代理,请点击机器学习设置中的训练按钮。
如需使用 API 手动训练代理,请对代理类型调用 train
方法。
代理版本自动训练
每当创建新的代理版本时,系统都会自动训练新的代理版本。
如需通过控制台创建新的代理版本,请点击“环境”标签页中的发布版本按钮。
如需使用 API 创建新的代理版本,请调用版本类型的 create
方法以创建新的代理版本。
训练工具
训练工具用于查看发送到代理的最终用户输入,以及改进训练数据。使用此工具,您可以执行以下操作:
- 查看实际最终用户输入以及针对每轮对话与当前代理模型匹配的意图。
- 将这些对话中的最终用户表述添加到匹配的意图、不同的意图或后备意图的训练短语中。
- 导入您通过实际对话准备或捕获的最终用户表述。
该工具使用代理历史记录数据来加载对话,因此必须启用互动日志记录才能使用该工具。训练工具仅显示最终用户表述。如需查看代理和最终用户对话数据,请参阅更完整的代理历史记录。
如需打开训练工具,请执行以下操作:
- 前往 Dialogflow ES 控制台。
- 在左侧边栏菜单顶部附近选择您的代理。
- 点击左侧边栏菜单中的训练。
对话列表
当您打开该工具时,它会显示对话列表。这是按时间倒序排列的近期对话列表。该列表中的每行都提供了对话摘要。 下表介绍了每个界面元素:
界面元素 | 说明 |
---|---|
对话 | 对话中的第一句最终用户表述。 |
日期 | 对话发生或导入的日期。 |
refresh | 将某一对话用于更新训练数据(如下所述)时,该行的状态指示器会显示一个绿色对勾标记。 |
训练视图
点击对话列表中的某行后,系统会在训练视图中打开相应对话。训练视图会显示对话回合列表,并提供用于将这些数据添加到训练数据中的控制措施。
在修改显示的数据或点击右侧的任务按钮时,您将创建排队等待保存的训练数据更新任务。完成任务创建后,点击批准按钮,以执行所有加入队列的任务。获得批准后,您应手动训练代理。
下表介绍了每个界面元素:
界面元素 | 说明 |
---|---|
日期 | 对话发生或导入的日期。 |
请求数 | 会话的行数。 |
无匹配 | 没有意图匹配的行数。 |
用户表述 | 行的最终用户表述。 |
Intent | 此行的意图与当前代理模型匹配。您可以点击链接,将关联的意图更改为新的或现有的意图。 |
check | 将任务加入队列,以将行的最终用户表述作为训练短语添加到当前选定的意图中。当任务加入队列时,图标会变为绿色。 |
block | 将任务加入队列,以将行的最终用户表述作为训练短语添加到默认后备意图中。这将创建一个反例。当任务加入队列时,图标会变为橙色。 |
delete | 将任务加入队列,以删除行。当任务加入队列时,图标会变为红色。 |
批准 | 针对所有行执行已加入队列的任务。 |
注释
在训练视图中查看对话时,最终用户表述会将匹配的实体显示为突出显示的注释。如需添加或修改注释,请执行以下操作:
- 点击相应注释或选择要添加注释的字词。
- 从菜单中选择现有实体。
导入对话
您可以将已准备或捕获的对话数据文件导入训练工具。导入对话可用于改进现有代理。如需上传会话,请点击页面顶部的上传按钮。然后,您可以分析此数据以添加到训练数据中(如上所述)。
下面介绍了文件内容格式、其限制和结果:
- 每个上传的文件都会在训练工具中生成一个对话。
- 请求不会发送到检测意图 API,因此不会激活任何上下文,也不会匹配任何意图。
- 单个文本文件或 zip 归档文件(最多可包含 10 个文本文件)。
- 一次上传大小不得超过 3 MB。
- 这些文件应仅包含以换行符分隔的最终用户表述。
- 理想情况下,文件应仅包含可用作训练短语的数据。
- 最终用户表述的顺序并不重要。
下面是一个示例文件:
I want information about my account. What is my checking account balance? How do I transfer money to my savings account?
限制
- 训练工具仅在
global
区域可用。 - 训练工具不会针对意图匹配考虑机器学习分类阈值设置。即使代理模型未更改,您也可能会在运行时和训练工具中看到不同匹配的意图。
- 包含必需参数值的最终用户输入可能与训练工具中的预期意图不匹配,但在运行时正确匹配。在以下情况下可能会存在此限制:
- 意图中没有带注解的训练短语。
- 输入内容与训练短语有明显差异。
最佳做法
在开发的各个阶段都使用训练工具
在代理开发的各个阶段都使用训练工具,并在每个阶段优化训练数据:
- 在将代理发布到生产环境之前,先向一小部分用户进行测试。
- 在将代理发布到生产环境后不久,检查实际对话是否按预期运行。
- 每当对代理进行重大更改时,请检查新更改是否按预期运行。
- 定期针对生产环境中的代理运行该工具,以执行常规分析。
导入质量数据
以下内容通常可以作为有用的数据来源:
- 客户与客服人员的对话日志。
- 在线客户服务对话(电子邮件、论坛、常见问题解答)。
- 客户在社交媒体上咨询的问题。
您应该避免以下类型的数据:
- 较长形式的非对话型最终用户表述。
- 与代理中的任何意图无关的最终用户表述。
- 非最终用户话语的日志(例如,客服人员的回复)。