A Chatbot/Voice Assistant architecture using any of the popular natural language processing (NLP) platform. In this case i am targeting DialogFlow. For a list of popular NLP platforms for chatbots please refer this link here.
Lets discuss the diagram on a high level.
Layer 1 – Messaging Client Platform (Alexa, Google Assistant, Facebook, Twitter etc.)
The first layer on the diagram represents any popular messaging framework such as Facebook, Twitter, Slack etc. The same can also be used for Amazon Alexa or Google Assistant.
Layer 2 – The NLP Platform (DialogFlow, IBM Watson, Microsoft LUIS etc.)
This is where the real work happens (The brains of the system). This layer is usually responsible for understanding the user message and process accordingly by either giving a correct reply internally or by hooking up to a external Webhook/Service.
Layer 3 – The Webhook
Okay, Webhooks are nothing but simple REST api’s. In this case the NLP system above will use the Webhook to call this API and get answer suiting the business requirements. Since it is a normal web project, we can use any cloud services (aws, gcp, azure etc.) to host it.