There are Bing bots, Skype bots, Azure bots, Bot payments, Bots for Microsoft Flow and different APIs and frameworks available which can be used to create and manage your own bots. I had the opportunity to interview Paul Stubbs, Director of Product Marketing AI & Bots at Microsoft, and he gave me a lot of insights into creating Microsoft-based bots. If you are interested in setting up your first own bot, there are plenty of ways to do it.
Q: I understand that there is a Microsoft Bot Framework and also an Azure Bot Service. What are the differences between the two?
The Microsoft Bot Framework provides everything you need as a developer 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. With Azure Bot Service, you can easily take your bots built using the Microsoft Bot Framework and host them in Azure. It is built on top of Azure Functions which means you benefit from a server-less platform with competitively priced consumption pricing model and operational optimizations.
Q: What are the latest features and tools available with the Azure Bot Service/Framework?
In order to make it easier to get started creating a bot, last year Microsoft unveiled the Azure Bot Service, a new tool built using the Bot Framework and Azure Functions. At Build this year, Microsoft announced the following updates to the Bot Framework to provide developers with more tools and streamlined integration to other services for developing bots:
- Cortana integration and speech support, which provides a Cortana Channel, and a Cortana development experience, allowing developers to trigger, create, and publish a Skill to Cortana.
- Bing Bots are authored using the Bot Framework and connected via the Bing Channel. The Bing Bot development experience allows bot developers to publish their bots to Bing, where they will then not only show up in the Bing Bots Rich Answer, but also users will be able to chat with the Bot on Bing.com! You can see an example right here with our Local Business Bot. Bots in the Bing results pages leverage the new Skype Web Control.
- The Cortana, Bing, and Skype for Business channels are introduced with this release.
- Adaptive Cards provide developers an easier way to compose user experiences that span devices and modalities. A card is a piece of UI defined by the developer and rendered by the host application to display to the user. An Adaptive Card is made of composable visual building blocks described in JSON that automatically adapt to the host's UX, theme and modality. These new cards automatically adapt to the host's branding and layout.
- Bot Payments, part of the new Payment Request API, enables shoppers and merchants to transact seamlessly. Developers leveraging the API, in Edge, UWP apps and Bots, can quickly and easily enable a simple and consistent checkout experience. The Payment Request API standardizes the payment checkout process. Requiring less customization for developers and provides a faster, more consistent, and therefore, less confusing experience for consumers.
- Cortana Pre-Built Domains are predefined, developer extensible, packages in uses Microsoft Cognitive Services Language Understanding Intelligent Service (LUIS) that help bootstrap language model creation. Examples include Sports, Weather, Contacts, Calendars, etc.
- Additional Language Features such as Lists, Composite Entities, Semantic Dictionaries, and even Spell Checking have all been added to LUIS in this release.
- Documentation has been completely redone. This includes new articles, a more easily understood layout, and integration into the docs.microsoft.com infrastructure for a uniform end-user experience.
- Bot Analytics provide metrics for Bot developers such as user retention rates, message rates, and related operational metrics.
- Publishing Flow, which connects Bots to Channels, has been reworked to allow better integration and fidelity on a channel-by-channel basis.
- The new Bot Framework Portal, currently in Private Preview, provides a one-stop-shop development experience, including LUIS integration for model authoring and training, bot development, testing, analytics, and deployment to Azure. The experience will be available from dev.botframework.com, the Azure Portal, and from within Visual studio and other popular thick client IDEs like Visual Studio Code.
- Bot Runtime, also in Private Preview, provides the runtime host for a Bot designed around conversational models and business logic integration. While the runtime is deep integrated with Azure Web Sites and Azure Functions it may also run standalone.
Q: I heard that Azure Bots are now speech enabled and have voice recognition. How does that work?
Developers can use the Microsoft Cognitive Services Speech APIs to add advanced speech skills to bots that leverage industry-leading algorithms for speech-to-text and text-to-speech conversion, as well as speaker recognition. The Speech APIs use built-in language and acoustic models that cover a wide range of scenarios with high accuracy. For applications that require further customization, you can use the Custom Speech Service. This allows developers to calibrate the language and acoustic models of the speech recognizer by tailoring it to the vocabulary of the application, or even to the speaking style of users.
There are three Speech APIs available in Cognitive Services to process or synthesize speech:
- The Bing Speech API provides speech-to-text and text-to-speech conversion capabilities.
- The Custom Speech Service allows you to create custom speech recognition models to tailor the speech-to-text conversion to an application's vocabulary or user's speaking style.
- The Speaker Recognition API enables speaker identification and verification through voice.
Q: If our readers wanted to jump in head first and create a bot, how would they do it?
Azure Bot Service is powered by Microsoft Bot Framework and Azure Functions. Users can get started in seconds with out-of-the-box templates including basic bot, LUIS bot, form bot, and proactive bot. By using Azure Functions, bots will run in a serverless environment on Azure that will scale based on demand.
Users also have also the opportunity to leverage Bot App templates that you can create:
- Basic—A simple bot that uses dialogs to respond to user input. See Basic bot template.
- Form—A bot that uses a guided conversation to collect user input. The C# template uses FormFlow to collect user input, and the Node.js template uses waterfalls. See Form bot template.
- Language understanding—A bot that uses Microsoft Cognitive Services Language Understanding Intelligent Service to understand user intent. See Natural language bot template.
- Proactive—A bot that uses Azure Functions to alert bot users of events. See Proactive bot template.
For a full walkthrough that shows how to create a bot using Azure Bot Service, click here.
Q: If I have an existing WordPress website, how hard is it to add an Azure bot to my website? Do I have to host my website in Azure for the Azure Bot Framework to work?
Microsoft provides two different ways to integrate a bot in a website: the Skype web control and an open source web control. The Skype web control is essentially a Skype client in a web-enabled control. Built-in Skype authentication enables the bot to authenticate and recognize users, without requiring the developer to write any custom code. Skype will automatically recognize Microsoft Accounts used in its web client. The open source web chat control is based upon ReactJS and uses the Direct Line API to communicate with the Bot Framework. The web chat control provides a blank canvas for implementing the web chat, giving you full control over its behaviors and the user experience that it delivers. Find additional details on how to implement a bot in a website here.
Q: There's Azure Bot Analytics now, right? How does that work? And how do our readers get access to these analytics?
Analytics is an extension of Application Insights. Application Insights is an Azure service that provides service-level and instrumentation data like traffic, latency, and integrations. Analytics provides conversation-level reporting on user, message, and channel data. To learn how to view and manage analytics for a bot, click here.
Q: What features are coming next with the Azure Bot Service/Framework?
We're always looking for ways to improve our services. We have nothing else to share at this time.