
Ask HN: Have you built a personal chatbot for yourself? What does it do? - chatmasta
I’ve long been obsessed with the idea of having a single self-hosted server &#x2F; 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.<p>Eg:<p>- Logging cash transactions<p>- Downloading bank statements<p>- Auto journaling the end of the day by pulling git commits and screenshots of the last 24hr<p>- Sending morning briefings<p>- Literally anything<p>Does anyone run a setup like this for themselves? What does your bot do, and what does your stack look like?
======
krrishd
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](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](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 :)

------
rthomas6
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.

------
jags-v
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

~~~
here-for-karma
I am super intrigued by this. In case any others are curious like I was,
here's a tutorial for building a Google Assistant bot:
[https://www.gupshup.io/developer/docs/bot-
platform/guide/how...](https://www.gupshup.io/developer/docs/bot-
platform/guide/how-to-build-a-bot-on-google-home)

~~~
jags-v
Used this repo for reference : [https://github.com/actions-on-google/actions-
on-google-nodej...](https://github.com/actions-on-google/actions-on-google-
nodejs) \+ Google Developer Codelab for DialogFlow

------
mindcrime
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.

~~~
chatmasta
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?

~~~
mindcrime
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...](https://github.com/mindcrime/AISandbox/blob/master/xmpp-aiml-osgi-
blackboard-bot/src/org/example/fogbeam/aisubsystem/AtCommandSubsystem.java)

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...](https://github.com/mindcrime/AISandbox/blob/master/xmpp-aiml-osgi-
blackboard-bot/src/org/example/fogbeam/aisubsystem/AtCommandSubsystem.java)

and there are some sample AIML files in the repo:

[https://github.com/mindcrime/AISandbox/tree/master/xmpp-
aiml...](https://github.com/mindcrime/AISandbox/tree/master/xmpp-aiml-osgi-
blackboard-bot/bots/mybot)

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

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

[3]: [https://github.com/mindcrime/AISandbox/tree/master/xmpp-
aiml...](https://github.com/mindcrime/AISandbox/tree/master/xmpp-aiml-osgi-
blackboard-bot)

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

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

------
billconan
I built a chat bot to report dynamic IP changes on remote machines.

