This Bot Framework tutorial follows from the Tutorial 4 where we create a Question and Answer Bot. In this tutorial, we would focus on improving the functionality of our the question and answer bot so that it can give more intelligent answers to questions.
Today we would focus on Create a chat robot that would answer any question about Computer Programming and we would do this together
- Examine the Base Questions
- Add Your own questions
- Create a QnaServer in qnamaker.ai
- Test the Service
- Train Your Service
- Quiz for You
- Publish and Test The Service
- Create a New Question and Answer Bot in Azure
- Final Notes and Next Steps
1. Examine the Base Questions List
For this tutorial, we would start with a basic list of computer programming questions. You can view these questions from here.
Figure 1 shows the base qustions list that would serve as our starting point
2. Add Your own questions
You can add more questions to this list. Just leave the question in the comment box under the list. You could also leave the question in the comment box under this tutorial.
If you have the answer to the question you could provide it along with the question, if not, then we would provide the answer and add it to the list in a short time.
If would like to have access to the Programming Questions and Answers page, then mention that in the comment box, as well as your email. After verifying that the request is authentic, then we would provide you with a link to edit the questions and answers list and add your own questions.
3. Create a QnaServer in qnamaker.ai
Step 1: Visit qnaMaker.ai
Step 2: Click on Create New Service
Step 3: Enter the name of the Service (eg. Programming-Questions-Service)
Now you need to enter the url of the knowledgebase. The knowledgebase is simply the list of question and answers we already have.
Step 4: Enter the url of our programming questions and answers page: http://kindsonthegenius.blogspot.hu/2018/03/computer-programming-questions-and.html
Copy and paste the url in the box
Step 5: Scroll down the page and click on the create button
After some seconds, the knowledgebase is created as shown in Figure 4.
Notice that the system recognizes which text is a questions and which is the answer to the question. Also, any image is the file or text that is not question and answers are ignored.
Isn’t this amazing!
4. Test Your Service
To test our service:
Step 1: Click on the Test menu by the left
The testing page is displayed as shown in Figure 4
Step 2: Enter some of the questions we have in the list and observe the response.
You would observe that it gives the correct response.
Let’s now move to the training section so we see how we can improve performance
5. Train Your Service
However, you entered the questions exactly as it is because you already have the list of question. But a user trying to ask questions about computer programming may ask questions in a different way or with different wordings.
For example, the three questions should produce the same answer(at least for a simple bot):
- Can you tell me about JVM?
- What is Java Virtual Machine?
- What does JVM stand for?
Step 1: Try to enter this three questions and what do you observe? Give answer in the comment box below.
Training would help us fix this.
Step 3: Now enter What is JVM, so that is gives the right answer.
We want it to give us the same answer when we enter What is Java Virtual Machine
Step 4: By the right hand side, in the text box under ‘provide multiple alternative phrasing to the question to broaden the knowledge base’, enter What is Java Virtual Machine
Step 5: Click Add (the + sign)
Notice that the question is added as a second question for this particular answer as shown in Figure 5
Step 6: Click on Save and Retrain
Step 7: Now, Enter the question again, What is Java Virtual Machine
What do you observe?
Notice now that it gives the right answer
6. Quiz for you
Train the Service the give the same answer for the following quesionÉ
What are some Languages in Programming?
Mention some programming languages?
Give examples of programming languages?
Also take some time to train the service to handle other variations of the other questions in the list. Remember to click on Save and Retrain when you are done with the training.
7. Publish and Test The Service
After you are done with the training:
Step 1: Click on Publish. A review page is displayed
Step 2: Click on Publish again to publish the service
Now, you can see Success page.
In this page you will find the KnowledgebaseId and the Subcription Key.
Step 3: Copy and save this output, because you will need it in the nex tutorial.
8. Create a New Question and Answer Bot in Azure
You will need to do this by yourself.
See How to Create a Question and Answer Bot
Give the bot a name like ProgrammingBot or ProgrammingAssistant or ProgrammingTutor
9. Final Notes and Next Steps
Now we have a working qna Service and we have a question and answer bot. This is interesting because in the next tutorial we would examine how allow users to use this bot for free.
You know, the public could make use of your bot and it would even apear that they are chatting with someone
In the next tutorial, we would examing Channels and also add Skype channel to this bot so that it can connect with and chat with real users
For now I would like to thank you for the time spent learning. Do leave a question or observation if you have any.