Learn the essential technical components of building a chatbot and what is involved in order to choose the right platform.
Choosing the right platform when architecting a chatbot is important. There are a few considerations that chatbot developers will need to consider when choosing technologies that will support a chatbot.
In this post, you’ll learn how to choose the best chatbot architecture to ensure that your chatbot or conversational agent is built on a solid framework. If you choose the wrong architecture, you may be opening yourself to a bunch of technical debt that will make future development and maintenance more difficult.
Overview of Chatbot Architecture
If you look across the realm of the chatbot platforms that are available, there are a lot of ways you can piece meal your chatbot. With chatbots being a nascent, emerging technology, there are a variety of ways you’ll see chatbots being built.
The largest cloud providers on the market each offer their own chatbot platforms, making it easy for developers to create prototypes without having to worry about investing in large infrastructures. They can spin up a chatbot in a matter of hours. Even with these platforms, there is a large investment in time to not only build the initial prototype, but also maintenance the bot once it goes live.
Chatbot Architecture Requirements
In an ideal world, a chatbot platform would need the following as a minimum for a text based chatbot.
- Platform or SDK to host the chatbot code
- Platform or service to connect the chatbot to the channel of choice (Slack, Microsoft Teams, or Custom Web App)
- Natural Language Processing engine to train the bot
- Data storage for collecting conversations to train in the future
- Front-end systems for the users to interact with
Host for the Chatbot Code
You’ll need to have a host for the code for the chatbot. For example, Microsoft provides the Bot Framework, which is essentially a framework you could use the build the bot. Google has Dialogflow, which is essentially a SaaS based platform to build the bot.
Platform or Service to Connect the Channel
If you choose a framework, generally there are certain channels they offer support for. Before you choose the platform, make sure that you know what user interface and channel you’ll want your customers to interact with. This is important because you’ll need to ensure that platform or service that you choose will offer SLAs or future updates for the channel you choose for the chatbot.
This platform or service will allow you to handle the transactions from the users and routes them to the right parts of your architecture and route back the response to the user.
Natural Language Processing Engine
The Natural Language Processing (NLP) engine (also known as Natural Language Understanding) is a machine learning algorithm that will allow you to identify and understand a user’s intent based on their utterance, which will allow it to properly respond to the user and do training.
Data Storage and Collection
With chatbots, there are a lot of conversation dialogue and transactions that will need to be collected. Determining what technology you’ll use, whether you’ll gather the event data via a SQL or noSQL database will ultimately determine how sophisticated your downstream data analysis process will be.
In my experience, I would highly recommend using a SQL database to limit the amount of ETL that is initially needed in order to understand and interpret the data.
Your chatbot will need to ingest raw data and prepare it for moving data and transforming it for consumption by business analysts.
The front-end system is a customer facing user interface where the chatbot interface will sit.
Optional Chatbot Services
There are also other considerations for chatbot development to consider, especially if you plan on deploying it at an enterprise level.
Application Logging and Monitoring
In order to diagnose a bot’s issues, being able to log transaction data will help monitor the health of a chatbot.
FAQ Knowledge Base
Connecting a chatbot framework to a knowledge base that has data structured in a way that can be used as a catalyst to adding knowledge into your chatbot.
Having a feedback mechanism tied to the NLP/NLU service will allow the bot to learn from the interactions and help answer future questions with the same person and similar customer segments.
Data Extract Transform Load (ETL) Processes
You’ll need to make sure that you have a solid way to review the conversation and extract the data to understand what your users are wanting.
While every chatbot can be vastly different in terms of what it was built for, there are common technologies, workflows, and architecture that developers should consider when building their first chatbot. I hope this post covers some of the more fundamental and essential aspects to architecture to consider for building a chatbot.