我正在查看此链接:
Actions and parameters | Dialogflow Documentation | Google Cloud
在解释“列表参数”的地方,使用以下示例:
- “我要苹果”
- “我想要苹果和橙子”
- “我想要苹果,橙子和香蕉”
然后我想知道是否可以设置“列表参数”来处理类似这样的事情:
“我要7个苹果,8个橙子和12个香蕉”
因此,您将拥有一种键-值对列表。
伪代码:
List<KeyValuePair<string, int>> fruitList = new List<KeyValuePair<string, int>>();
KeyValuePair<string, int> applesItem = new KeyValuePair<string, int>("apples", 7);
KeyValuePair<string, int> orangesItem = new KeyValuePair<string, int>("oranges", 8);
KeyValuePair<string, int> bananasItem = new KeyValuePair<string, int>("bananas", 12);
fruitList.Add(applesItem);
fruitList.Add(orangesItem);
fruitList.Add(bananasItem);
因此,在dialogflow中,$FruitList
参数类似于上面的“键-值对”列表fruitList
。
然后,数字部分应与@sys.cardinal
实体匹配。并且水果部分应该与其中包含一堆水果的自定义实体@Fruits
相匹配。
伪代码:List<KeyValuePair<@sys.cardinal, @Fruits>>
如何在Dialogflow中创建一个“意图”来做到这一点? 有可能吗?
帮助/建议表示赞赏。
答案 0 :(得分:1)
我不确定是否可以让dialogflow返回键值对对象,但是使用复合实体,您可以创建一个由数量(数字)和水果(水果实体)组成的实体。您可以调用此复合实体订单,并在意图中的参数中列出该列表。输入
“我要7个苹果,8个橙子和12个香蕉”
您应该获得包含3个订购实体的列表(7个苹果,8个橙子,12个香蕉)
https://cloud.google.com/dialogflow/docs/entities-developer#developer_composite