我该怎么做才能用dialogflow指定某些意图

时间:2019-04-28 04:40:06

标签: dialogflow actions-on-google

我创建了3个意图。

Intent:lost.password.weblogin
Intent:lost.password.2step
Intent:lost.password.credit

eg)
user says: I forgot login password
->Intent:lost.password.weblogin
user says: I forgot 2 step password
->Intent:lost.password.2step
user says: I forgot Credit card PIN
->Intent:lost.password.credit

如果用户说“我忘记了密码。”, 我应该如何指定某些意图?

用户说:我忘记了密码。 => ???

1 个答案:

答案 0 :(得分:2)

我认为解决问题的最好方法是重新考虑您如何使用Intent。您的好方法是开始思考问题的好方法,但是当您遇到自己遇到的问题时,可能需要重新考虑。

首先-请记住,一个Intent表示用户所说的,而不是您如何处理他们所说的话。它代表了用户打算做什么。

由此,我们可以看到所有四个短语实际上都是在尝试做同样的事情-表示他们已经忘记了登录信息。他们如何做到这一点是另外一个细节。

因此,您可能希望通过仅创建一个Intent来实现此目的,该Intent的参数使用他们想要登录的方式。您甚至可以使此参数成为强制性参数,因此,如果他们不提供该参数,则Dialogflow将特别提示您。这将是一个意图,而不是您建议的三个。

为此,您可能需要创建一个看起来像这样的实体:

enter image description here

在左侧的实体旁边选择加号。确保为实体类型命名(在此将其设置为“ passwordMethod”),然后输入对您有意义的三个实体。完成后,点击“保存”按钮。

完成此操作后,您可以使用一些使用这些实体的示例短语来创建Intent。然后,您将看到Dialogflow将为您挑选参数-确保将其标记为必需。确保您已启用Webhook并保存您的Intent。

enter image description here

将使用“ lost.password”意图将passwordMethod参数设置为以下实体值之一来调用您的Webhook:“登录”,“ 2fa”或“固定”。

您现在可以根据参数的值进行相应的响应。在您拥有的一个Intent Handler中,您将查看参数设置为什么,然后在webhook中调用普通函数来对其进行处理。此时,这是非常标准的编程-您不需要多个Intent或Intent Handler,只需执行工作并发送回响应的不同函数即可。