Ask HN: Have you built a personal chatbot for yourself? What does it do?
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 ] threadWhat platform are you building around? Is it self-hosted or are you using something like slack / telegram?
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
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 :)
Stack : FirebaseDB , DialogFlow & Google Cloud Functions
ToDo : Change from FirebaseDB to Firebase Cloud Firestore