Microsoft Bot Framework and LUIS

Article by Tristan O'Shannassy

At Interesting we have been doing quite a lot of work recently on Chat Bots, in particular we have been working heavily with the Microsoft Bot Framework and LUIS.

"Urgghhh, Microsoft??" - Yes Microsoft.

"Why?" - It is a common question when you mention working with the Microsoft tech stack as a lot of people are stuck in the last decade when it comes to their perceptions of Microsoft. In recent years Microsoft has made a fundamental shift in their community culture, they have gone from the big evil corporation who hoarded all proprietary knowledge to a big evil corporation who is championing open source and collaboration.


Microsoft joins Facebook in sharing AI research with everyone - https://thenextweb.com/artificial-intelligence/2017/09/07/1075049/


This new approach from Microsoft is very evident in their Bot Framework. Microsoft has helped establish new online communities to support bot development and released a large number of sample bot applications to enable developers to get up and running quickly. It is obviously not a selfless act on Microsoft's part, they want companies to invest in Microsoft technologies and host the solutions on Azure, but selfless or not it has made Microsoft a very attractive starting point for Bot Development.

The Bot Framework, https://dev.botframework.com/, from Microsoft comes with built in support for hosting a Bot in web pages, Skype, Slack, Teams, Facebook and more. So rather than companies needing to invest in multiple Bots to support their various web presences they can focus their investment in a single Bot to rule them all. The framework also includes an emulator to make testing Bots easier and sample code for a lot of common functions.

LUIS (https://www.luis.ai), Language Understanding Intelligent Service, is another exciting release from Microsoft. LUIS adds conversational intelligence to Bots (and other applications).

The way in which LUIS does this is by allowing the developers and authors to outline intents (a task and/or action, i.e Book flight), utterances (examples of how the intent may be expressed by a user, i.e ticket to Paris, Book flight to Paris, Paris flight booking) and entities (important words in the utterances, i.e Book a flight to Paris).

When an end user then chats to the Bot it evaluates each statement against the utterances, provides a percentage match, and responds as programmed for each intent. This means that you do not have to list out every possible combination or phrase, LUIS evaluates the statement for you. The Bot then "learns" by the authors reviewing the chat records and letting LUIS know which comment evaluations were right and wrong.