How to fill the slots based on different intent (or Based on different Forms)

Hi Team,

We know that the slots are provided to save the context of the intent, now what I need to know is how to set same value to different slots, based on the different intent of the utterance. For example,

Let’s say we have two slots ‘wo_type’ from intent ‘request_wo’ and ‘sr_type’ from intent ‘request_st’ and we are using two different Form Action for get these slots filled, But there are problem in the values that is there are some values are common in these two slots. So, when I am train the bot and use FormAction to fill the slot then the slot get filled which has more example in nlu.md file and other slot is set to None every time.

I tried to achieve it by regular training, but in some cases, it is setting the value to the wrong slot. How do I fix this?

Hi Team, Can someone please respond to my query ?

Do you expect to run both forms in the same conversation?

Is there a problem if the value of the slot with more examples is overwritten?

Hi @Gehova In our chatbot there are two slots from different intent and in this two slots there are some common values I want to set the values based on the different intent.

I have an idea but is convoluted:

  1. Using conditional slot logic add the slot with more examples (sme) to the other form, after the slot you want to fill (swf) in a full list. Add another without sme when the swf has a value.
  2. Add a validation function for sme in the form you added the slot logic. In this function copy the value of sme to swf and set sme to None.

This is in case you don’t need the value of sme. If you need it:

  1. Create another slot smeaux.
  2. Add a validation function for sme in the form that fills it and copy its value to smeaux.
  3. In the other validation function, instead of setting the value of sme to None, copy the value of smeaux.

Hope this helps, it’s always a mess to deal with ambiguities.