Is it possible to Backup a QnA Maker Knowledge with Azure Pipelines? - botframework

Im working with bots from the Microsoft Bot Framework (SDK4).
My Bot is connected with LUIS and two KnowledgeBases.
The CI/CD process is realized with Azure Pipelines.
Im wondering if it is possible to backup a knowledge Base with the Release Pipeline within Azure Pipelines.

You can try to write a script in azure pipeline to download the knowledge base from QnA Maker programmatically.
The download process is programmatically available using the following REST API:
GET {Endpoint}/qnamaker/v4.0/knowledgebases/{kbId}/{environment}/qna
You can refer to this document for details.

Related

What is msbot clone services for in Enterprise Bot Template?

I need to know what is msbot clone services for in a Bot Enterprise Template? what is the main goal of this command, if I configurate a LUIS application in Azure, I need this command to use my LUIS in my local bot? Is there a way to configurate LUIS manually in Bot Enterprise Template?
FYI: Enterprise Bot is being replaced by Virtual Assistant, which doesn't use msbot.
msbot is used for a variety of different purposes, but I'm assuming you're referring to the msbot clone command. Basically, it's just a command that makes all of the necessary services/resources in Azure and then updates your .bot/appsettings.json/.env file, depending on which is applicable to your environment.
You can use your own LUIS, but Enterprise Bot creates a lot of LUIS apps for you that are used in the bot. To use your own, you'd just need to add your LUIS config in your .bot/appsettings.json/.env file and then ensure that it's called in the appropriate places in your code. Personally, if I were to do this, I'd just run the msbot command and then replace whatever it generates with my own LUIS config.

Scripting for LUIS and QNA Maker

We are planning to do scripting for updating the LUIS and QNA Maker for Dev/testing/production environment. Is there any possibility of doing it in the current version of LUIS and QNA Maker?
LUIS has a variety of scriptable options including service management through PowerShell, ARM templates, and REST APIs for authoring and endpoint.
do scripting for updating the LUIS and QNA Maker for Dev/testing/production environment.
LUIS provides two publishing slots: Staging slot and Production slot. And if you’d like to programmatically update and publish app to specified slot, you can use the following LUIS Programmatic APIs:
Import version to application
Publish application
Besides, as far as I know, QnA Maker currently does not provide publishing slots.

Does a ChatBot built using QnA Maker API require Virtual Machine

While calculating the pricing for deploying a chatbot developed using QnA Maker, i am supposed to select the App Service Plan.
https://azure.microsoft.com/en-in/pricing/calculator/
In the App Service section I am supposed to enter the following details
Region, Tier, number of instances and hours.
What does the instances mean here and on what basis should i select the Tier.
Does deploying a basic QnA bot using QnA Maker API require an instance. (does the instance imply a VM instance).
Currently, the limit is a 20-MB knowledge base used by QnA Maker.
Thank you.
Back to definitions
There are 2 different things here:
Your bot
QnAMaker
In fact you are not "deploying a bot developed using QnAMaker", you are "deploying a bot developed with Microsoft Bot Framework and using QnAMaker".
Your bot is a web API, with a simple endpoint ("xxx/api/messages") accepting POST requests and which will be used by the bot connector. Then on some cases it's calling QnAMaker but this call is a bit hidden if you use QnAMakerDialog in C# for example.
Hosting / Costs
To host a Web API in Azure (called an App Service), you will need an App Service Plan. There are different levels of Azure App Service Plan, depending on your needs:
You just need to select the one corresponding to your needs, no other actions are necessary (what is behind (VMs...) is not your purpose).
For example if you just want to demonstrate the use of a bot with QnAMaker, a Free App Service Plan is enough.
For the QnAMaker part, it's only calls of your QnAMaker project in background. Your project is exposed through the web on an URL. The use of QnAMaker is free, at the time of writing this reply (it's still a preview)
Last (but not least), there can be an additional cost depending on the channels you will be using to expose your bot. See Azure calculator for bot service for that: https://azure.microsoft.com/en-us/pricing/details/bot-service/

How to do a performance Testing with MS Botframework

We have created a bot which uses Luis to address user queries. Would like to understand how can we perform a performance testing to my bot which can be like a VSTS testing. Yes tried with VSTS also but of no use, since my bot api is always sending a request and response couldn't capture the exact one. Please help.
I'm not sure if you are using Azure bot service directly or the other way. Considering if you are using the Azure Bot Service following are the steps to configure performance test.
You can do performance test using Azure Bot Service from continuous integration tab
Select the team services account, subscription and location.
You can track the build and errors using Azure App insights
Let me know if you are looking for anything else.
Regards
-Jyo

Difference between Microsoft Bot Framework and Azure Bot Service?

I want to create a bot, but I am confused what is exactly Bot Framework and Azure Bot service? Can anyone explain in detail?
The best way to understand the difference is going through the docs. The Azure Bot Service documentation is available here.
In a nutshell, Azure Bot Service provides a set of templates to get started with the creation of Bots and accelerate the development since it provides an integrated environment. Of course, the templates that it creates are based on the BotFramework. With Azure Bot Service, you can even code your bot directly from the Azure Portal Editor, from the comfort of your browser.
If you don't want to start with Azure right way, and want to develop your Bot locally first, etc, you might want to use the BotFramework builder bits; but as I said; once you se Azure Bot Service, you are able to download the generated bot and continue the development from your machine if you want.
Admittedly you asked your question a year and a half ago, but in early 2018 it seems as though Microsoft uses the two terms interchangeably for one product.
Take, for example the documentation link from the bot framework home page, the title of this page is Bot Service Documentation:
https://learn.microsoft.com/en-us/bot-framework/
Also, in the Azure pricing calculator only Azure Bot Service is listed (under both "Analytics" and "AI + Machine Learning"). "Azure Bot Service" is what appears on the invoice.
Finally, when you go to create a new resource and search for "bot" the only related items that you will see are for Azure Bot Service, there is no mention of Azure Bot Framework there either.
Bot Framework - is comprised of an open-source SDK and tools for end-to-end bot development.
Azure Bot Services - a cloud platform that hosts bots, helps you manage, connect, and deploy your bot across devices and popular channels
Bot Framework Service - a component of Azure Bot Service, that responsible to sending the info between the app and the channel
Microsoft Bot Service SDK

Resources