Microsoft’s BotBuilder Framework for Node.js
On March 30th, Microsoft hosted the annual Build Conference for developers. Needless to say, there were a number of takeaways such as Universal Windows Apps, Bash for Windows, and a big push for Xamarin. That said, this blog post isn’t about any of the above (check out Jeff Ward’s most recent post on Microsoft Build if you want a full recap).
What I want to discuss (write) about is bots.
During the conference, Microsoft released its developer preview of the BotBuilder Framework for Node.js & C#. As a web developer, the fact that Microsoft released a framework for Node.js warms my heart. Microsoft has supported Node.js for a number of years and the BotBuilder Framework is an extension of that ecosystem.
So why is this obscure developer preview important? With the rise of accessible AI, like Siri and Cortana, the public is increasingly comfortable interacting with text-based and voice-based interfaces. The appeal of these virtual assistants, when designed well, is that they abstract very simple tasks that might take a user many, many steps to complete on a screen or in real life. An example might be searching for local restaurants, ordering more towels for your hotel room, or booking your next vacation. The fact is, as more and more companies, like Microsoft and Facebook, open up developer APIs to interact with AI and Natural Language Processing, building bot services or virtual assistants will be easier than ever. Moreover, deploying artificial personalities as part of a broader commerce strategy, a.k.a conversational commerce, will be key.
Basically, bots are poised to take over the world so says the Economist. Well, it’s not that easy. You still have to build one. So open up your terminal and quickly run an npm install botbuilder. What you get right out of the box is enough to get a basic chatbot service running quickly. Microsoft gives you basic classes for:
- Routing dialogs
- Prompting users
- Integrating with Slack, Skype and more
- Implementing Natural Language Processing with Microsoft’s LUIS ( Language Understanding Intelligence Service )
It’s this last class which allows a developer to seamlessly implement Microsoft’s natural language processing. And, in my opinion, makes this announcement so important.
LUIS , separate from the BotBuilder framework, is a really interesting application. LUIS allows one to easily develop natural language processing models. These models help your bot interpret user messages, called utterances, by evaluating Intents and Entities. Intents are desired actions like searching, expressing gratitude, filtering results or seeking help. Entities are the important values (parameters) expressed in an utterance.
The bottom line? LUIS and the BotBuilder framework allow a developer to quickly turn a user input string, any user input string, into and valid action with parameters. An example would be a user asking a bot to “Search for all vacation homes in Miami Florida.” The bot, using LUIS via the LUIS dialog class, interprets the intent and determines that vacation homes and Miami Florida are entity values. A developer could then take these values and search a database or call a backend API to pull the relevant results.
LUIS also provides integration with a number pre-built Entities utilizing other Microsoft services like Bing. For developers, these pre-built entities allow one’s model, and bot, to recognize geographies, dates/times, temperatures, currencies, and more. I was able to have a sufficient model after training the model with 200+ utterances.
LUIS and the Microsoft BotBuilder framework are still very young. Microsoft BotBuilder is not even version 1.0 yet, but updates are being pushed regularly - sometimes with breaking changes. LUIS is currently in Beta, but don’t let that stop you. After 3 to 4 hours of work, developers at WillowTree had a working chatbot with full natural-language capabilities.
The Microsoft BotBuilder framework and LUIS are just a glimpse of what developers will be able to implement with consumer services like bots and virtual assistants. On April 12th, Facebook announced its Bot Engine for Facebook Messenger and released the Messenger Platform. The promise of the platform is to allow businesses and brands to develop bots to interact with nearly 900 Million users.
Look for another review of the Facebook Messenger Platform and Bot Engine in days to come.