Вероятно, это не очень хороший дизайн - вам лучше писать отдельные истории для каждого потока, а затем иметь соответствующее действие для каждого обстоятельства, однако в методе 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"]