Bots are an integral part of user’s experience in today’s digital world. Bots can be thought of as applications that performs automated tasks e.g. interact with user and thus eliminating the need for manual support. Some examples of bots from daily life are Cortana And Siri. You can interact with them using text or speech, does some background processing and generate response for you. There are many ways a bot can interact with a user:
- Text
- Cards
- Speech
Typically, while interacting with users, bots use pattern matching algorithms to generate responses from stored set of responses. Creating something like this from scratch can be a real pain but with the improvements in Artificial intelligence techniques and more so with Microsoft’s Cognitive services which provides support for natural language processing, speech and image recognition, lot of things are now available out of the box.
Microsoft has been working on Bot frameworks for quite some time now and using that you can build, connect, test and deploy powerful and intelligent bots. There is lot of technology support available and we can create bots using .Net, Node.js and REST.
There are many ways or principles a Bot can be designed ranging from Free form or guided interactions. In free form bots responds to user queries using stored set of responses where in case of guided interactions you can present users with a set of choices or actions using either simple text strings or cards containing images, text and buttons.
style="display:block; text-align:center;"
data-ad-format="fluid"
data-ad-layout="in-article"
data-ad-client="ca-pub-5021110436373536"
data-ad-slot="9215486331">
Developer Challenges while creating bots:
- Bots require basic I/O to fetch response based on user input
- Bots need to have basic language and dialog skills to engage and connect the users
- Bots need to interact in language of users
Microsoft Bot framework targets all these challenges and provide set of tools and frameworks that takes away lot of pain in developing bots from scratch
Components of Bot Framework:
- Bot Builder
- Provides rich and full featured SDKs for .Net, node.js and REST for easing our interaction between user and bots.
- Includes emulator for debugging bots
- Includes many bot samples
There are various components of Bot builder:
- Bot Builder SDK for .NET
- Bot Builder SDK for Node.js
- Azure Bot Service
- REST API
- Bot Framework Portal
It’s a one stop shop to register, connect and manage your Bots and also provide diagnostics tools and web chat control that can be used to embed bots on a web page.
- Channels
Also included with Bot framework are various channels for connecting bots and peoples. Once bots are registered to a particular channel, users can start conversation with them. Some of the channels are Facebook, Skype, Office 365, Slack and SMS
style="display:block; text-align:center;"
data-ad-format="fluid"
data-ad-layout="in-article"
data-ad-client="ca-pub-5021110436373536"
data-ad-slot="9215486331">
Communication between various actors
Job of connector services is to take input from Channel in form of Channel.json and transform it into Activity.json format which is understood by Bot and vice versa.
Advantages of Bot Framework:
- Open Source and can be programmed in .Net, Node or REST
- Same codebase for all channels say Facebook, Skype, Slack
- Support for rich attachments i.e. Text and Images
- Support for Natural language processing