Every Marvel fan must have at some point of time in his fandom read or watched Ironman and wish if he had Jarvis at his disposal.
I went through the same crisis once and that is where it all began.
I started exploring how feasible developing my own Virtual Assistant was, and that is how MEERA was born.
MEERA stands for Multifunctional Event-driven Expert in Real-time Assistance.
It started as a general purpose scalable virtual assistant backed by the mystic power of machine learning and artificial intelligence. It responds to basic commands in natural language, understands them, and performs operations.
However, over a period of upgrades and enhancements, it has grown much more than that.
MEERA has evolved into a highly scalable and configurable client agnostic general purpose bot. Anyone with basic knowledge of Python can mold it into his specific needs.
To do this MEERA provides a minimal web socket API to communicate with a client. This means MEERA can work with a wide spectrum of clients including Messenger Bot, Telegram Bot, mobile app, web interface and even home automation systems like Echo.
On the other hand, it provides powerful tools to configure custom plugins, that enhances MEERA’s skills. You can read more about web socket API and configuration of custom plugins in MEERA Documentation.
MEERA has onboard machine learning capabilities. It performs the entire natural language processing within the boundaries of the application. This means, your communication with MEERA is not shared with any third-party.
MEERA also ships a trainer and an evaluator to train and evaluate its machine learning module.
With all these bells and whistles, the way MEERA works under the hood is pretty simple. When a client connects to MEERA through web socket API, it should send a “hello” message to register itself.
MEERA remembers the registered client until connection breaks or client intentionally disconnects. Once a client registers, it can send multiple messages to MEERA for it to process.
Once MEERA receives a message from the client, the message is added to the in-mem store. The first step in processing is to extract user intent and any relevant information (Named Entities) from the sentence.
Named Entities are then massaged and transformed for converting them into the usable form. Intent extracted from the sentence is used to invoke an appropriate plugin and named entities are passed down to it for processing.
Plugins can perform a variety of operations of this data, including third-party API calls. Finally, a sentence is constructed using a predetermined template and the result of processing by the plugin to finally respond back to the user.
Machine learning and artificial intelligence are broadening their intellectual horizon. MEERA as machine learning bot looks very promising and easily adaptable.
The project is completely open source and available as a Github repository. It accepts a pull request from the community. You will find the procedure for creating pull requests in the README of the repository.
The project ships with a simple minimalist client that acts as a mediator between MEERA and Telegram Bot, and some basic plugins which give the general sense of how one can develop a new plugin.
What do you think of MEERA? Would like to contribute to the project? Let me know of any queries, responses, and suggestions you have. You can visit the Github repository.
Editor’s note: This article is contributed by Amey Kamat.