代理验证

代理设计页面所述,代理的设计可能会极大地影响代理的质量。为帮助代理设计人员创建高质量的代理,Dialogflow 提供了一项验证功能。只要执行并完成代理训练,代理验证结果就会自动生成。您可以通过 Dialogflow 控制台或 API 访问验证结果。

验证结果仅供参考。它们提供了一个错误列表,您应该更正这些错误,以改进代理的质量和性能。如果代理存在错误,您可以选择忽略它们并启动代理。代理验证不会以任何方式影响代理的行为。

以下是您可能会看到的一些示例结果:

  • 意图的训练语句过于相似。
  • 意图中包含的某个参数未在足够多的训练短语中使用。
  • 没有针对后备意图的反例。
  • 此文本在某些训练语句中包含注释,但在其他训练语句中则不包含。

启用和停用自动验证

默认情况下,训练代理后,代理验证会自动执行。您可以启用和停用此设置:

  1. 转到 Dialogflow ES 控制台
  2. 选择您的代理。
  3. 点击代理名称旁边的设置 图标。
  4. 选择机器学习设置 (ML Settings) 标签页。
  5. 开启(默认)或关闭代理验证 (Agent Validation) 设置。

代理验证屏幕截图

代理验证页面

如需访问代理的验证数据,请执行以下操作:

  1. 转到 Dialogflow ES 控制台
  2. 选择您的代理。
  3. 点击边栏菜单中的验证

代理验证屏幕截图

意图和实体的验证结果

当您访问意图列表或实体列表页面时,任何存在验证错误的意图或实体的名称旁边均会显示一个错误 指示符。

代理验证错误屏幕截图

当您访问存在验证错误的特定意图或实体页面时,保存按钮旁会显示一个错误 指示符。

代理验证错误屏幕截图

点击此按钮会显示此意图或实体的错误列表。默认情况下,系统仅显示严重程度为 CRITICALERROR 的错误。您也可以切换严重程度类型以显示 WARNINGINFO 错误。

代理验证错误屏幕截图

您还可能会看到针对特定训练短语和参数的错误指示符,将鼠标悬停在这些指示符上即可查看详细信息。

代理验证错误屏幕截图

针对版本和环境的验证结果

查看版本和环境时,每个代理版本可能会有独特的验证错误。如果存在错误,验证图标会显示在版本旁边。

代理验证错误屏幕截图

点击该图标即可显示详细信息。

代理验证错误屏幕截图

使用 API 查看验证结果

在大多数情况下,您可以使用 Dialogflow 控制台查看验证结果。不过,您也可以使用 API 访问这些数据。

REST 和命令行

调用 Agents 类型的 getValidationResult 方法。

在使用下面的请求数据之前,请先进行以下替换:

  • project-id:您的 GCP 项目 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 之前,您可能看不到计数减少。