Conversational AI
Applications
Design
Developing a bot, like developing websites and applications, should
start with a design for a great experience. When humans interact
with bots, we expect that what we say is understood, what we receive
as a response is appropriate, and what we get as a service is delight‐
ful. We expect that, if we leave mid-conversation, the bot will
remember where we left off.
Build
A bot is a representational state transfer (REST) web service that
communicates with the user by sending and receiving messages and
events from conversational interfaces like chat rooms or Web Chat
widgets. With Microsoft’s Azure Bot Service and Bot Framework,
you can create bots in a variety of development environments and
languages. You can start your bot development in the Azure portal
or use one of the Bot Framework SDK templates for local develop‐
ment. The templates support the C#, JavaScript, and Python lan‐
guages with Java support in early preview at the time of writing.
Test
To test conversational AI application, Microsoft provides the
Bot Framework Emulator enabling developers to test conversations
quickly and easily. We can also write unit tests using the Bot Frame‐
work SDK, which can focus on functionality testing of specific dia‐
logs. Once configured through the Azure portal, bot can be
reached through a web chat interface, enabling broader testing by
end users early in your development process.
Publish
When ready for your bot to be available on the web, either
publish your bot to Azure or to your own web service or data center
—wherever a normal web application can be hosted.
Connect
Azure Bot Service does most of the work necessary to connect bots to a range of channels and devices. Configured through the
Azure portal, you can connect your bots to Facebook Messenger,
Slack, Microsoft Teams, Cortana, email, Telegram, Twilio, LINE, and
other channels. You can also use Web Chat widgets to embed your
bots in your websites or mobile applications.
Evaluate
Recordings of conversations between bots and users provide valua‐
ble business insights to help you evaluate your bot’s performance. At
this phase, best practices include evaluating success metrics that you
defined during the design phase, reviewing instrumentation logs,
collecting user feedback, refining, and iterating. Bot Framework
provides sample Application Insights queries and a Power BI dash‐
board to help you grasp the full breadth of your bot’s conversations
with users and gain key insights into your bot’s health and behav
Virtual Assistants
Building on the Bot Framework SDK, Microsoft’s open source Vir‐
tual Assistant solution (available in C# and TypeScript) is a project
template that encompasses the best practices for developing a bot on
the Microsoft Azure platform.
Building a conversational experience using the Virtual Assistant
template requires the following resources:
- Azure Bot Registration (to configure Bot endpoint and channel
configuration)
- Azure Web App (to host your Bot application)
- Azure Storage Account (to store transcripts)
- Azure Application Insights (telemetry)
- Azure Cosmos DB (Conversational State and User State—this
can be swapped for Azure Storage for development purposes)
- Language Understanding
- QnA Maker (including Azure Cognitive Search and an Azure
Web App)
Complete Control for Developers
With Virtual Assistant, all aspects of the user experience are owned
and controlled by you. This includes the branding, name, voice, per‐
sonality, responses, and avatar. Microsoft provides five chat person‐
alities based on the Azure Cognitive Service QnA Maker, enabling
you to tailor the bot’s personality. The source code to the Virtual
Assistant and supporting Skills are provided as samples for you to
customize. Your Virtual Assistant will be deployed within your
Azure subscription. Therefore, all data generated by your Assistant
(questions asked, user behavior, etc.) is entirely contained within
your Azure subscription. See Cognitive Services compliance and
privacy details and the Azure section of the Trust Center for more
information.
Prebuilt and Reusable
Skills
Common Virtual Assistant scenarios are provided as reusable Con‐
versational Skills and include tasks like finding nearby points of
interest, checking off an item on a to-do list, and replying to an
email. Skills—delivered in source code form—are fully customizable
and consist of language models for multiple natural languages,
dialogs, and integration code
Flexible Integration and Contextual Awareness
The Virtual Assistant architecture is flexible and can be integrated
with existing speech or NLP capabilities, back-end systems, APIs,
and devices to enable personalization and adapt responses as
required for the users’ context. The Assistant can also be aware of
the device or channel through which the user is communicating,
which can be used to optimize the experience (e.g., voice versus
text) and enable the user to switch between different channels if
needed.
Business Insights Captured and Distributed
Bot Framework
provides a rich set of out-of-the-box metrics ena‐
bling any conversational experience to collect data at the levels you
desire, to let you understand better what your customers are asking
and where you might have opportunities to improve the service