Я строю простого бота, заказывающего еду. В этом у меня есть намерение take_order, в котором будут извлечены два объекта food_item и количество, оба из этих объектов имеют типы списков в слотах, например, если приходит пользовательское сообщение, подобное этому:
Я хотел бы иметь [один] (количество) [куриный бургер] (food_item) и [два] (количество) [картофель фри] (food_item)
слот для этого примера: слот {«количество»: [«один», «два»], «food_item»: [«куриный бургер», «картофель фри»]}
в действии user_take_order я буду умножать количество каждого предмета на его цену и давать пользователю общий счет.
Но у меня есть проблема, в сложном случае, когда пользователь не предоставляет количество для food_item, я приму количество по умолчанию к одному, но проблема возникает, когда пользователь заказывает три элемента и не предоставляет количество только для второй пункт, например:
Я хотел бы иметь [один] (количество) [куриный бургер] (food_item), [картофель фри] (food_item) и [два] (количество) [безалкогольные напитки] (food_item)
в этом примере количество заполненного картофеля фри и слотов не указывается: slot {«количество»: [«один», «два»], «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