如何在API.AI(Dialogflow)中创建属性组合的列表

时间:2017-11-07 01:50:09

标签: dialogflow

我有一个要求,我想接受来自API.AI的2个属性的列表,例如,用户可以说出以下任何一个:

在我的购物车中添加2个橙子和3个香蕉

将2个橙子3个香蕉和5个苹果加入我的购物车

因此它应该向我的应用程序发送count和fruit-name的组合列表。有什么建议吗?

1 个答案:

答案 0 :(得分:8)

您可以使用Composite Entities执行此操作。

首先,创建一个列出所有水果及其同义词的实体(让我们称之为fruit)。

然后创建一个如下所示的复合实体(让我们称之为number-of-fruit):

Screenshot of number-of-fruit entity

你只需要一个没有同义词的值,它应该包含你想要收集的两个参数:

  • @sys.number-integer:number@sys.number-integer部分表示整数的系统实体,:number部分是我们将为此参数指定的名称)

  • @fruit:fruit@fruit部分是我们的水果实体的名称,:fruit部分是我们将为此参数指定的名称)

现在,当您将包含此格式的项目的示例添加到intent时,您将看到检测到新的复合实体:

enter image description here

但是,示例中的事件当前被视为两个单独的参数,而不是列表。要将这些实体视为列表而不是两个离散项,请选择第二个突出显示的示例,然后单击与第一个参数对应的项(在屏幕截图中,它是带有蓝色文本的number-of-fruit):

enter image description here

现在,您将看到参数部分指示此参数是一个列表:

enter image description here

保存和训练后,您可以通过控制台测试这是否适用于任意长度列表:

enter image description here