How to manage the conversation until all required entities are found?

Hi,

I am using Rasa 2.x I have defined new intent and it has a list of entities. For example: `

How many customers should be reached at Bus Station to reach 90% for last month

` Here, I need entity_1, entity_2 and entity_3 for my query to run. If any of the entity is not mentioned in the string, the bot should continue asking that entity until we get all three.

How to implement that? Any example where this has been implemented? Also, how to convert third entity as mentioned in the above example to a date?

Hi @Sajjadmanal, this can be achieved using Forms. See the documentation for how to implement an example. You would set the information you want to gather as the required_slots of the form, the bot will keep asking until all slots are filled from the detected entities.

To turn something like last month into a datetime, you could try DucklingEntityExtractor. You can try a demo here to see if it works ok for your requirements.

@MatthiasLeimeister Thanks for the answer. Also, for Duckling, can you suggest how to use this in production? I have containers for others don’t know how I will add Duckling.

Just add the container rasa/duckling.

Hi @MatthiasLeimeister I am using the forms but the bot is not asking if the the slots are not filled.

If you use rasa interactive then is it still activating the form each turn? If so and you are just not getting a prompt for the slot maybe you have not defined “utter_ask_slotname” for each item that needs filling?

@simonm3 utter_ask_slotname worked. Thanks…!