Forms, slots config in 2.7.x, `not_intent` not working as expected?

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!

Hi @randomsven

This looks like a bug to me. Can you open an issue on the repo? Thanks!