Building a X-Bot — Part 1

Author profile picture

@prakhar21Prakhar Mishra


In this blog post I will discuss the workflow of X-Bot


The language and content of this post is in sync with how i think about this mini project of mine from scratch. So bear with some of the nonsensical stuff that you might encounter 😬 while reading. So, we are going to lay an architecture of making any-kind(X) of Bot that can talk to us and get our things done. Without further delay, let’s give a name to our bot. How about Keap ? Yeah, let’s call it Keap from now on.

Keap will be a text based chat bot that can help us out in maintaining records, tasks in hand as well as any important information (something similar to TODO list you make on diary or mobile) and will communicate over email as of now. Let’s keep track of his performance here first, later we can teach him other channels like whatsapp, slack, etc as well (We should not be harsh on it, right ? as it is still about to take birth 😊)

So, we are done with fixing at least the communication channel for Keap. We will create an email account for Keap which will be the email handle for contacting Keap as and when required.

Let’s plan out the features that we want Keap to grab in it’s early years. One should be able to ask Keap in their native language to store and retrieve any information at any point of time (means Keap should always be awake)

One of many ways showing a User-Keap interaction cycle.

User: Keap, please store buying a toothbrush in the list.
Keap: Thanks for calling me out. I have locked your list.
User: Keap, get my list for last 2 days, if any.
Keap: Sure. Here are the things that you care about — xyz

Sounds interesting! Isn’t it ? I am planning to use RasaNLU for that matter.

The next thing we care about is Keap’s Brain (the thing that makes Keap knowledgeable). We will see to how and what developments we will be doing to get Keap’s brain up and moving but for now we can just think of making it as a one-shot installation that can be easily deployed at any of the servers. Also, I am planning to connect Keap’s voice (email) to his brain (server) via nerves (apis), so for every message Keap receives he is gonna make an api call that processes everything and delivers the follow-up utterance. I am planning to use either Flask or CherryPy for hosting APIs.

This much of brain storming is good for as of now to lay foundation. In future posts we will take up each segment of Keap and stitch them to make it progressively functional.

Feel free to comment and share your thoughts. Do share and clap if you ❤‍ it.



The Noonification banner

Subscribe to get your daily round-up of top tech stories!