如代理设计页面所述,代理的设计可能会极大地影响代理的质量。为帮助代理设计人员创建高质量的代理,Dialogflow 提供了一项验证功能。只要执行并完成代理训练,代理验证结果就会自动生成。您可以通过 Dialogflow 控制台或 API 访问验证结果。
验证结果仅供参考。它们提供了一个错误列表,您应该更正这些错误,以改进代理的质量和性能。如果代理存在错误,您可以选择忽略它们并启动代理。代理验证不会以任何方式影响代理的行为。
以下是您可能会看到的一些示例结果:
- 意图的训练语句过于相似。
- 意图中包含的某个参数未在足够多的训练短语中使用。
- 没有针对后备意图的反例。
- 此文本在某些训练语句中包含注释,但在其他训练语句中则不包含。
启用和停用自动验证
默认情况下,训练代理后,代理验证会自动执行。您可以启用和停用此设置:
- 转到 Dialogflow ES 控制台。
- 选择您的代理。
- 点击代理名称旁边的设置 settings 图标。
- 选择机器学习设置 (ML Settings) 标签页。
- 开启(默认)或关闭代理验证 (Agent Validation) 设置。
代理验证页面
如需访问代理的验证数据,请执行以下操作:
- 前往 Dialogflow ES 控制台。
- 选择您的代理。
- 点击边栏菜单中的验证。
意图和实体的验证结果
当您访问意图列表或实体列表页面时,任何存在验证错误的意图或实体的名称旁边均会显示一个错误 error_outline 指示符。
当您访问存在验证错误的特定意图或实体页面时,保存按钮旁会显示一个错误 error_outline 指示符。
点击此按钮会显示此意图或实体的错误列表。默认情况下,系统仅显示严重程度为 CRITICAL
或 ERROR
的错误。您也可以切换严重程度类型以显示 WARNING
和 INFO
错误。
您还可能会看到针对特定训练短语和参数的错误指示符,将鼠标悬停在这些指示符上即可查看详细信息。
针对版本和环境的验证结果
查看版本和环境时,每个代理版本可能会有独特的验证错误。如果存在错误,验证图标会显示在版本旁边。
点击该图标即可显示详细信息。
使用 API 查看验证结果
在大多数情况下,您可以使用 Dialogflow 控制台查看验证结果。不过,您也可以使用 API 访问这些数据。
REST
对getValidationResult
Agents
类型。
在使用任何请求数据之前,请先进行以下替换:
- PROJECT_ID:您的 Google Cloud 项目 ID
HTTP 方法和网址:
GET https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/agent/validationResult?languageCode=en
如需发送您的请求,请展开以下选项之一:
您应会收到如下所示的 JSON 响应:
{ "validationErrors": [ { "severity": "ERROR", "entries": [ "projects/my-project/agent/intents/58b44b2d-4967-4a81-b017-12623dcd5d28/parameters/bf6fdf55-b862-4101-b5b1-36f1423629d0" ], "errorMessage": "Parameter 'test' has an empty value." }, { "severity": "WARNING", "entries": [ "projects/my-project/agent/intents/271e3808-3c91-4e6b-89e8-47951abcec8d" ], "errorMessage": "Intent 'app.current.update' does not have enough unique training phrases. Consider adding more different examples." }, { "severity": "ERROR", "entries": [ "projects/my-project/agent/intents/26e64b1b-eaa7-4ce2-be46-631a501fccbe/trainingPhrases/a650375e-083c-4bb5-9794-ba9453e51282", "projects/my-project/agent/intents/58b44b2d-4967-4a81-b017-12623dcd5d28/trainingPhrases/1d947780-22d3-4f80-8d7a-3f86efbf0be3" ], "errorMessage": "Multiple intents share training phrases which are too similar:\n - Intent 'app.notifications.open': training phrase 'open allo notifications settings'\n - Intent 'app.current.notifications.open': training phrase 'open notifications settings'" }, ] }
严重程度状态
验证可以显示以下严重程度状态:
严重程度 | 说明 |
---|---|
INFO | 代理不遵循最佳做法。 |
WARNING | 代理可能无法按预期运行。 |
ERROR | 代理可能会出现部分故障。 |
严重 | 代理可能会完全失败。 |
SEVERITY_UNSPECIFIED | 未指定。不应使用此值。(此严重程度可通过 API 实现) |
强制验证
只要执行并完成代理训练,代理验证结果就会自动生成。如需强制生成新的验证结果,您可以停用自动验证并手动触发验证。请查看控制台中的代理机器学习设置 (Agent ML settings) 页面。
处理许多问题
如发现大量问题,应考虑以下几点:
- 小批量修复问题。如存在许多类似问题,修复其中一个后重新训练代理有可能解决所有类似问题。
- 一次最多显示 5000 个问题。如果您有超过 5000 个问题,在剩下的问题数量少于 5000 之前,您可能看不到计数减少。