如何处理 dialogflow 中用户错误捕获的输入?

how to handle the wrongly capture input from user in dialogflow?

我使用四个意图使用 dialogflow 创建了一个聊天机器人,我将上下文从一个意图传递到另一个意图。

  1. 欢迎意向
  2. GetName 意图
  3. GetEmail 意图
  4. GetDOB 意图

我想知道如果用户输入了错误的名称,如何调用回退意图。它应该调用 GetNameFallback intent ,对于错误的电子邮件它应该调用 GetEmailFallback intent 。对于错误的 DOB,它应该调用 GetDOBFallback 意图。

对于每个特定的意图,它应该调用其特定的后备意图

这是我传递的上下文列表:

  1. (欢迎意向)- output context : awaiting_name

  2. (GetName 意图)input context : awaiting_nameoutput context : awaiting_email

  3. (GetEmail 意图)input context : awaiting_emailoutput context : awaiting_dob

  4. (GetDOB 意图)input context : awaiting_dob

来自 Dialogflow docs:"When you create an agent, the Default Fallback Intent is automatically configured with a variety of static text responses, like "我没听懂。你能再说一遍吗?”和 "Sorry, what was that?" 当您的用户输入与任何其他意图不匹配时,此意图匹配;换句话说,它是一种对任何无法识别的用户输入的包罗万象。

例如,假设您的代理只有一个名为 weather 的自定义意图,可以识别 "What is the weather today?" 或 "Forecast tomorrow" 等用户输入。如果与您的代理交谈的用户说 "I like the color purple",您的默认后备意图匹配,因为代理无法将输入与天气意图相匹配。“

根据该信息,您可以尝试训练您的代理将不正确的名称/电子邮件与 Fallback Intent - NameFallback Intent - Email 等意图相匹配,这些意图会再次提示用户输入名称。

如果没有看到您的履行代码,很难确定此策略是否有效。如果您更新您的问题以包含您当前的履行代码,您可能会得到更相关的答案。