我正在构建一个简单的点餐机器人。在这里,我有一个take_order意图,其中两个实体将被提取food_item和quantity,这两个实体在插槽中都有列表类型,例如,如果用户消息如下:
我想要one chicken burger和two fries
本例的插槽为:插槽{“quantity”:“一”,“two”,“food_item”:“鸡肉汉堡”,“薯条”}
在动作user_take_order中,我将每个项目的数量与其价格相乘,并将总账单提供给用户。
但我有一个问题,在用户不为food_item提供数量的复杂情况下,我将假设默认数量为1,但当用户订购三个项目而不只提供第二个项目的数量时,问题就会发生,例如:
我想要one chicken burger,fries和two soft drinks
在这个例子中,没有为薯条和插槽提供数量:插槽{“quantity”:“一”,“two”,“food_item”:“鸡肉汉堡”,“薯条”,“冷饮”}
在动作user_take_order中,我想这样做:
1 x price_of_chicken_burger
1 x price_of_fries
2 x price_of_cold_drink但问题是,在数量栏中,我只有鸡肉汉堡和冷饮的数量,并且我不知道用户没有提到薯条的数量(我想将薯条的数量设置为1“默认情况”)
我是否为插槽数量和food_item选择了错误的类型?
slots:
food_item:
type: list
quantity:
type: list发布于 2019-06-21 22:27:07
一种可能的解决方案是将数量和食品项目提取为一个实体:
我想要one chicken burger,fries和two soft drinks
然后在一个动作中区分它们。
https://stackoverflow.com/questions/56004972
复制相似问题