本指南介绍了如何使用 Dialogflow CX 控制台中的内置评估功能来验证智能体的功能,并防止更新后出现任何回归。Dialogflow CX 提供了 开箱即用的指标 ,可帮助您评估智能体的性能。
除了延迟时间之外,所有指标都需要至少一个测试用例,即 Dialogflow CX 用来与智能体的性能进行比较以计算其性能的“黄金 响应”。每个测试用例都可以在 环境的上下文中进行衡量,这样您就可以指定在智能体的性能评估中使用不同版本的剧本、 流和工具。
(可选)创建环境
创建环境是可选操作。如果您不创建环境,则默认值为 Draft 。
- 如需创建环境,请点击左侧菜单中的环境 ,然后 选择 + 创建 。
- 选择您要用于衡量智能体性能的剧本、流和工具的版本。
- 点击保存 以保存环境。
创建测试用例
您可以选择从对话历史记录中的现有对话创建测试用例,创建新对话并将其保存为测试用例,或将测试用例导入 Dialogflow CX。
在控制台中创建测试用例
- 在左侧菜单中,前往对话历史记录 。
- 如需创建新对话,请激活智能体(例如,拨打智能体的手机号码),以便在对话历史记录中创建对话。 如果您有想要用作测试用例的对话,请选择该对话。
- 查看对话并验证智能体响应、调用的工具以及每个响应的声音。如果您满意,请点击窗口右上角的创建测试用例 。
- 为测试用例提供显示名,并指定您对对话级事件的预期。这可以包括您希望在对话中调用的工具、剧本和流。点击 + 添加预期 以添加更多预期。如需按列出的顺序(从上到下)评估预期,请切换顺序验证 。
- 点击保存 以保存测试用例。
上传测试用例
- 测试用例必须采用以下 CSV 格式。
- 如需将测试用例上传到系统,请点击文本用例菜单顶部的导入 。
- 在弹出的菜单中,选择本地存储的文件,或输入其 Cloud Storage 存储桶的路径。
- 您的测试用例现在应会显示在测试用例菜单中。
运行测试用例
- 点击左侧菜单中的测试用例 ,然后选择您要与智能体进行比较的测试用例。这可以是单个测试用例,也可以是多个测试用例。
- 点击运行所选测试用例 。
测试结果
- 访问结果:在测试用例视图中,系统会在每个
测试用例完成后显示最新的测试运行执行结果:
- 语义相似度:衡量智能体的对话 与“黄金响应”(测试用例中的响应)的相似程度。您必须提供黄金响应才能获得此指标。值可以是 0(不一致)、0.5(有些一致)或 1(非常一致)。
- 工具调用准确率:一个值,反映了
对话中包含在对话期间预期调用的工具的准确程度。
值的范围为 0-1。如果对话中未使用任何工具,则准确率将显示为
--(不适用)。 - 延迟时间:智能体处理最终用户 请求并响应用户所用的总时间(用户 话语结束与智能体响应开始之间的时间差)。单位为秒。
- 更新黄金测试用例:如果最新运行反映了因智能体更新而发生的预期更改,您可以点击“另存为黄金测试用例”以覆盖原始测试用例。
- 过滤和排序结果:您可以按 生成的任何指标或按特定环境过滤和排序评估结果。这有助于跟踪每次更新后的性能变化。
批量导入测试用例的格式
本部分介绍了如何设置 CSV 文件的格式,以便为智能体导入批量测试用例。系统会读取此文件以创建一组结构化的测试用例,每个测试用例包含一个或多个对话回合。
单个测试用例可以跨 CSV 文件中的多行。测试用例的第一行定义了其整体属性(例如名称和语言)。 该测试用例的每个后续行定义了对话中的单个来回回合(用户说些什么,智能体应回复)。
标题
CSV 文件 必须 将标题行作为第一行。此标题定义了每一列中的数据。
必需标题
两个必需标题必须按所示顺序排列。新测试用例的第一行都需要这两个标题。您可以通过提供新的 DisplayName 和 LanguageCode 值来开始新的测试用例。
DisplayName:测试用例的名称。此字段仅针对新测试用例的第一行填写。LanguageCode:测试的语言代码(例如en、en-US、es)。
可选标题
您可以添加以下任何可选标题,为测试用例提供更多详细信息。它们可以位于前两个必需列之后的任何位置。
测试用例元数据
- 标签:用于整理测试的以空格分隔的标签(例如“payments onboarding”)。
- 备注:自由文本备注或测试用例用途的说明。
TestCaseConfigV2.StartResource:指定用于启动测试的流或剧本。
用户输入
UserInput.Input.Text:用户在给定回合中“输入”的文本。UserInput.InjectedParameters:在回合开始时注入到对话中的参数,格式为 JSON 字符串。
智能体输出
AgentOutput.QueryResult.ResponseMessages.Text:您断言智能体回复的确切文本。AgentOutput.QueryResult.Parameters:您断言智能体提取的参数,格式为 JSON 字符串。
预期
OrderedExpectations.ExpectedFlow:您希望在回合后处于活跃状态的流。OrderedExpectations.ExpectedIntent:您希望在回合中匹配的意图。OrderedExpectations.ExpectedAgentReply:您希望智能体回复的文本。可以是完整回复的子字符串。OrderedExpectations.ExpectedOutputParameter:您希望在回合结束时设置的参数,格式为 JSON 字符串。
音频元数据
AudioTurnMetadata:基于音频的测试的元数据,格式为 JSON 字符串。
构建测试用例
测试用例按数据行整理。
- 如需开始新的测试用例,请填写其元数据行。
- 规则:此行的
DisplayName列中必须有一个值。 - 操作:输入
DisplayName和LanguageCode的值。您还可以在此行中添加标签、备注或TestCaseConfigV2.StartResource。 对话回合列(例如UserInput.Input.Text)在此行中应留空。如果使用标签,请用空格分隔每个标签。示例:tag1 tag2 tag3。如果使用TestCaseConfigV2.StartResource,请在资源名称前添加start_flow:或start_playbook:。示例:start_flow:projects/p/locations/l/agents/a/flows/f。
- 规则:此行的
- 在刚刚开始的测试用例下方立即添加新行,为该测试用例添加对话回合。
- 规则:
DisplayName列必须为空。这会告知解析器,这是一个属于上一个测试用例的回合。 - 操作:填写描述此回合的用户操作和
预期智能体响应的列,例如
UserInput.Input.Text和OrderedExpectations.ExpectedAgentReply。对于需要 JSON 的列,您必须提供有效的 JSON 对象作为字符串。示例:{"param_name": "param_value", "number_param": 123}。
- 规则: