Recently, I've developed a PoC around chat bots, data analysis and artificial intelligence. The underlying idea was to explore new ways to consume data and to interact with backend servers.
The architecture is quite simple - on the top of a centralized business environment, I've built a microservice (Nodejs/Express), a backend server in charge of the aggregation of the various data source: SQL server, Blob storage, xls files, external API. The data, once consalidated, will be delivered to the downstream services through a Rest API.
Another backend service will be dedicated to the analyze of data and the generation of graph. The natural choice for this job is Python (Flask) because of the diversity and quality of the libraries dedicated to these tasks: Pandas, Matplotlib or even Tensorflow for Machine Learning.
Finally - the bot - our UI with the user. I've used for this prototype the Telegram Bot Framework for two main reasons: free and easy to implement. But later I would definitly want to try the new Microsoft Bot Framework together with the QnA Maker and the Cognitive Services
When the user ask for a report, an information or any KPI that require data analysis or machine learning, here is the flow:
As a conclusion I will simply say that bots or virtual assistants offer a new way to consume the information - They will become a realistic alternative to all the heavy clients developed over the past decades: no barrier or complex interface between our intent and the command executed by the machine.