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

时间:2019-02-22 07:46:17

标签: dialogflow fallback

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

  1. 欢迎意向
  2. GetName目的
  3. 获取电子邮件意图
  4. GetDOB意图

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

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

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

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

  2. (GetName intent)input context : awaiting_nameoutput context : awaiting_email

  3. (GetEmail目的)input context : awaiting_emailoutput context : awaiting_dob

  4. (GetDOB intent)input context : awaiting_dob

1 个答案:

答案 0 :(得分:0)

来自Dialogflow docs:“创建代理时,默认回退意图将自动配置为具有各种静态文本响应,例如“我没有得到。您可以再说一遍吗?”和“对不起,那是什么?”当您的用户输入与其他任何意图都不匹配时,该意图就会被匹配;换句话说,对于所有无法识别的用户输入,这都是一种包罗万象的东西。 >

例如,假设您的座席只有一个名为“天气”的自定义意图,它可以识别用户输入,例如“今天的天气如何?”。或“明天预报”。如果与代理人交谈的用户说“我喜欢紫色”,则您的默认后备意图得到了匹配,因为代理人无法将输入与天气意图进行匹配。”​​

根据这些信息,您可以尝试培训代理以将错误的名称/电子邮件与诸如Fallback Intent - NameFallback Intent - Email之类的意图匹配,这些意图会再次提示用户输入该名称。

在没有看到您的履行代码的情况下,很难确定该策略是否可行。如果您更新问题以包括当前的履行代码,则可能会得到更相关的答案。