When you think to build quick chatbot with an open source framework system the first framework might pops will be Rasa. No doubt its a great framework, provide you to develop chatbot application with very easily with nice organization of documentation. After all the setup and training, the application seems to perform well. But when you go for the load testing of the application things starts to look messy : Response time increases, concurrency drops etc.
So based upon this, here in this blog I will be writing few things which I observed should be taken care off while setting up the configuration of Rasa.
1.Is there a way to solve concurrency issue?
Ans : One solution I came up with is by increasing the Sanic workers. Rasa 2.x use Sanic web server. As per my exposure I haven’t found any command line argument predefined by Rasa to change the workers. But you can the change the worker of Rasa and Rasa-sdk by making hard-coded changes of the Sanic Workers values in the Constant.py of both or writing a wrapper function to set the environment variable ACTION_WORKER_SANIC_SERVER = #Desired Worker.
Same to be done for Rasa.
Trending Bot Articles:
2. How to handle increasing response time?
Ans : There are various reasons which can be looked upon but I guess most ignored reason while doing any testing is consideration of sender id. The tracker of event is build based upon the sender id. As the list increases so do increase of response time.
One could think of using setting up a Session timeout variable but problem is, it only works in cases of inactivity for that sender id after a period of time which is set in config. So question arises is how to solve it.
I will answer this question in my next blog. Thank you for your time.
Please let me know if you have any suggestion and thought, or if I have misinterpreted.