У меня есть чатбот, имитирующий цветоводство онлайн. Пользователь должен иметь возможность купить у него несколько цветов.
Есть несколько требований:
- Он должен использовать слоты, чтобы заполнить все значения сразу (без создания огромного дерева) ;
- Он должен принимать два способа оплаты: кредитная карта и CA sh.
Если способ оплаты кредитная карта , то он должен запросить флаг (Visa, Elo или Mastercard) до завершения покупки. Если способ оплаты ca sh, то нам просто нужно завершить sh it.
У меня есть следующие узлы:
Дерево узлов :
![enter image description here](https://i.stack.imgur.com/YGI16.png)
# ComprarBuqueFlores подробности:
В дереве вы, ребята, можете видеть, что у меня есть два разных узла (потомки # ComprarBuqueFlores ), использующих два разных метода. Первый узел проверяет контекстную переменную . Второй проверяет значение сущности .
Когда я сравниваю значения переменных контекста, он работает нормально . Однако, когда я пытаюсь проверить значение сущности напрямую, оно не работает , всегда оценивая false (даже когда @FormaDePagamento распознается как "dinheiro").
На приведенном ниже снимке экрана показано, как происходит сбой в таком случае:
![enter image description here](https://i.stack.imgur.com/FmmfB.png)
Ошибка возникает из-за того, что ни один из дочерних узлов не принимает значение true, что означает @ FormaDePagamento: dinheiro ложно, даже если Chatbot распознает такое значение.
Итак, вопрос в следующем:
В чем разница между сравнением с переменной контекста и сравнение ее с распознанным значением объекта? Почему сравнение со значением объекта недопустимо и оценивается как ложное в такой ситуации?