How to manage multiple domains in RASA?

463 Views Asked by At

for domain I do not mean the domain.yml file, but the general concept of a group of intents that belong to the same semantic domain/topic.

Following the above premise, suppose your conversational application has to manage 10 different domains, each one with a variable set of intents (say 20 intents for each domain).

How can I manage this with RASA?

As far as I know I can not manage multiple domain in RASA. A possible solution is to “flatten” all intents as a unique long list of intents. But this maybe not optimal because I could have similar intent that belong to different domain, and the intent wrong classification could raise wrong consequences (intent mismatch involves domain mismatch).

A typical approach, could be to put in front of different single-domain apps, a domain classifier that forward to the correct app, but how to do that with in a RASA multi-domain architecture?

Any Idea? Thanks

1

There are 1 best solutions below

0
On

I am not sure if I understand your question, but this might help. You can use as many domain files as you want and can just specify the folder you put them into while e.g. training.

Example:

rasa train --config my_domain/config.yml --domain my_domain/domain_folder/ --data my_domain/data/ --out my_domain/models

Another option would be to use retrieval intents to group intents into categories, but I have not yet used them. If you have intents that are used by multiple bots you will have program your own workaround on how to manage them in your directories. I would advice you to be very specific with your intents and not mix intents of similar but different type.