我有一个要求,我想接受来自API.AI的2个属性的列表,例如,用户可以说出以下任何一个:
在我的购物车中添加2个橙子和3个香蕉
将2个橙子3个香蕉和5个苹果加入我的购物车
因此它应该向我的应用程序发送count和fruit-name的组合列表。有什么建议吗?
答案 0 :(得分:8)
您可以使用Composite Entities执行此操作。
首先,创建一个列出所有水果及其同义词的实体(让我们称之为fruit
)。
然后创建一个如下所示的复合实体(让我们称之为number-of-fruit
):
你只需要一个没有同义词的值,它应该包含你想要收集的两个参数:
@sys.number-integer:number
(@sys.number-integer
部分表示整数的系统实体,:number
部分是我们将为此参数指定的名称)
@fruit:fruit
(@fruit
部分是我们的水果实体的名称,:fruit
部分是我们将为此参数指定的名称)
现在,当您将包含此格式的项目的示例添加到intent时,您将看到检测到新的复合实体:
但是,示例中的事件当前被视为两个单独的参数,而不是列表。要将这些实体视为列表而不是两个离散项,请选择第二个突出显示的示例,然后单击与第一个参数对应的项(在屏幕截图中,它是带有蓝色文本的number-of-fruit
):
现在,您将看到参数部分指示此参数是一个列表:
保存和训练后,您可以通过控制台测试这是否适用于任意长度列表: