识别与Dialogflow中每个实体相关的编号

时间:2018-12-19 07:15:18

标签: dialogflow

我不确定这个标题是否适合这个问题,所以让我详细解释一下我想要达到的目标。这不是我的实际项目场景,我以它为例。

考虑用户尝试购买水果的情况。

用户可以对机器人说:

  1. 我需要2个苹果和一个橙子
  2. 我需要1个苹果和1个橙子
  3. 我需要一个苹果和两个橙子
  4. 我需要一个苹果和一个橙子

假设我有一个实体fruits来标识水果,而我正在使用@sys.number来标识水果的数量。

按照我目前的逻辑,我将entities水果和@sys.number作为列表,并根据索引进行映射,即列表中的第一个水果将映射到另一个列表中的第一个数字,并且如果该数字的列表在水果列表中没有对应的水果索引,则将其假定为1。

这只是一种调整,不适用于上述消息类型 3。

理想情况下,我必须确定针对哪个水果提到了哪个数字。有什么办法吗?

我可以通过查看履行请求中的queryText并解析文本以查看顺序来做到这一点,但是有一种方法可以使对话框本身提供流程这些信息给我们吗?

1 个答案:

答案 0 :(得分:4)

在这里,我已经尝试过您的情况。

我不确定这是否是最佳实践,但是在这种配置下,我用一个单独的参数将每个水果及其编号分开。通过添加一些适当的训练短语,它可以按预期工作(如右侧的仿真窗口所示)。

enter image description here

如果您只说1 Apple2 Oranges,它也可以正常工作。

在较早的配置中,我已经使用列表支持制作了单个水果和数字参数,但是它带来了问题,并且将来,如果增加水果,则很难维护索引。因此,我认为对每个水果使用单独的参数比使用列表要好。