Can automatic slot filling be deactivated for the chitchat intend?

Hi all,

I have written my first rasa bot, and it has two things: a form (with 4 slots) and chitchat. In genera it works, but I don;t know how to solve this:

If the use says something the bot has never seen (like “Oh, Supercalifragulistic”), the core picks the correct intent (chitchat), but detects “Super…” as a city, and defines a slot. Then, when the form is triggered, the slot is already filled, interfering with the slot.

Is there way to say, “don’t fill slots in the chitchat intend” to rasa?

I know that there is an option in slots to stop autofill, but I like the fact that if a city is used in the text that triggers the form, the form starts and the city is filled, so the bot does not have to ask again for the city.

1 Like

Hi George,

If your NLU model picks up an entity, and your domain contains a slot with the same name, the slot will be set automatically.

To disable this behavior Preformatted text or a particular slot, you can set the auto_fill attribute to False in the domain file:

slots:
  name:
    type: text
    auto_fill: False

You can read more about it here

Dear Greg,

Thanks for the reply, but this is not what I am looking for. I want auto_fill to be False for most of the intents, but true for 1-2 intents. As in the case, the user triggered a form, and said also the slot in the trigger text. This works nicely as it is now (auto_fill true), but has side-effects that the slots can be filled also by i.e. chitchat. So when the form starts, some slots are already filled.

I think what I want to achieve is through the slot_mappings method in the form action. There, you can define from which entities & which intents the slot can be filled. In combination to using slot names other than entity names in slots, it should work.

From the config.yml, paste the entities and slots section. If you are using the same name for an entity and slot, then the slot value will automatically be filled by the form.