Hi @egorLab, no problem at all.
It’s been a while that I haven’t touched this but If my memory serves me right, this is how i solved it. Basically, after going through the rasa source code, i noticed that the method ‘_handle_message_with_tracker’ in processor.py passes values stored as entities to the tracker (this was back in september though, i don’t know if this has been changed). Anyway, you can tell from the line below that your data must be mapped to the key ‘entities’ not ‘sentiment’ as in your case.
tracker.update(UserUttered(message.text, parse_data["intent"],
parse_data["entities"], parse_data,
input_channel=message.input_channel))
But you will still need to format your output (predictions) accordingly,
{‘start’: starting_offset, ‘end’: ending_offset, ‘value’: sentiment_value, ‘entity’: ‘sentiment’,
‘extractor’: ‘sentiment extractor’}
starting_offset and ending_offset are both of type integers, sentiment_value must be a list
entity and extractor are strings
So your code could be something like this
starting_offset, ending_offset = 0,0
sentiment_value = [0.6]
rasa_format = {‘start’: starting_offset, ‘end’: ending_offset, ‘value’: sentiment_value, ‘entity’: ‘sentiment’,
‘extractor’: ‘sentiment extractor’}
message.set(‘entities’, rasa_format, add_to_output=True)
But please do note that this is just a workaround. I honestly doubt that this should be the right way of doing it (assuming rasa does support such a thing).