Virtual Developer Workshop: Containerized Development with Docker
By Josh Althauser
At the Build 2016 conference, Microsoft CEO Satya Nadella showcased a bold new vision for the future of technology: "Conversation as a Platform." During the event, which took place in March, Nadella discussed the idea of human conversation as the future of interfaces. No longer would people need to press buttons and make pre-ordained choices, but they could actually communicate with their technology, needing nothing more than their native language.
This idea has incredibly high potential because it removes nearly the entire learning curve of using a new piece of software. In Nadella's own words, "it's a simple concept, yet it's very powerful in its impact. It is about taking the power of human language and applying it more pervasively to our computing." Imagine how easy troubleshooting and comprehension would be if the user could just ask the software to do something.
The heart of this conversational platform would be chatbots and voice-controlled assistants, and to help develop an ecosystem of bots on Microsoft's platform, the company launched a Bot Framework to assist software developers with building their own chatbots. The framework itself consists of SDKs (software development kits) for C#, node.js, .NET, and REST, a library of existing bots that developers can use, and numerous integrations with third-party applications.
If you're a C# developer, there are two C# SDKs for Microsoft's conversational interface that you should know about to avoid some of the most common mistakes. The first, a C# Bot Builder, was released last spring and does just as its namesake suggests: help developers build bots in C#. According to its Github page, the SDK provides a "powerful dialogue system" that utilizes "built-in dialogs for simple things like Yes/No, strings, numbers, enumerations" and can utilize Microsoft's AI frameworks. Bots built using this particular SDK can handle freeform queries from consumers or scripted interactions where the user is aware of the options they can choose from, and they are also stateless, which makes it far easier to scale them.
The second C# SDK, released in early September of last year, engages with the more interesting LUIS. LUIS, a subset of Microsoft Cognitive Services, is an API whose moniker stands for Language Understanding Intelligent Service, and it is the AI behind Microsoft's language processing efforts. LUIS is a cloud service that brings machine learning to apps, but what sets it apart from the technology of Amazon Echo and the IBM Watson Dialog service is that it also provides a drag and drop tool that lets developers build their own language parser.
This level of customization is unprecedented within a natural language processor and is a boon to any app developer who needs a high level of customization with language parsing. However, it should be noted that LUIS is currently in beta, and to access LUIS (and the second C# SDK), you will need to publish your app on LUIS' site.
The LUIS C# SDK helps improve language parsers in two ways: one, it can be applied "to use the client directly and call the 'Predict' and 'reply' that are present in 'LuisClient,'" and two, the SDK can "create handlers for each intent and set up a router using these handlers to have the router handle the responses instead of doing so within the client application."
After Microsoft was late to launch mobile apps in 2007, the company has been pushing innovation forward to climb back to the top. Microsoft converted to Agile development ahead of the curve, and now the software company wants to revolutionize chatbots before another company does. Their method of achieving that goal? Putting tools, such as these C# tools, in the hands of developers and encourage them to create cutting-edge apps within their ecosystem. Time will tell if this crowd-sourced strategy pays off.
About the Author
|Josh Althauser is a tech entrepreneur and open source advocate specializing in providing mentorship for startups. You may connect with him on Twitter.|