Don't fill "foreign" slots during form

Hi Team,

I would need some help. I want to achieve the following but don’t know how to get rasa to do it:

  • I have two intents. Intent_A and Intent_B.
  • I have trained them with Entity_A1 and Entity_A2 for Intent_A and Entity_B1 and Entity_B2 for intent_B. (It is important that let’s say A2 and B2 are numbers, so they are similar)
  • I use Form_A and Form_B and created Slot_A1, Slot_A2, Slot_B1 and Slot_B2 with auto fill.

Here is what I want to accomplish: When Form_A is triggered, I want only Slot_A1 and Slot_A2 to be auto filled none of the other slots. Same if Form_B is triggered I want only Slot_B1 and Slot_B2 to be auto filled.

The problem: I cannot use the intent property with Slot_A1 for example, because it will only auto fill Slot_A1 if Intent_A is captured. However there is a scenario where Intent_A is captured with 0 entities and therefore Form_A starts and starts gathering the entities. Now I use from_text property, which means whatever the user writes after RASA asks from Entity_A that will be the entity. So an Intent_A will never be part of that answer.

I need a flag or something I can set, if a Form runs, only the entities belong to that form will be set. Any way I can hack this together, so it will work. It is really hard to use rasa without this, because I have multiple forms and slots are randomly filled during conversation.

Is this make sense?

I think this should work if you deactivate slot auto filling and declare the slots to be filled by the form explicitly.