Last night, I went to a meetup at Slack on the Microsoft Bot Framework. It was a good opportunity to get a grasp on what the Bot Framework is, and how developers are using it to create bots that deploy on several different channels, including (as of March 2016):
- Office 365 mail
- Facebook Messenger
- Web (via the Bot Framework embeddable web chat control).
The general idea is that you can write a bot in the Microsoft Bot Framework, and it will be portable to all these channels, with some slight modifications depending on the specifics. Great! But what is a bot, anyway?
Generally, a bot embodies some kind of AI, or artificial intelligence. It’s an app that acts like a person, and it helps you accomplish work by using contextual meaning. If you’re an iPhone user, you’re familiar with Siri. Siri is essentially a bot – it asks you questions and accomplishes some kind of work by reasoning about your answers. Here’s a screenshot from the Bot Framework splash page:
Mat Velloso gave the presentation, and one example he gave is called Murphy. You ask Murphy any kind of ‘what if’ question, and it goes out and finds images that match your scenario, then mashes them together. Basically, it’s face swap via bot. You can say ‘what if I were the president?’ and Murphy will probably give you an image of President Obama with your face. This is a rudimentary example, but you can see how bots would make lots of things faster, especially on a mobile device. You can give short, partial answers and depend on the natural language processor to figure out what you mean.
The SDK, available on GitHub, is written in C# and Node.js. You can fork the repo and start working from examples to build your own bots. Here are a few more resources that were covered during the presentation:
docs.botframework.com – take a look at the docs
luis.ai – lets your app understand language
microsoft.com/cognitive-services – a whole suite of services like LUIS, including face and voice recognition, academic knowledge, image search, etc.
bot framework emulator – lets you play with your bot as your develop it. Includes a GUI for Windows and a command-line version for Mac / Linxu.
Looking forward to playing with this framework and maybe building a bot of my own in the near future!