Building a multi-channel chatbot with Rasa - Getting Started with Rasa / Tutorials, Resources & Videos - Rasa Community Forum
👋 Introducing the Rasa Playground
Building a multi-channel chatbot with Rasa
post by souvikg10 on Sep 19, 2018
Hello, I have added a new write up and some code on the latest rasa core 0.11 version. I tried to comb through the changes and see the difference from previous versions.
post by alucard001 on Oct 23, 2018
Hi @souvikg10, I have read your article and first of all thanks for your input.
Just want to ask several questions:
- Is setting up 2 servers (one for EN and one for FR) the only way to handle multiple languages? Have you tried using only a server but two different projects, which loads different model accordingly?
- According to Rasa doc, the memory usage is high if setting up more than 1 server. In your case how is the memory usage going?
Thank you very much for your help.
post by souvikg10 on Oct 23, 2018
I hope you can take advantage of the code in some way.
For the first point; at my current company, our deployment is completely orchestrated using Kubernetes. Now it is true that you can manage to load/unload models on the fly but keep in mind some models can be really heavy. You can gain a lot of performance by deploying the chatbots separately in two servers. Imagine vectors of size from FastText, if you have to load/unload every time it would be expensive. Servers are cheaper trust me.
For the second point, we notice with our custom vectors of 1gb, server requirements would be:
- Rasa NLU - minimum 4gb (to be safe)
- Rasa Core - min 500mb
post by alucard001 on Oct 23, 2018
Kubernetes… I see.
At present, what I am trying to do is: to have 2 models: One for English and another for Chinese.
My idea is this:
Website visitor <—> Channel (FB, Website) <—> Botpress <—> Rasa (Core + NLU (Spacy or Stanford NLP))
So, if you don’t mind:
- What do you think about this architecture? Is it how I should use Rasa?
- When you say using Kubernetes, are you using KB to host BOTH Botpress and RASA? Or others?
- If the above architecture is reasonable, what do you think that is the biggest bottleneck/challenge regarding this architecture?
- Do you have any online resources (books, video etc) that I can refer to so that I can build something like above, using Kubernetes, Rasa and Botpress?
Thank you very much in advance for your explanation.
post by souvikg10 on Oct 23, 2018
Let’s see if I can break it down well enough.
I will suggest you (not advertising) to take a look at the articles I wrote on medium and my github(souvikg10) repos for code references. The one above has kubernetes deployment files in them. Go through them and I hope it will be useful. You can always create issues as for now.
I will now actively support two of the Rasa stack repositories I created:
- GitHub - souvikg10/rasa-latest: Simple demo to demonstrate the rasa core's latest version
- GitHub - souvikg10/rasa-core-experiment: An Overview of the different policies for training a dialogue manager
I hope it helps developers/data scientists to get started with Rasa quick enough but also enable them a sandbox to really deep dive into some of the policies.
post by Beherasaptami on Feb 17, 2020
Hello @souvikg10, I have 2 bots one is like faq bot and another one is for event booking so is there any way where I can have only one bot instead of 2 like initial have 2 folder structure but I want to reduce it to one?
post by souvikg10 on Feb 23, 2020
@Beherasaptami though experimental, you can try retrieval actions/knowledge bases for your FAQ instead and other actions for event booking. Instead of splitting the bot into two, you can enrich your domain and add retrieval into your pipeline.
post by pranay_raj on Oct 7, 2020
@souvikg10 Firstly, Your knowledge disbursal is quite efficient I should say. Secondly, I had the similar situation as @Beherasaptami, but in my case I have different bots for different domains per se HR domain, Insurance domain, Contract Management domain etc. We wanted to have a universal bot from where we could access a particular bot and their models.
post by souvikg10 on Oct 7, 2020
If you ask me, I would prefer making copies of the bot by training multiple models from the same training data and deploying them individually. Conversations evolve and each client’s need will never be the same...
post by pranay_raj on Oct 8, 2020
Thank you @souvikg10 for the answer. It gives me quite the insight needed for the “third” question pointed out.
post by souvikg10 on Oct 9, 2020
I think you can have a multi-level bot using Rasa. I would not do it because it typically tends to trickle down the probabilities to different bots unless the Main bot is extremely simple and you can use the Rule Policy to predict the next action. Simple routing towards the different bots works.