Hey there,
I have some kind of alienated behavior for a use-case I want to implement using a chatbot.
My issue is pretty similar to Using single entity for two different intent's.
I basically want to ask a user for his forename, surname, birthdate to (almost uniquely) validate his ID in a natural way and then get his old address and his new address (so far I am only extracting the [german] street name). To do so, I switch to using FormActions
at this point.
If my bot utters âThanks for providing your data {forename}. Please name me your old street.â and the user responds with just the entity, like âSesamstraĂe 5â, I end up with something like this over and over again:
DEBUG:rasa_core_sdk.executor:Received request to run 'action_test_form'
DEBUG:rasa_core_sdk.forms:The form '{'name': 'action_test_form', 'validate': True, 'rejected': False}' is active
DEBUG:rasa_core_sdk.forms:Validating user input '{'intent': {'name': 'get_evb', 'confidence': 0.4319833517074585}, 'entities': [{'start': 0, 'end': 13, 'value': 'SesamstraĂe 5', 'entity': 'new_street', 'confidence': 0.5471068346577346, 'extractor': 'ner_crf'}], 'intent_ranking': [{'name': 'get_evb', 'confidence': 0.4319833517074585}, {'name': 'deny', 'confidence': 0.40701043605804443}, {'name': 'do_it_myself', 'confidence': 0.3803158700466156}, {'name': 'get_birthdate', 'confidence': 0.37413734197616577}, {'name': 'bye', 'confidence': 0.37190955877304077}, {'name': 'thanks', 'confidence': 0.36665356159210205}, {'name': 'affirm', 'confidence': 0.3496394753456116}, {'name': 'greet', 'confidence': 0.3164404630661011}, {'name': 'change_data', 'confidence': 0.2958131432533264}, {'name': 'need_help', 'confidence': 0.20778490602970123}], 'text': 'SesamstraĂe 5'}'
DEBUG:rasa_core_sdk.forms:Extracted 'SesamstraĂe 5' for extra slot 'new_street'
DEBUG:rasa_core_sdk.forms:Trying to extract requested slot 'old_street' ...
DEBUG:rasa_core_sdk.forms:Got mapping '{'type': 'from_entity', 'entity': 'old_street', 'intent': [], 'not_intent': []}'
DEBUG:rasa_core_sdk.forms:Got mapping '{'type': 'from_text', 'intent': ['get_old_street'], 'not_intent': []}'
DEBUG:rasa_core_sdk.forms:Failed to extract requested slot 'old_street'
DEBUG:rasa_core_sdk.forms:Request next slot 'old_street'
DEBUG:rasa_core_sdk.executor:Successfully ran 'action_test_form'
The intent is completly wrong (which I cannot fully understand, as I am working with many things like lookup, regex, and variations of different intents). Nevertheless, it feels like I cannot rely on the intent⌠and I am not sure how to distinguish between the entities âold_streetâ and ânew_streetâ correctly if they basically can have the same values.
Does anyone have an idea whatâs the best thing to do at this point? I already thought about the need to do something completely different from the bottom up or can I incorporate the bot utterance in ner_crf
?
Looking forward to your replies and ideas! Thanks
Kind regards,
-Thomas