Orchestration is the automated configuration, coordination, and management of computer systems and software. The term became popular with the mainstream adoption of web services and service oriented architectures (SOA) as there was the need to align and complement several independent services to respond to the business needs while satisfying its constraints (in terms of quality, reliability, price,…). Xatkit brings this concept to the chatbot world. Xatkit is the first full-fledged chatbot orchestration platform.
You can use Xatkit as a tool to simplify your chatbot development projects thanks to our chatbot DSL and state machine semantics that provide good abstractions to facilitate the creation of complex bots. Kind of a low-code approach for chatbots. But Xatkit is much more than this. Xatkit is a framework that enables you to freely combine the best NLP technologies for your needs. Do you need a neural network to understand the user intentions? A sentiment analysis feature? A language model for translations?. Take whatever you need, from the best providers and combine them in a single chatbot. Let’s see how we achieve this.
First step: Avoiding the Not Invented Here syndrome in the chatbot world
Xatkit does not pretend to reinvent the wheel. We don’t suffer from the Not Invented Here syndrome. We develop our own solutions when we see a gap in the market but aim to reuse and enable as much as possible all the great NLP/NLU technologies that already exist out there. With so much research and development around natural language technologies, we believe the best way to serve our clients is to give them access to all the cutting-edge developments instead of getting them stuck and locked-in in ours.
Instead, many other companies follow the opposite route and try to compete against each other by duplicating the same features again and again. How many intent recognition providers the world really needs?. According to many chatbot vendors, several dozens!, many of them using a very similar approach. Xatkit is designed to use the one you like the most. This way you can use your favorite provider while we focus our efforts on making your life easier. For instance, by using Xatkit as platform, you can in the future switch providers (e.g. going from DialogFlow to IBM Watson) without changing a single line of your chatbot definition. Xatkit comes with a few predefined connectors (regular expressions, DialogFlow or nlp.js) but thanks to our architectural design and extension capabilities we can easily add new ones.
Second step: Good chatbots need much more than just intent matching
The key NLP component of every chatbot is the intent recognition component that takes as input the user utterance and identifies the intent behind it (plus recognizing the possible parameters in it). But a quality chatbot needs more than this. You may want to have a troll detector to block those comments right away without having to fully process them. Or a sentiment analysis component that then you can use to decide how to better keep visitors engaged depending on their mood. Or maybe apply an internal translation to support a visitor that may be addressing the chatbot in an unexpected language. Some of these actions should take place before the intent recognition phase. Others after. Others before AND after.
Xatkit includes the concept of Language Processors to support these requirements. Processors can be preprocessors, postprocessors or both. And following the philosophy explained above, we either create our own processor (e.g. to remove stop words from
any entities) or adopt any library/language model/… solution out there that we believe can do a better job. For instance, Xatkit integrates a processor based on Stanford CoreNLP for the sentiment analysis.
At Xatkit, we believe building a chatbot should be as fun (and as easy) as playing with Lego. You take the pieces you need and assemble them together to create your ideal NLP pipeline. It doesn’t matter where you bought that piece. And you can always buy a new extension to enhance your bot functionality.
Of course, we are working hard to provide the right abstractions to “defeat” the well-known saying that states that “Software reuse is more like an organ transplant than snapping together Lego blocks” (John D. Cook)
Final step: Xatkit puts it all together
All this sounds nice, but you may be thinking, who is gluing all these components together? Who makes sure they all execute in sync and share the data they need at the right time?. This is where our chatbot runtime engine comes into play. Xatkit is, at the same time, a chatbot definition and chatbot orchestration platform, giving you support for the full life-cycle of you chatbot. Via a simple configuration mechanism you can indicate how to deploy your bot (what components to use, what concrete providers / services connect to, etc) and Xatkit will be the genius conductor that will orchestrate the chatbot for you making sure each component follows its role in the chatbot choreography. Ready to give it a try?