As I mentioned, the Bot framework and Cognitive services provide a way to build easier. However, before we deep dive to create a bot. It will be great if we can design the bot through structured analysis and engineering design. This article will help you to decide on significant design activities that needed to build useful conversational bot.
Choosing the Bot Types
There are several bot types such as:
- Personal Bot vs. Teams Bot. The personal bot will create a conversation one on one, while the team bot will create a discussion with the whole teams. Rinna ID is an example of personal bots. The Lunch bot, for instance, can help you arrange the lunch plan within the team and ask them in a group or privately.
- Command Bot vs. Conversational Bot. Command bot is just like a voice command in Ford Sync / Mazda Connect. It will help you to set the temperature or finding a good restaurant. The conversational bot will help you to decide the where to go, do you need to bring a coat, or give you a joke just like Cortana.
- ChatBot
vs Voice Bot. Chatbot uses IM platform just like Rinna that use LINE. Voice Bot uses voice platform such as personal assistant Cortana, Alexa, or Siri.
Choosing the Platform
After you choose your bot types, the next step is choosing the platform such as.
- Business Bot Platform: Microsoft Teams, Slack. The business bot will help you productive on the specific business application
- Consumer Bot Platform: Skype, Facebook, Kik. Consumer bot platform will help you to create a bot for wide-array activities.
- Voice Bot Platform: Cortana (LUIS), Alexa. This bot will help you to communicate through voice platform and natural languages.
- Legacy Bot Platform: Email, SMS, and Microsoft Flow. This bot will help you automatically do several tasks starting from automating the process, sending email, receiving, and notifying.
Choosing the Framework
Based on the platform that you prefer you can obtain the SDK (Software Development Kit) and the Framework. For example.
- Bot Framework - https://dev.botframework.com/ . Bot Framework will help you to build consumer/business bot platform. This platform can utilize cognitive services from Azure to make your Bot smarter.
- Language Understanding - https://www.luis.ai/home. LUIS will help you to build voice bot platform like Cortana. This platform can utilize machine learning to enhance your bot knowledge base
- Microsoft Flow - https://flow.microsoft.com/en-us/. Flow will help you to automate the legacy platform like email, storing a file, managing workflows, and of course, send you a notification in a specific situation
Choosing the Features
This is the last step to design the bot; this step is aligning between the business problem and the capability of the framework and platform. You will have a great idea about the features, but you should validate your framework support the scenario? Is the bot can response the features directly? Or Is the bot need to learn based on user input? I classify three level of bot features.
- Command features (Level 1). This bot helps merely you by asking a question and answer. The questions are already documented on an XML file, REST API, Voice input library. Just like you asking to open Maps or Navigate to Home.
- Cognitive features (Level 2). This bot will utilize the cognitive services such as Visual recognition, Speech, Text Analytics, Translator, and many more. Just like using Azure Cognitive Services for a bot that can mention where you can see the landmark based on your uploaded images.
- Machine learning features (level 3). This bot will utilize deep learning to understand custom / specific need. For example, you want to create an assistant bot that can get angry if you send several 'negative' words.
So this is four steps to designing the bot, I will update the next blog post to give you an explanation about Developing the bot.