在Dialog Flow中动态验证允许的实体值

时间:2017-12-01 20:10:52

标签: dialogflow

在我的Dialog Flow代理中,我有一个实体@city。可能的值为New YorkBerlin,......但Amsterdam不在该列表中。

有没有办法根据我的SQL数据库中的值动态验证实体值?例如,如果用户写Amsterdam,我想给用户一个他应该要求另一个城市的提示。这可以通过webhook完成吗?

或者我应该定期将我的数据库城市与代理同步吗?如果是这样,可以通过API完成吗?

我不确定这里的标准方法是什么。

1 个答案:

答案 0 :(得分:6)

您可以在此处选择一些选项,具体取决于最适合您的选项。

在最简单的情况下,您可以将参数实体类型设置为@sys.any并处理webhook中的所有名称解析。这是最糟糕的情况。

正如您所做的那样,您可以创建自己的实体类型@city,并将其填充到几个城市。如果要使用数据库中的城市填充它,那么 是一个API(因此旧名称,API.AI),可用于创建和修改实体。有关详细信息,请参阅https://dialogflow.com/docs/reference/agent/entities上的文档。

然而,即使是最好的,也可能是两者的结合。你有一个使用@city的Intent,以及另一个使用@sys.any的优先级较低的Intent(或一个后备意图)来处理他们说你不理解的事情。