Hi - using rasa 2.7.1 (tested this on 2.6.x and above). Doing a simple form validation with “text” slots to collect user details. Want to fill in user details from (and “inform” intent if entity matches), otherwise use “text” (do NOT use this is intent is “inform”). All good, however I am getting a double entry for slot_was_set
event as below. Question, what am I missing in the config logic (I am expecting one or the other working only!)?
For completeness, I am currently using a RegexFeaturizer with DIET classifier to handle email and phone entities (not using spacy or duckling for simplicity).
Relevant portions of domain.yml
:
intents:
- inform:
use_entities:
- email
- phone
...
forms:
details_form:
required_slots:
name:
- type: from_text
email:
- type: from_text
not_intent: inform
- type: from_entity
entity: email
intent: inform
phone:
- type: from_text
not_intent: inform
- type: from_entity
entity: phone
intent: inform
...
entities:
- name
- email
- phone
...
slots:
name:
type: text
influence_conversation: true
email:
type: text
influence_conversation: false
phone:
type: text
influence_conversation: false
Extract from an interactive session
- action: details_form
- active_loop: details_form
- slot_was_set:
- requested_slot: name
- slot_was_set:
- name: John Citizen
- slot_was_set:
- requested_slot: email
- slot_was_set: # inform intent and email entity matched!
- email: asdasd@asdasd.org
- slot_was_set: # looks like text option is also kicking in where it shouldn't!
- email: asdasd@asdasd.org
- slot_was_set: # same thing as above
- requested_slot: phone
- slot_was_set:
- phone: 0123 123 123
- slot_was_set:
- phone: 0123 123 123
- slot_was_set:
- requested_slot: null
- active_loop: null
Am about to look at the default form code and fallback to coding up handling the form manually, so kindly please correct me if I don’t have the “correct expectation” of how form slot condition should work (here attempting to use not_intent: inform
).
Why do I care? It makes writing stories difficult if these side effects create “noise” like these double entries. Simple forms like this one end up with too many variations with stories needed for each one to account for everything… feels like a step backwards.
Thanks!