LUIS Usage Status - botframework

In Azure Portal, I have created Web App Bot using Basic Bot template which includes LUIS creation automatically.
LUIS has Free2 - Web/Container comes with 10,000 transactions* free per month (https://azure.microsoft.com/en-in/pricing/details/cognitive-services/language-understanding-intelligent-services/).
a. How to I see my usage of the 10,000 transactions?
b. In my Azure Cost & Billing, I do not see the LUIS except the Bot Service, App Service and App Service Plan.
Thanks.

In the Azure Portal, under the list of resources there should be a Cognitive Services resource for luis, usually it will have the -luis suffix. Under the overview tab of this resource you will be able see your current usage:
In terms of viewing your LUIS costs, these can be accessed from under the Cost & Billing > Cost anaylsis section:

In order to see LUIS' usage, we need to create another LUIS resource in Azure and link the Azure resource via LUIS's portal.

Related

Deleted azure search as part of Web App bot

I had published my QnAMaker bot to Azure using the Publish option on the QnAMaker portal. Since I couldn't update the pricing tier in the Azure search service (that was created along with my WebApp bot), I deleted the existing one and created a new one. Now I don't see any KBs in my QnA Maker portal. I cant edit/ republish the KBs. Is there any way to retrieve my KB/ azure search indexes?

How to address high latency on Managed QnA Maker/Azure Cognitive Search Service after a period of no load

How do I prevent the Azure cognitive search service from becoming cold after a period of no load?
I use QnaMaker in chatbots (Managed QnA Maker Service version).
QnaMaker seems to idle after not being used for a while. The first query takes 7 seconds to complete. Every query after the first one completes within a second.
The chatbots themselves (developed with Microsoft Bot Framework V4 nodejs) show no latency. Even after not being used for a while (thanks to the "Always on" feature in the bots appservice)
I use the stable GA version of QnaMaker and the managed version (in preview). In the first version, the appservice for QnaMaker has the feature "Always On" enabled. For the preview version, there is no appservice I can check.
Chatbotcode initialization QnaMaker
const { QnAMaker } = require('botbuilder-ai');
const endpoint_fr = {
knowledgeBaseId: process.env.QnAKbId_fr,
endpointKey: process.env.QnaEndpointKey_fr,
host: process.env.QnaHostName_fr
};
try {
this.qnaMaker_fr = new QnAMaker(endpoint_fr, {});
} catch (err) {
console.warn(`QnAMaker Exception: ${err} Check your QnAMaker configuration in .env`);
}
the actual call to QnAMaker service
qnaResults = await this.qnaMaker_fr.getAnswers(stepContext.context);
The QnAMaker stack is linked to a Azure Search-resource. The one I am using has pricing tier Basic (1 replica, partition and search unit) 10 indexes are in use (15 are allowed) to store 7 knowledge bases. location is West Europe.
How do I prevent the Azure cognitive search service from becoming cold after a period of no load?
[update] Did some more digging and came to the conclusion that this cold start only occured for knowledge bases in the (preview) managed service. I decided to move all KB's to the stable version and the cold start problems stopped. This could also have to do with the fact that I am in Western Europe and the managed version is available in Northern Europe only
I'm glad that you are using "Always On". The QnA Maker team sometimes recommends adding quick availability/web test using Azure app insights monitor (see https://learn.microsoft.com/azure/azure-monitor/app/monitor-web-app-availability). This is essentially a probing service every few seconds that can resolve the cold-start problem.
I'm not sure about App Insights, but I do have a regular test I run against the QnA Maker service, primarily to monitor uptime, but it would double as keeping the service "warm". I set up an Azure Function (linked to the same App Service Plan as the QnA Maker app service) and just have it make a standard REST query at a defined interval (I use 15 minutes, you can use whatever and especially if you are using standard service tier there is no limit or extra costs on number of queries). You will just need to get the appropriate keys from the resource to make the request and store in your configuration or Key Vault, which I assume you are already familiar with from your bot itself. Should not create any incremental costs for you.
If it is possible to keep the service warm with just a ping, Jennifer's suggestion may work, but I can tell you that I have had 0 issues with the automated tests I've been running via Azure Functions.
I moved all my QNA knowledge bases back to the stable version. The managed version seemed to cause the cold start. Not sure why but my bots are performing again.

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/

LUIS is no longer free?

Luis is no longer free ?
I didn't open LUIS dashboard for 10-11 days. I'm seeing this now. They changed a lot of things there.
I must get azure key to get my LUIS app works ?
According to the pricing details, LUIS is not free. You are able to make 10K calls per month without charge, after which you are charged $0.75 per 1000 calls. Without more detail I am unsure of your second question. An azure key may be used to link LUIS to your bot.
Just to clarify LUIS has the same model as before, the new portal just highlights this information in a different way that's a little more confusing (we're working on it).
No Azure Account; free for 1000 requests/month using programmatic api key
With Azure, free for 10,000 requests per month (F0 plan in Azure)
With Azure, $.75/1000 calls
The thing that's new and confusing is the programmatic key with the low quota isn't connected to your app by default. We're going to fix that shortly.
Same happened to me. I had to create LUIS app in Azure and then provide key to LUIS application on LUIS.ai. But in LUIS app on azure, you can select the pricing tier as free if 10k calls per month suffice your application usage or choose paid plan according to need.
A start-key is default available with each LUIS model which can be used upto 10k calls per month
LUIS is free for Testing and Educational use. It is about 10000 conversations per month. However in production environment it has to be paid.
The important this is you can access LUIS feature via Azure or can independently integrate it into your application. The method of costing will depend on that as well.

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