Blog RSS Feed Patreon: ViGreyTech GitHub: ViGrey Twitter: @ViGreyTech LinkedIn: Vi Grey

Creating My Own Personal Assistant

Apr 04, 2017

With Spring finally starting to show its face, people are going out more often. Because of this, Spring is ripe for meetings. With more meetings comes more requirements to manage my time and keep my life organized.

To help me organize and manage things, I am building a virtual personal assistant that interacts with me when I need it and wherever I may need it. I decided to go with the name Eden. Eden stands for Electronic Daily Efficiency Navigator.

Eden

The purpose of me having a virtual personal assistant would be to manage my time while also showing me the information I need the most. For instance, if I am running a program and I needed to know when it is finished, I could have Eden send me

My first task was getting Eden to communicate over Facebook. To do this, I started by creating a Facebook Messenger bot [1] that can take read and respond to Facebook messages. I decided to write Eden from scratch using the Go programming language. Less than an hour after I started, I was able to make API calls to Facebook in order to read messages sent to Eden. The next step was to have Eden take my message as input before sending a message as output. I decided a simple way to do this as a proof of concept was by making Eden be an echo server . Whatever message I'd send to Eden would be sent back to me.

Facebook Chat Test

After only a few hours of work, I had a fully functioning Facebook Messenger echo bot. As long as I can provide input to Eden, I can have it perform actions and produce outputs. This opens up immediate and future possibilities for the functionality of Eden. I have plans to run it as a client from a Raspberry Pi connected to some speakers to provide vocal reminders and play ambient background noise.

Eden is going to be a centralized network, having a central server and potentially many clients. The server would give commands to the clients. The server code for Eden can be found at https://github.com/ViGrey/eden-server and the client code can be found at https://github.com/ViGrey/eden, although at the time of writing this post, there is no code for the client.

I'm excited to see what functionality I end up adding to Eden as I develop it further.

References

[1] S. Rosenberg, _"How To Build Bots for Messenger"_, Facebook Developer News https://developers.facebook.com/blog/post/2016/04/12/bots-for-messenger/, Accessed April 4, 2017.