Separate retrieval and ranking components for retrieval-based chat?

Hey folks,

I have been working on a tasked-oriented + FAQ retrieval chatbot. On the FAQ side, a feature that I am pondering is the classic search setting of allowing CRUD operation to the knowledge base without having to retrain the model. Obviously this is not supported with the current design of Rasa, as the nlu retrieval intents and responses are stored within the model. I do think this is partially possible with a design that exposes an external index/knowledge base (e.g. elastic search) through a custom action.

My questions are:

  1. Would it be possible to have a ranking component that is called after calling the elastic search custom action for candidates retrieval? I think this might be possible and it would be similar to the current ResponseSelector?
  2. If the answer to question no. 1 is true, how would the training pipeline work given that candidate retrieval is a external dependency?

Thanks much! Sijun