Chatbot development is essential part of business development now days at least for customer facing product and with help of cloud services its become very easy task because you can develop your chatbot without prior knowledge of AI and ML or even without programming as well. but again its totally depend on your business requirements, for complicated scenarios you need to customize chatbot features with adding some programs (Conversation Designing and BotEngine) as well as you might be need to create algorithm where you need software developers and data scientist.
I am working on Microsoft Bot Framework more almost 3 years where we design and develop group chatbot project which is generic solution for different markets as per there business and requirements. in this article I would like to give some highlight on FAQ bot and the easiest ways to plan, build, test, manage bot application with Microsoft Azure.
The best thing which I like about Microsoft service is documentation of all services which is pretty good for beginners and self learners like me who have zero knowledge of .Net technologies stack. (I am Java Developer)
Chatbot - Developers point of view
End user point of view chatbot is service which deal with human and try to solve the query of person or just deal conversation with humans but developer point of view Bots are a lot like modern web applications, living on the internet and using APIs to send and receive messages.
Role of developer here is not understand how AIML is work but developer needs to take care that how your bot connect to AI services and generate answers from them. in simple way developer needs to redirect the user message to appropriate intelligence service via bot program that is the main job of chatbot developer then that intelligence service might be give raw response which needs to decorate and send back to user user is also one of the important task of development.
For example, We needs to develop a chatbot who greet to user on onboarding on chat portal then answer the Frequently Ask Questions about the product this is requirement of business then below is steps of chatbot development.
Developer needs to understand goals of chatbot means what end user should expect from our chatbot? as per our example user will ask FAQs to our bot then here developer needs to deploy QnA Service on Azure because FAQ service handle by QnA Knowledge base. documentation link is here.
Developer can refer already implemented samples as per requirement instead of starting from scratch. here is link , just pic anyone which is relevant to your requirement and if you dont find confirmable sample as per your expectation then don't worry I have explained another way in "Build" section with documentation link.
This is a where development will start. along with that developer need some data in knowledge base so via QnA portal we can add questions and possible answers of questions. once user train and save data and publish it via portal. check this link
Next option is given by portal is create bot via portal and download automatically generated source code from Azure Portal then open it into your visual studio for add next custom scenarios. To get step by step documentation use this link
When you will get ready made template which already have base setup with conversational interface which can communicate with Bot Framework Service and local test emulator as well.
If you dont have bot emulator installed aready you can just run your application in Visual Studio and when it up then web page will open on browser where you will see the option for download emulator which is best and short way to having it.
Template which you opened in editor that you will see nothin much difference from any other web application. now from here you free to expand features in your FAQ Bot as per need.
Your bot application should connected to QnA maker service which deployed on azure portal via application id and credentials. that credentials you have to configure in appsettings config file or in key-vault.
"QnAKnowledgebaseId": "<Get from portal and add here>", "QnAAuthKey": "<Get from portal and add here>", "QnAEndpointHostName": "<Get from portal and add here>"
You can test your FAQ bot in two ways on portal or local. on portal you can use webchat from App Service or configure any channel which you want and use it. You can also generate embedded code from webchat portal and configure it to your own website so you can chat from your own webpage. Developer should use Bot Emulator on local for debugging while development and bug fixing is going on. for more link is here
Once development part is finish then there is different ways to publish your bot on azure portal. You can directly publish your bot via Visual Studio at first time or whenever will do the changes in code. this is manual task. Another way is you can deploy from any version control system directly from portal. Azure Web App service have that kind of features already. you can link service with Git, Azure Gitrepo, TFVC etc. Another most recommended way is Continues deployment via Azure DevOps or Deployment Center from Azure App Service.
For any one of above you can implement with few steps, just refer this link .
Once your service on cloud then just add features one by one and make your FAQ bot more smart with different channel registrations , bot analytics , apply some patterns for save cost and improve performance etc.
Typical Architecture of QnA Maker/FAQ Bot
For More Samples click here
Thanks, Ajay Samgir. LinkedIn - linkedin.com/in/ajay-samgir-754a4579