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?