rasa-core Сопоставление сущностей с другими объектами - PullRequest
0 голосов
/ 06 мая 2019

Я строю простого бота, заказывающего еду. В этом у меня есть намерение 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

1 Ответ

0 голосов
/ 21 июня 2019

Одно из возможных решений - извлечь количество и единицу пищи как единое целое:

Я хотел бы иметь [один куриный бургер] (amount_food_item), [картофель фри] (amount_food_item) и [два безалкогольных напитка] (amount_food_item)

затем дифференцируйте их внутри действия.

...