Dynamic configuration loading

Hi All,

I am not sure I will be able to explain this well enough, but, here goes.

Just been playing around with a fork of Rasa for a research project I am working on. The premise is a Rasa implementation driven a lot by dynamic configuration with an aim of supporting multi-tenancy. This means that the knowledge base used by Rasa will change depending on which user is asking the question. That and a few other features that requires to be implemented, require loading of configuration on the fly - where some will be exclusively provided via environment variables, some will be driven from a database (for e.g. NLU), some will be long running conversation outside of Rasa in a different channel (for e.g. Teams) etc. This means that the configuration system (to start with) will require to be non-file driven and perhaps requires a configuration loader (much like custom persistor instances). I have already started hacking into some of the core code, but would like to know if I should stop before I go too far down the rabbit hole - with the hope that 3.0 might bring some of these features with it?

My questions are:

  • Will 3.0 support some kind of configuration loading via custom extensions?
  • Will we be able to consolidate configuration (and by extension other files that make up the core configuration system) into a single entry point that Rasa can use at runtime?

Regards, Eswar

I don’t think it’s currently in the road map for 3.0, no.

For multi bot situations (which it sounds like this is verging on?), Akela has a really great talk about our recommended approach here: Many Bots, One Voice: Seamless Multi-bot Orchestration in the Enterprise | L3-AI 2021 - YouTube

Thank you. I will continue with my little experiments and hopefully reach a resolution.

The scenario in the video does not quite come close to what I am trying to achieve.

@eswarpr It’d be great to hear updates during your adventure, as it sounds like you’re tackling some of the same use cases I’m running up against. Namely:

  • How to isolate different models at runtime?
  • By which, of course, I really mean: How to isolate different stories for users of different customers?
  • How to isolate different FAQs for different users for different customers?

@chrisshaw, - I am also trying to tackle similar problem statement. Were you able to make a breakthrough?