1

I am thinking to build a multichatbot architecture but I don't know what is the best. I have like 10 chatbots specialized in many fields (customers with phone problems, sellers, help with this or that product, etc...) and potentially 30 more. What is the best design to go with to centralize all of this and have only one interface answering questions ? One IA (which algo?) redirecting questions to the right bot ? One IA who have learned from all the bots (how?) ?

Thanks for your insights, I've searched on Google but didn't find any concensus.

lrosique
  • 113
  • 1
  • 9

2 Answers2

0

I think it is best to separate your different bots.

If you centralize everything, you will lose the ability to change the environment only for one bot. You will also encounter problems where a question meant for one bot is answred by an other, if you get more and more bots.

What you can do is have separate bots on dialogflow (or your own API), and have a central server that redirects requests depending on their headers.

Using machine learning, Dialogflow automatically knows how to handle each kind of sentence depending on how you configured it.

But that doesn't mean that you aren't able to reuse your code: you can just make your own library or API that every bot uses ! Or use a framework like dialogflow.

NanoPish
  • 1,379
  • 1
  • 19
  • 35
  • same question as below, how can I redirect to the best bot ? The best suited to answer I mean – lrosique Feb 28 '18 at 13:40
  • @lrosique you should not need to determine which bot is "best suited" IMO. You should have ONE bot for ONE use case / website / application. But you don't need to repeat your code multiple times, just to have a library that shares reusable code between them. – NanoPish Feb 28 '18 at 14:05
  • well the point is to have a personnal assistant like Google Home, so when I ask "is a product available to buy" it should ask the chatbot for product management, and when I ask "what is the weather today" it should redirect the question to the meteo bot => I can only have one interface, and can't ask "what is the field of your question" ^^ – lrosique Mar 01 '18 at 22:43
  • @lrosique Oh ok, I see. What I did in this case is use Dialogflow to make request to my api depending on the user sentence. When user says 'I want to listen to music', it posts ask.music to my api, which goes in a specific route that handles this case. Worked well for me. What is your issue exactly ? How does it work for now ? – NanoPish Mar 01 '18 at 23:07
  • because of the keyword "music" or because it leant this sentence = this command ? My issue is that I have multiple chatbots with distinct usage (one for meteo, one for sales, one for questions (Google), etc...), and I want, when I say something, the sentence be redirected to the best chatbot possible. For now, the bots are not linked, so I choose manually which one. – lrosique Mar 06 '18 at 08:47
  • @lrosique If you use a framework like Google's Dialogflow, you can define machine learning rules for the sentences to be handled correctly – NanoPish Mar 06 '18 at 14:28
  • ok with your complement i have what i wanted to know ! thanks :) – lrosique Mar 07 '18 at 14:39
0

Route will be the best solution in your scenario. You need to route the support request to the bot once the Request pass through the Socket.

Keep a Construct method which will decide the type of the request and pass it to the correct bot. It will also Manage the Queue. From that Construct Method you will be able to see How many request has been passed, which bot is free, which has queue. In this Stage you could also apply logic that if more than X queue then route again.

Like the above pseudo, I have solve one of my previous chat system. Visualization of my pseudo

kazi
  • 152
  • 1
  • 12
  • problem is, how to choose which bot is the best suited to answer the question ? – lrosique Feb 28 '18 at 13:39
  • First Let the user select the type of issue and from their selection define which Bot to attained the issue. – kazi Feb 28 '18 at 17:16
  • well the point is to have a personnal assistant like Google Home, so when I ask "is a product available to buy" it should ask the chatbot for product management, and when I ask "what is the weather today" it should redirect the question to the meteo bot => I can only have one interface, and can't ask "what is the field of your question" ^^ – lrosique Mar 01 '18 at 22:43
  • Make sense. It might require to integrate AI based on the dictionary. – kazi Mar 02 '18 at 08:47