首页 > 解决方案 > 识别与 Dialogflow 中的每个实体关联的编号

问题描述

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

考虑一个用户试图购买水果的场景。

用户可以对机器人说:

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

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

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

这只是一个调整,不适用于上面提到的消息类型3 。

理想情况下,我必须确定针对哪个水果提到了哪个数字。有没有办法做到这一点?

我将能够通过查看执行请求queryText并解析文本以查看订单来做到这一点,但是有没有办法让对话流程本身为我们提供这些信息?

标签: dialogflow-es

解决方案


在这里,我自己尝试了您的方案。

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

在此处输入图像描述

1 Apple如果您说 just or ,它也可以正常工作2 Oranges

在早期的配置中,我已经制作了带有列表支持的单个水果和数字参数,但是它会出现问题,并且将来如果增加水果,那么很难维护索引。所以我认为最好为每个水果设置单独的参数而不是列出一个列表。


推荐阅读