At Visual Studio Live!, Microsoft Sees Bright Future for AI-Driven Bots Programming
Microsoft's Nick Landry painted a bright future for AI-driven bots programming at the recent Visual Studio Live! conference in Orlando.
Landry, a senior technical evangelist, noted that AI was recently identified by CEO Satya Nadella as one of the three main areas of innovation focus for the company, along with quantum computing and mixed reality.
Before delving into the nitty-gritty, hands-on details of bots programming, Landry shared his own thoughts on the matter in his presentation titled "Bots are the New Apps: Building Bots with ASP.NET Web API & Language Understanding."
"I mean I think you can't read the news nowadays without reading a story about artificial intelligence, how AI is going to take over so many jobs and it's going to change the way that we operate as a society," Landry said.
"For now it's a convenience. It makes different processes better. It provides better intelligence on things but we are moving into a world where AI is going to completely take over different things. And we as humans are going to have to adapt to that because first of all there's not going to be enough jobs for everyone left because AI is going to be able to do much better ... and robots -- this doesn't necessarily mean it's going to be a physical robot -- it could just be a computer doing something better.
"So what I'm here to tell you about today is not like this crazy advanced AI, but it is a form of AI; it's basically bots. A bot is a conversational agent; it's a piece of software that you can converse with, and the idea of a bot is that you are interacting with software in ... normally the same way, in the same channels, that you would use to interact with other humans, so we'll see how we can get started with these."
Landry's presentation covered: the role of bots and conversation agents in various business scenarios; the fundamentals of the Bot Framework, including the Bot Connector, the Bot Builder SDK and Language Understanding Intelligent Service (LUIS) from Microsoft Cognitive Services; and how to get started with building simple intelligent bots that support natural language and can interact via the Web, Skype, Slack, texting and other channels.
Bots programming is widely used in conjunction with the development of digital assistants like Cortana or Siri, which may not know everything but do know how to bring in the right bots for a user's current experience.
"But somebody has to build those bots, and that's you guys. So that means that in this world, the human language is basically the new UI instead of the UI being HTML or SAML or all these different interfaces we create."
Addressing the audience of mostly ASP.NET Web developers, Landry said: "The bottom line is you're all bot builders now, because a bot is nothing more than a Web service. It's a Web service that exposes an API, and you communicate with this API via a REST endpoint over HTTP -- so now I'm speaking a language that you all understand right? It's a regular Web service, but beyond this Web service we give you an SDK -- the Bot Builder SDK."
The Bot Builder SDK, available on GitHub, is described thusly:
The Microsoft Bot Framework provides just what you need to build and connect intelligent bots that interact naturally wherever your users are talking, from text/sms to Skype, Slack, Office 365 mail and other popular services.
The Microsoft Bot Builder SDK is one of three main components of the Microsoft Bot Framework. It is a powerful, easy-to-use framework that provides a familiar way for .NET and Node.js developers to develop bots. The Bot Builder SDK provides features that make interactions between bots and users much simpler. Bot Builder also includes an emulator for debugging your bots, as well as a large set of sample bots you can use as building blocks.
"The SDK will allow you to manage the conversation so that if my user makes a request of a bot and then the bot responds -- if the user sends another request afterwards -- it needs to know it's the same user and that it's part of the same conversation," Landry said. "You cannot treat it like a transactional service where everything is just going to be a one-off every time. There's going to be a dialogue between the bot and the user, and so the SDK will allow you to do all these things."
Another thing it will do is handle the natural language processing vital to bot programming. Noting that no one in the audience indicated they had a PhD or postdoc in language analytics or natural language processing, Landry said: "We have plenty of those people that work at Microsoft, and they've spent the last decades -- basically spending their entire life -- dedicated to parsing human language and then they're wrapped all of this up in the nice API that you guys can consume in a few minutes. So who's the winner here, right?"
"The bottom line is you're all bot builders now, because a bot is nothing more than a Web service. It's a Web service that exposes an API, and you communicate with this API via a REST endpoint over HTTP."
Nick Landry, senior technical evangelist at Microsoft
Another benefit of using the Microsoft Bot Framework is its SDK-agnostic approach.
Without that approach, developers would have to continually create individual bots for different services -- using their targeted SDKs -- like Facebook, Skype, Slack and so on.
"Now you have to basically build your bot multiple times. This is like mobile development all over again, right?
"The bot framework lets you build a channel agnostic bot. So you build a service once completely agnostic of all of these SDKs. You just use the Bot Framework using either C# or Node and then after that you basically enable channels via the Bot Connector. The Bot Connector will basically let you open different channels to it."
Indeed, the Microsoft Bot Framework site says it helps developers "Build and connect intelligent bots to interact with your users naturally wherever they are -- from your website or app to Cortana, Skype, Teams, Office 365 mail, Slack, Facebook Messenger, Skype for Business and more."
Another component used in Microsoft bot programming and demonstrated in Landry's presentation is the Language Understanding Intelligent Service (LUIS) from Microsoft Cognitive Services. Its site says it "provides simple tools that enable you to build your own language models (intents/entities) which allow any application/bot to understand your commands and act accordingly."
The service figures prominently in Landry's presentation. "LUIS is an incredible service, because this is where ... all these PhDs have built these APIs that you guys can just consume in a few minutes," he said. He demonstrated how it works with a machine learning model he created. Upon processing some dialogue text, he said, "It takes the text, it parses it and it's going to tell me two things: what is the intent of the user; and then within that intent, what are the entities that the user is talking about."
Landry also promised more functionality to come, and noted the Bot Framework was also evolving.
In addition to the aforementioned Microsoft Bot Framework, Bot Builder SDK and Language Understanding Intelligent Service (LUIS), Landry pointed to the following resources for further investigation into bot programming:
The next Visual Studio Live! show will be in Las Vegas March 11-16.
David Ramel is the editor of Visual Studio Magazine.