Dialogflow es Dialogflow参数和实体

Dialogflow es Dialogflow参数和实体,dialogflow-es,Dialogflow Es,我想知道对话框流是否可以存储参数值而不设置其实体。例如,机器人询问用户您的姓名?用户用杰克回应。因此dialogflow将在参数中存储值“John”。谢谢。Dialogflow Web UI 因此,当使用Dialogflow Web UI时,与实现相比,您的选项有点有限,并且您无法真正绕过实体。在Web UI中,从用户输入中提取值的最佳方法是使用实体和。通过Web UI使用“原始”输入的唯一方法是使用@sys.any实体,但您应该注意这一点 @sys.any实体从用户处获取完整的输入并将其提供给

我想知道对话框流是否可以存储参数值而不设置其实体。例如,机器人询问用户您的姓名?用户用杰克回应。因此dialogflow将在参数中存储值“John”。谢谢。

Dialogflow Web UI

因此,当使用Dialogflow Web UI时,与实现相比,您的选项有点有限,并且您无法真正绕过实体。在Web UI中,从用户输入中提取值的最佳方法是使用实体和。通过Web UI使用“原始”输入的唯一方法是使用
@sys.any
实体,但您应该注意这一点

@sys.any
实体从用户处获取完整的输入并将其提供给您,但它不提供有关输入可能关闭的实体的任何信息。例如,如果你问用户“你叫什么名字?”用户可能会回答“John”,但他们也可以回答“Oh..uhh.我叫John”,如果你使用
@sys.any
,你会得到整个字符串,你必须检测什么是名字,然后自己从输入中提取出来。实体和参数可以为您执行此操作

通过在响应中使用$parameterName,可以在响应中使用用户的输入

对话框流程实现

使用代码时,原始输入的问题保持不变,您将获得整个用户输入,但必须自己进行识别或重新登录才能检索值

使用fulfillment的一个好处是,您始终可以访问原始输入,您可以调用
代理.query
检索原始输入,因此您不需要在参数设置中使用
@sys.any
实体

结论

正如我在上面提到的,有两种方法可以检索用户的原始输入,但在这两种情况下,您都会失去实体和参数提供的自动检测。虽然一开始使用实体和参数似乎很麻烦,但如果您打算将用户输入用于任何事情,如保存名称或做出决定,我真的建议您坚持使用实体方法,因为它会自动检测字符串中的输入,您不必担心用户如何回答您的问题,这是开发机器人的一个重要部分


从长远来看,很少有使用原始输入使我的开发更容易的情况。

这一问题的答案实际上取决于您的设置,您是否在使用bot的任何实现和代码,或者您只是在使用web UI?目前我只使用web UI,但是如果我使用实现和代码,您能给我一个如何实现它的示例吗?提前谢谢你。