Best Practice to use Rasa NLU for many shops

Hi all,

I have 12 shops that are selling almost the same products, and the bot is answering on the users’ questions based on the shop that they selected at the beginning of the conversation. The answers to those questions are depending on the selected shop since the data will be queried from the DB. So, what are the best practices to implement such a bot? Do I need to implement a Bot for each shop and create a bot that manages those bots? Or is there something missed me?

Looking forward to your answers and thoughts :slight_smile:

P.S. the bot is depending on Rasa NLU (only) to extract intents and entities from the users’ queries.

If I understand correctly, you have the same dialog (whether handled by if/then statements or via Rasa Core) for the 12 stores. Only the store name differs and your DB will return a different response for each store. In this case you should create a slot called “store_name”. Populate that slot with the store name that the user selected. Then pass that value to your custom Action that interacts with your DB. If your dialog is different for each store, then (if you’re using Rasa_Core for dialog management), then make the “store_name” a categorical type of slot and then have lots of examples of how the dialog would differ based on the store selection.

I hope this makes sense.


Thanks @lgrinberg for your reply.

I think your response makes sense to me. However, how can I train the Rasa_NLU to extract entities? I am a little bit confused because the shops might have the same product names but different brands. For example, shop1 has jackets of brand x jackets, and shop2 has jackets of brand y jackets. So, if the user asks about a jacket, then, RASA_NLU should return me either brand x jackets or brand y jackets as entity value (depends on the selected shop by the user).

I hope the example is clear