代理验证

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

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

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

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

启用和停用自动验证

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

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

代理验证屏幕截图

代理验证页面

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

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

代理验证屏幕截图

意图和实体的验证结果

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

代理验证错误屏幕截图

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

代理验证错误屏幕截图

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

代理验证错误屏幕截图

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

代理验证错误屏幕截图

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

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

代理验证错误屏幕截图

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

代理验证错误屏幕截图

使用 API 查看验证结果

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

REST

对 Agents 类型调用 getValidationResult 方法。

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

  • 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 之前,您可能看不到计数减少。