I am using the Rasa 1 Python library for chatbots.
NLP is commonly based on user saying something which goes to NLU to choose intent which leads to a response/utterance sent back to the user.
Instead, I would like to give the bot the ability to be more proactive and ask questions first to lead the conversation instead of being only reactive.
That, of course, means I need to dive into Python. My question is where should logic controlling the behaviour live . Should I create a custom channel? Should a create a new run.py extending the original? Is that something that I should somehow create in the action server? Or do I need to do something more advanced with either agent or tracker? Is there a general belief that this should be handled in service outside of Rasa? Is there any example of how something like that would be done?
My goal is to imitate the behaviour of Replica bot which has a very proactive approach to controlling the conversation and learning users interests.