I built a chatbot. Yeah... Sorry about that. But this one is slightly different, I promise!
Announcing Officer, the Natural Language Processing (NLP) automation bot. At first it might sound like an odd idea, after all why do we need NLP in a chatbot? Well the simple answer is we don't but I did it anyway to see what would happen.
What it does
Like any automation bot, it's designed for general ChatOps, so it can carry out many basic functions to do with things such as:
- Managing issues on a GitHub repository.
- Moving cards around on a trello board.
- Creating and managing teams of people within your chat room.
- Ready for integration into any RESTful API (your deployment server perhaps).
There are two reasons for undertaking this project.
Can I make a chatbot and do the new Microsoft tools actually work? The obvious answer is yes! Want to see more? Check out the repository.
Is NLP in ChatOps actually useful. Honestly it's not that amazing, but it does lower the barrier of entry to these automation bots. I'm thinking about a hybrid attempt next.
The future of it
Okay so we already know that NLP is useful and we've also found the Microsoft BotBuilder is fairly poor at providing much of a staging ground for useful actions. So what's next?
I did some very important learnings from this, and as always as a result we just need one more framework. Yes that's right, not only did I build a chatbot, I'm also building a framework!
The original BotBuilder framework is okay but it's not very fast to work with and it's still lacking a lot of features that it could do with. As a result of this project I'm going to pull together the various generic pieces of middleware, configuration, and initialisation systems and functions and put them into an extension bundle. This bundle will feed directly from the BotBuilder framework but will include a lot more quality of life wrappers for those who just want to get on and build an automation bot. Think of it as "BotBuilder on Rails" with lots of convention over configuration.
This project is really the first project built with the framework and I hope to continue it forward as my own personal chat assistant.