使用测试工作台加速Amazon Lex聊天机器人的开发生命周期
Amazon Lex很高兴宣布发布Test Workbench,这是一个新的机器人测试解决方案,提供了简化和自动化机器人测试过程的工具。在机器人开发过程中,测试是开发人员检查机器人是否满足特定要求、需求和期望的阶段,通过识别系统中的错误、缺陷或漏洞来检测机器人是否满足特定要求、需求和期望。测试有助于验证机器人在多个方面的性能,如会话流程(理解用户查询并准确回答)、意图重叠处理和跨模态的一致性。然而,测试往往是手动的、容易出错的和非标准化的。Test Workbench通过允许聊天机器人开发团队使用一致的方法生成、维护和执行测试集,避免自定义脚本和特定集成,从而标准化自动化测试管理。在本文中,您将学习到Test Workbench如何简化机器人语音和文本模态的自动化测试,并为单次话语输入和多轮对话提供准确性和性能指标,如音频转录、意图识别和插槽分辨率。这使您能够快速识别机器人改进的领域,并保持一致的基准来测量准确性,以观察由于机器人更新而导致的任何准确性回归。
Amazon Lex是一项完全托管的服务,用于构建会话式语音和文本接口。Amazon Lex可帮助您在网站、联系中心服务和消息通道上构建和部署聊天机器人和虚拟助手。Amazon Lex机器人有助于提高交互式语音响应(IVR)的生产力,自动化简单的任务,并在整个组织中推动运营效率。Amazon Lex的Test Workbench标准化和简化了机器人测试生命周期,这对于提高机器人设计至关重要。
Test Workbench的功能
Amazon Lex的Test Workbench包括以下功能:
- 自动从机器人的会话日志中生成测试数据集
- 上传手动构建的测试集基线
- 执行单个输入或多轮对话的端到端测试
- 测试机器人的音频和文本模态
- 查看聚合和钻取度量机器人维度:
- 语音转录
- 意图识别
- 插槽分辨率(包括多值插槽或复合插槽)
- 上下文标签
- 会话属性
- 请求属性
- 运行时提示
- 时间延迟(以秒为单位)
前提条件
要测试此功能,您应该具备以下条件:
- 具有管理员访问权限的AWS帐户
- 通过Amazon Lex控制台导入的样本零售机器人(有关更多信息,请参阅导入机器人)
- 测试集源,可以从以下两个地方获取:
- 为机器人启用对话日志以存储机器人交互,或
- 可以按照本文提供的说明导入样本零售测试集
此外,您应该具备以下服务和功能的知识和理解:
- Amazon Lex
- Amazon CloudWatch
- AWS身份和访问管理(IAM)
创建测试集
要创建测试集,请完成以下步骤:
- 在Amazon Lex控制台中,选择导航窗格中的Test workbench,然后选择Test sets。
您可以查看现有测试集的列表,包括名称、描述、测试输入数量、模态和状态等基本信息。在下面的步骤中,您可以选择从与机器人关联的会话日志中生成测试集,或以CSV文件格式上传现有的手动构建测试集。
- 选择创建测试集。
- 从对话日志生成测试集可以让您执行以下操作:
- 包括机器人在CloudWatch中的真实多轮对话
- 包括音频日志并进行考虑真实语音细节、背景噪音和口音的测试
- 加快测试集的创建
- 上传手动构建的测试集可以让您执行以下操作:
- 测试没有生产数据的新机器人
- 对现有机器人进行回归测试,以检查任何新的或修改后的意图、插槽和对话流程
- 测试精心制作的详细场景,指定会话属性和请求属性
生成测试集,完成以下步骤。如果要上传手工创建的测试集,请跳至步骤 7。
- 选择 生成基准测试集。
- 选择 机器人名称、机器人别名和 语言 的选项。
- 对于 时间范围,为日志设置时间范围。
- 对于 现有的 IAM 角色,选择一个角色。
确保 IAM 角色能够授予您从对话日志中检索信息的访问权限。有关创建 IAM 角色的信息,请参阅创建 IAM 角色以创建具有适当策略的 IAM 角色。
- 如果您想使用手动创建的测试集,请选择 上传文件到此测试集。
- 对于 上传文件到此测试集,请从以下选项中选择:
- 选择 从 S3 存储桶上传,以从 Amazon Simple Storage Service (Amazon S3) 存储桶上传 CSV 文件。
- 选择 上传文件到此测试集,以从计算机上传 CSV 文件。
您可以使用本帖提供的样本测试集。有关模板的更多信息,请选择页面上的 CSV 模板 链接。
- 对于 模态,选择测试集的模态,即 文本 或 音频。
Test Workbench 为音频和文本输入格式提供测试支持。
- 对于 S3 位置,输入结果将存储的 S3 存储桶位置。
- 可选地,选择一个 AWS 密钥管理服务 (AWS KMS) 密钥来加密输出转录。
- 选择 创建。
您新创建的测试集将在测试集页面中列出,其中包含以下状态之一:
- 准备进行注释 – 对于从 Amazon Lex 机器人对话日志生成的测试集,注释步骤用作手动门控机制,以确保质量测试输入。通过为每个测试行项目的预期意图和预期插槽注释值,您指示该行的“基本事实”。从机器人运行的测试结果将被收集并与基本事实进行比较,以标记测试结果是否通过。然后,该行级别比较允许创建聚合度量。
- 准备测试 – 这表示测试集已准备好针对 Amazon Lex 机器人执行。
- 验证错误 – 上传的测试文件会检查错误,例如超过最大支持长度、意图名称中的无效字符或包含音频文件的无效 Amazon S3 链接。如果测试集处于 验证错误 状态,请下载显示验证详细信息的文件,以逐行查看测试输入问题或错误。一旦解决了这些问题,您可以手动将已更正的测试集 CSV 上传到测试集中。
执行测试集
测试集与机器人解耦。相同的测试集可以在未来针对不同的机器人或机器人别名进行执行,以满足您的业务用例的发展需求。要报告机器人与基线测试数据的性能指标,请完成以下步骤:
- 导入示例机器人定义并构建机器人(参见导入机器人以获取指导)。
- 在Amazon Lex控制台中,选择测试集。
- 选择您已验证的测试集。
在此处,您可以查看有关测试集和导入的测试数据的基本信息。
- 选择执行测试。
- 选择适当的机器人名称、机器人别名和语言选项。
- 对于测试类型,选择语音或文本。
- 对于端点选择,选择流式或非流式。
- 选择验证不一致性以验证您的测试数据集。
在执行测试集之前,您可以验证测试覆盖范围,包括识别测试数据集中存在但机器人中不存在的意图和插槽。这种早期警告有助于设置测试人员对意外测试失败的预期。如果检测到测试数据集和机器人之间的不一致性,则执行测试页面将更新并显示查看详细信息按钮。
测试数据集中发现的意图和插槽但不在机器人别名中的列表如下所示。
- 在验证不一致性后,选择执行以运行测试。
审查结果
执行测试集后生成的性能指标有助于您识别需要改进的机器人设计领域,并有助于加快机器人开发和交付以支持您的客户。测试工作台提供有关端到端对话和单行输入级别的意图分类和插槽分辨率的见解。已完成的测试运行以时间戳的形式存储在您的S3存储桶中,可用于未来的比较审查。
- 在Amazon Lex控制台中,选择测试结果。
- 选择要查看结果的测试结果ID。
在下一页中,测试结果将包含四个主要标签的结果分解:总体结果、对话结果、意图和插槽结果和详细结果。
总体结果
总体结果选项卡包含三个主要部分:
- 测试输入分解 — 显示测试集中端到端对话和单个输入话语的总数的图表。
- 单个输入分解 — 显示已通过或未通过单个输入的数量的图表。
- 对话分解 — 显示已通过或未通过多轮输入的数量的图表。
对于以音频模式运行的测试集,提供语音转录图表,以显示单个输入和对话类型的已通过或未通过的语音转录次数。在音频模式下,单个输入或多轮对话可能会通过语音转录测试,但在总体端到端测试中失败。这可能是由于插槽解析或意图识别问题造成的。
对话结果
测试工作台可帮助您深入挖掘可以归因于特定意图或插槽的对话故障。对话结果选项卡分为三个主要区域,涵盖测试集中使用的所有意图和插槽:
- 对话通过率 — 可视化显示可能导致对话失败的意图和插槽的表格。
- 对话意图失败指标 — 如果有任何情况,则显示测试集中表现最差的前五个意图的柱形图。
- 对话插槽失败指标 — 如果有任何情况,则显示测试集中表现最差的前五个插槽的柱形图。
意图和插槽结果
意图和插槽结果选项卡为机器人维度(例如意图识别和插槽解析)提供了钻取指标。
- 意图识别指标 — 显示意图识别成功率的表格。
- 插槽解析指标 — 显示每个意图的插槽解析成功率的表格。
详细结果
您可以通过详细结果选项卡访问执行的测试运行的详细报告。显示一个表格,用于显示测试集中的实际转录、输出意图和插槽值。该报告可以下载为CSV文件进行进一步分析。
行级输出提供了帮助改进机器人设计和提高准确性的见解。例如,可以将被错认或遗漏的品牌词汇添加到意图的自定义词汇表或作为意图下的话语。
为了进一步提高对话设计,您可以参考这篇文章,概述使用ML创建一个能够准确理解客户的机器人的最佳实践。
结论
在本文中,我们介绍了Amazon Lex的测试工作台,这是一种本地功能,标准化了聊天机器人自动测试流程,并允许开发人员和对话设计师通过机器人设计和开发的迭代快速进行。
我们期待听到您如何使用Amazon Lex的这个新功能,并欢迎反馈!如有任何问题、错误或功能请求,请通过AWS re:Post for Amazon Lex或您的AWS支持联系人与我们联系。
了解更多,请参阅Amazon Lex常见问题解答和Amazon Lex V2开发者指南。