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

How can I create a list of a combination of attributes in API.AI (Dialogflow)

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

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

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

所以它应该向我的应用程序发送一个计数和水果名称组合的列表。有什么建议吗?

您可以使用 Composite Entities 来做到这一点。

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

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

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

  • @sys.number-integer:number@sys.number-integer部分代表整数的系统实体,:number部分是我们给这个参数的名称)

  • @fruit:fruit@fruit部分是我们水果实体的名字,:fruit部分是我们给这个参数的名字)

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

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

现在,您会看到参数部分表明此参数是一个列表:

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