Ask HN: Have you built a personal chatbot for yourself? What does it do?

23 points by chatmasta ↗ HN
I’ve long been obsessed with the idea of having a single self-hosted server / cluster that can perform whatever menial tasks I automate. I think a chat bot in a private Matrix room would be a great interface for that.

Eg:

- Logging cash transactions

- Downloading bank statements

- Auto journaling the end of the day by pulling git commits and screenshots of the last 24hr

- Sending morning briefings

- Literally anything

Does anyone run a setup like this for themselves? What does your bot do, and what does your stack look like?

10 comments

[ 3.1 ms ] story [ 25.0 ms ] thread
I started on one, more to use as a research platform than to do specific useful things. That said, I have been too busy to really work on it and it doesn't really do anything terribly specific at the moment. But I do have high hopes for it.
Well you’re ahead of me! :D

What platform are you building around? Is it self-hosted or are you using something like slack / telegram?

What I have so far is written in Java, and I started out playing around with AIML[1] using the ProgramAB[2] library to start implementing some simple stuff. It's self-hosted and the bot connects to an XMPP server to communicate. The code is designed to be packaged as an OSGI bundle which can be deployed into something like Karaf or ServiceMix.

The code[3] is on GitHub, but it really doesn't do anything useful yet. But feel free to take a look. Up to the last time I touched it, the main thing I was doing (as you can see in the commit messages) was playing around with some ideas involving the old "blackboard architecture"[4] approach.

The one thing that's actually implemented is an @time command, which just prompts the bot to give you the current time. That bit is implemented here:

https://github.com/mindcrime/AISandbox/blob/master/xmpp-aiml...

The AIML stuff is also wired up, although I'm not sure exactly what state I left this all in last time I touched it. But you can see the AIML stuff at

https://github.com/mindcrime/AISandbox/blob/master/xmpp-aiml...

and there are some sample AIML files in the repo:

https://github.com/mindcrime/AISandbox/tree/master/xmpp-aiml...

[1]: https://en.wikipedia.org/wiki/AIML

[2]: https://github.com/fogbeam/program-f

[3]: https://github.com/mindcrime/AISandbox/tree/master/xmpp-aiml...

[4]: https://en.wikipedia.org/wiki/Blackboard_system

I built a chat bot to report dynamic IP changes on remote machines.
I made a program that sends daily texts to my wife and me with our checking account balance and how much spending that equals out to per day until we are paid again. I don't know if that counts. It's really simple. It's coded in Python, using Selenium for reading bank info and Twilio for sending texts.
a few friends and i have been sporadically building a slackbot (primarily as a humor thing rn) called sous-chef (https://github.com/hackNY-labs-2018/sous-chef), with the objective of making it eventually programmable without code.

right now, that means pretty basic stuff:

- you can teach it to respond/react to certain triggers

"@sous-chef if i say xyz you say abc"

- you can teach it to fetch data via GET from any API endpoint you specify, so like

"@sous-chef if i ask what's the price of BTC you get https://api.coinbase.com/v2/exchange-rates?currency=BTC more specifically data.rates.USD"

obviously pretty limited functionality, but i think as we expand its fetching abilities -- more than just GET, maybe not limited to JSON, maybe uses some API/library to summarize content, maybe reads in query parameters from your command, etc -- it could open up all kinds of possible functionality depending on how creative the bot's (not necessarily technical) users are :)

i guess to elaborate on the broadest/most optimistic possiblity for it, i think if we made it intuitive/natural-language-driven to teach it valuable tasks that can be programmatically represented (essentially programming it but with natural language) i think it could be a novel thing.

or it might just remain a joke bot for our group :)

I have a built a Gooogle Assistant Bot to get me the times of the DOTA2 matches for the teams I follow. Data Collections is still manual, trying to automate it.

Stack : FirebaseDB , DialogFlow & Google Cloud Functions

ToDo : Change from FirebaseDB to Firebase Cloud Firestore

I am building a WhatsApp chat bot right now to receive WhatsApp messages on Telegram and tell people to use telegram instead of WhatsApp.