Bot Framework enables you to build bots that support different types of interactions with users. You can design conversations in your bot to be free. Your bot can also have more guided interactions where it provides the users with choices or actions. The conversation can use simple text strings or more complex rich cards that contain text, images, and action buttons. And, you can add natural language interactions, which let your users interact with your bots in a natural and expressive way.
We are going to create and build a Xamarin FAQ Bot using Azure Bot Service and deploy it into Webchat. In this article, we are not going to write any coding for implementing the Xamarin FAQ Bot but we will be ready with the questions and answers to train the Bot. I have already created 7000+ more Xamarin QnA's like a word document, and we will use the same document to upload and train the knowledge base.
Create a QnA Service
Step 1
Navigate
here and sign in using Microsoft Account.
Step 2
Click on “Create a knowledge base” from the main menu.
Step 3
You can skip “Create a QnA service” step, this lets us publish a QnA service after creating a knowledge base.
Step 4
Provide the QnA Knowledge base basic information,
Step 5
You can extract question and answer pairs from an online FAQ, do the manual entry, and upload files with .tsv,.pdf,.doc,.docx,.xls formats. If you are trying to do manual entry skip this step.
Add chit-chat to your bot, to make your bot more conversational and engaging, with low effort. You can easily add chit-chat datasets for 3 pre-defined personalities when creating your KB, and change them at any time. Chit-chat is supported for 3 predefined personalities
- The Professional
- The Friend
- The Comic
Step 5
Click on “Create your KB”,
Step 6
Wait for a few seconds to load the knowledge base QnA to the Online Editor.
Step 7
QnA service has loaded our FAQs Editor with a two-column knowledge base, without any extra tweaking needed from you. Now, you can edit and modify old QnA and also select Add new QnA pair to input other greetings and responses.
Step 8
The main menu has a different option, Edit, Publish, Save and train, Test, and Settings. While clicking on Edit the above knowledge base edit screen will open, you can search and filter the questions and edit them. After editing always click on the “Save and train” menu option for saving.
Step 9
Click on “Publish”. Once you publish the knowledge base the endpoint is available for use in your bot or App.
Step 10
The knowledge base will generate the following, you can make a note. You need to update the below details in Azure Hosting.
- Knowledgebase Key
- Host Address
- EndPointKey
Create and Publish QnA Bot in Azure
Step 1
Navigate and Login to
here.
Step 2
Select + Create a resource > Select “AI Machine Learning” > Click on “Web App Bot”
Step 3
Let us start to create a Web App Bot, provide the Bot name, resource, location and also follow step 4, step 5 for selecting Bot template and pricing and click on Create.
Step 4
You can use the v3 templates, select SDK version of SDK v3 and SDK language of C# or Node.js. Select the Question and Answer template for the Bot template field, then save the template settings by selecting Select.
Step 5
You can choose a pricing tier for Bot Search service.
Step 6
Review your settings, then select Create. This creates and deploys the bot service with XamarinQA to Azure.
Step 7
Open Xamarin BotQA App Service from All Resources > Application Settings and edit the QnAKnowledgebaseId, QnAAuthKey, and the QnAEndpointHostName fields to contain the values of your QnA Maker knowledge base. Like below,
Test and Implement Web Chat App
In the Azure portal, click on Test in Web Chat to test the bot and Click on Channel > Deploy bot Application to Web Chat and implement into your website or application.
Summary
In this article, you have learned to create, train, and publish your QnA Maker knowledge base. I have created a 7000+ Xamarin QnA knowledge base and deployed it into my blog (www.devenvexe.com) and Xamarin QnA Facebook Page. You can try it out for a demo and if you have any questions/feedback/ issues, please write them in the comment box.