动态验证对话流中允许的实体值
Dynamically validate allowed entity values in Dialog Flow
在我的 Dialog Flow 代理中,我有一个实体 @city
。可能的值为 New York
、Berlin
、...但是 Amsterdam
不在该列表中。
有没有办法根据我的 SQL 数据库中的值动态验证实体值?例如,如果用户写Amsterdam
,我想给用户一个提示,他应该要求另一个城市。这可以通过 webhook 完成吗?
或者我应该定期将我的数据库城市与代理同步?如果是这样,可以通过 API?
来完成吗?
我不确定这里的标准方法是什么。
这里有几个选项,具体取决于最适合您的选项。
在最简单的情况下,您可以将参数实体类型设置为 @sys.any
并在您的 webhook 中处理所有名称解析。这是最糟糕的情况。
正如您所做的那样,您可以创建自己的实体类型 @city
,并用几个城市填充它。如果你想用你数据库中的城市填充它,是一个API(因此旧名称,API.AI)让你创建和修改实体.有关详细信息,请参阅 https://dialogflow.com/docs/reference/agent/entities 上的文档。
然而,即使是最好的,也可能是两者的结合。您有一个使用 @city
的 Intent,以及另一个使用 @sys.any
的较低优先级 Intent(或后备 Intent),用于处理他们说出您不理解的内容的情况。
在我的 Dialog Flow 代理中,我有一个实体 @city
。可能的值为 New York
、Berlin
、...但是 Amsterdam
不在该列表中。
有没有办法根据我的 SQL 数据库中的值动态验证实体值?例如,如果用户写Amsterdam
,我想给用户一个提示,他应该要求另一个城市。这可以通过 webhook 完成吗?
或者我应该定期将我的数据库城市与代理同步?如果是这样,可以通过 API?
来完成吗?我不确定这里的标准方法是什么。
这里有几个选项,具体取决于最适合您的选项。
在最简单的情况下,您可以将参数实体类型设置为 @sys.any
并在您的 webhook 中处理所有名称解析。这是最糟糕的情况。
正如您所做的那样,您可以创建自己的实体类型 @city
,并用几个城市填充它。如果你想用你数据库中的城市填充它,是一个API(因此旧名称,API.AI)让你创建和修改实体.有关详细信息,请参阅 https://dialogflow.com/docs/reference/agent/entities 上的文档。
然而,即使是最好的,也可能是两者的结合。您有一个使用 @city
的 Intent,以及另一个使用 @sys.any
的较低优先级 Intent(或后备 Intent),用于处理他们说出您不理解的内容的情况。