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

And*_*ers 5 dialogflow-es

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

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

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

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

Pri*_*ner 6

这里有几个选项,具体取决于哪种方式最适合您.

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

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

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