Получить предыдущее имя намерения от действия Расы? - PullRequest
0 голосов
/ 08 апреля 2019

У меня есть намерение под названием intent_yes, которое используется несколькими различными диалоговыми потоками.Когда пользователь говорит «Да» или «Да» и т. Д., Он вызывает мое действие webhook / Rasa.Мне нужно знать что они сказали да.Как мы можем получить имя предыдущего намерения из действия Rhoa webhook?

1 Ответ

0 голосов
/ 29 мая 2019

Вероятно, это не очень хороший дизайн - вам лучше писать отдельные истории для каждого потока, а затем иметь соответствующее действие для каждого обстоятельства, однако в методе run пользовательского действия вы можете получить доступ к tracker.Этот объект содержит все события беседы в списке с именем tracker.events, который будет выглядеть примерно так:

[{'event': 'action', 'timestamp': 1558688062.7624729, 'name': 'action_listen', 'policy': None, 'confidence': None},
{'event': 'user', 'timestamp': 1558688062.7628329, 'text': '/joke', 'parse_data': {'text': '/joke', 'intent': {'name': 'joke', 'confidence': 1.0}, 'intent_ranking': [{'name': 'joke', 'confidence': 1.0}], 'entities': []}, 'input_channel': 'rest'}]

Чтобы получать пользовательские сообщения, просто перебирайте в обратном направлении по этому списку, пока не найдете "event":"user"и намерение дается внутри "parse_data"["intent"]

...