Hi All,
I have to build a conversational chatbot where user is trying to create a preference using some filters and the workflow goes like this
User : I would like to create an preference
Bot : Provide filter criteria? e.g HSQ, IEA, 10GE etc…
User : HSQ, EEA, IEA, 10GE, Ethernet, 100GE are the filters for my preference.
Bot : Provide preference name? e.g quick_checks, my_preference etc…
User : my_test_preference.
These HSQ, EEA, IEA, 10GE, Ethernet, 100GE are the values of multiple entities (portSpeed, productType, deviceType, deviceUsage and deviceModel
) and user will always provide multiple filter values in single message, so I used form to collect the user input and trying to store all the user filter values in a slot (type as list).
I have define my slot and forms like this
slots:
filter_criteria:
type: list
influence_conversation: false
preference_name:
type: text
influence_conversation: false
forms:
create_preference_form:
filter_criteria:
- type: from_entity
entity: portSpeed
- type: from_entity
entity: productType
- type: from_entity
entity: deviceType
- type: from_entity
entity: deviceUsage
- type: from_entity
entity: deviceModel
preference_name:
- type: from_text
When I tried to get slot value in custom action like this, I always get filter_criteria
value as None
.
filter_criteria = tracker.get_slot('filter_criteria')
print('User filter criteria : ', filter_criteria)
How can I store multiple entities portSpeed, productType, deviceType, deviceUsage and deviceModel values in filter_criteria slot
?
Thanks in Advanced