首页 > 解决方案 > 将 DialogFlow 提取参数映射到数据库列值

问题描述

处理从意图训练短语提取的参数映射到特定于该用户的数据库中的用户定义值的建议解决方案是什么。

我认为一个实际的例子是购物清单应用程序。

通过 Web UI,用户将catchup购物清单添加到存储在数据库中的item.

然后通过那个代理(即谷歌助手),话语ketchup被提取为item参数。我无法知道如何将提取的参数从话语映射到数据库中的用户定义值

所以要清楚

// in the database added by the user from a web UI
"catchup"

// extracted from voice utterance
"ketchup"

我应该如何确保提取的参数可以与它们添加到列表中的自由格式值相匹配?

此外,我在这方面缺乏经验,并且已经浏览了很多文档,可能只是错过了这一点。不确定开发者实体或会话实体是否是解决方案。

标签: dialogflow-esactions-on-google

解决方案


开发者或会话实体在这里可能有用。这取决于。

  • 如果您可以枚举用户可以说的所有可能的事情,并可能为其中一些创建别名,那么您应该使用开发者实体。这是最简单且效果最好的——当单词被预定义为训练模型的一部分时,ML 系统有更好的机会匹配单词。

  • 如果您不能这样做,并且您只想匹配他们已经添加到数据库中的内容,那么会话实体将很好地工作。这确实最适合您已经拥有的有关用户的信息,或者可能会根据上下文发生巨大变化的信息。

您甚至可能希望提供组合 - 定义尽可能多的实体(以获得最常见的回复),允许自由形式的回复,并将这些自由形式的回复合并为会话实体。


推荐阅读