For the past few days, I have been trying to get a hang of Google’s Dialogflow as well as the Riverscript library. My aim is to develop one twitter bot each using these libraries, so I get to compare the pros and cons. During class last week, I made a twitter bot modelled on Michael Scott’s character from the Office, which tweeted a random quote from Michael everytime I ran the nodejs script. I found a list of all the quotes in a text file online and directly used that as source after verifying a few lines myself.
It was fun, but I want to host the script online so that I don’t have to run the script myself. Also, I would like it to pick random users to talk to rather than throwing out quotes into the vaccum.
As for a twitter bot for the class project, I have a few ideas in mind:
- An IWantToLearn bot, which could be summoned by users who want to learn something and it would respond with ways they could go about it. One source the bot could refer to is the IWTL subreddit. Moreover, the bot will let you know each day what the people you are following are trying to learn, if you enable this feature. I already found a javascript wrapper for the reddit api and I am looking forward to experimenting with it.
- A ChangeMyMood bot, which when summoned shares a media (image/gif/video/audio) that would try to change your mood and bring it back to normal. As for the IWTL bot, this one can also summarize the moods of your followers daily, if you enable that feature.
- A linker bot, which maintains a minimum-separation graph of all the people that have summoned him in the past hour, and would let you know the path through which you might be related to those other twitter handles.
My initial impressions: DialogFlow seems a lot of work if the bot is required to do simple things like say hello to its summoners. It’s also time consuming since its a third party service which needs to be invoked every time. However, DialogFlow exposes a way to programatically set the intents which I couldnt find in RiverScript where you have to manually create all the rives
.