How to prevent slot filling from previous intent if the intent is the same?

Hi,

I encountered a problem that seems to be happening that a slots gets already filled by an intent even though there was no request for the slot How to prevent rasa filling slots which are not requesting and when the slot is conditioned on a form (and auto-fill turned off).

In the following scenario, we have one slot liked_topic which can be filled with affirm or deny. Before asking “Did you like the topic?” the user gets asked “Can I ask you a question?” which can also be answered with affirm or deny. The problem: The answer to “Can I ask you a question?” fills wrongly the slot liked_topic. Would be great if someone could point me to my mistake or whether I can never use affirm or deny to fill a slot because this would lead to unrelated affirm/deny intents already filling those slots…

This is how I set the form question and the slot:

 utter_ask_basic_form_liked_topic: 
  - text: "Did you like it?"

  liked_topic:
    type: bool
    influence_conversation: true
    mappings:
    - type: from_intent
      auto_fill: false
      intent: affirm
      value: yes
    - type: from_intent
      auto_fill: false
      intent: deny
      value: no
      conditions:
      - basic_form
        requested_slot: liked_topic

and the story like this:

- story: happy path 
  steps: 
  - action: utter_can_ask_question
  - intent: affirm
  - action: basic_form
  - active_loop: basic_form
  - slot_was_set:
    - requested_slot: liked_topic
  - or:
    - slot_was_set:
        - liked_topic: yes
    - slot_was_set:
        - liked_topic: no
    - slot_was_set:
        - liked_topic: __other__
  - slot_was_set:
    - requested_slot: null
  - active_loop: null
  - action: utter_next_question
  - intent: affirm
  - action: action_do_something
1 Like