How to do a performance Testing with MS Botframework - 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

Related

How to deploy a Question Answering BERT Model as a chat bot on MS Teams

I have a Text2SQL model (EditSQL: https://github.com/ryanzhumich/editsql) which I have configured to take a sentence as input and return a SQL query as output.
Now, I want to deploy this program as a chat bot application in Microsoft Teams.
I understand there's Microsoft bot framework that enables publishing a bot and the 3 options are described here.
https://learn.microsoft.com/en-us/learn/modules/choose-bot-building-tool/
However, I am not finding any of them suitable for my use case since I need to deploy a Question-Answering Bot where the Questions from users need to be sent to an external server like AWS and the response from AWS (could be an excel file) needs to be sent back to the user. Multiple questions can be the part of a conversation, so the chat client should be able to mark start and end of a conversation.
My problem:
What are the basic steps of exposing a ml model via a server so that it can be queried in production.
What are the tools that will allow me to make a client on Teams and a server for this model on AWS?
Please let me know if I should add more information on this.
Thanks
As you've seen, there are a bunch of tools/approaches to creating bots in the Microsoft world, for Teams or otherwise. Underneath, these all use the Bot Framework, but you can develop directly (i.e. write code), or use a higher-level tool like Bot Framework Composer - the choice is yours depending on your own internal skills. If you want to work with code directly, here are a bunch of bot samples, in multiple languages: https://github.com/microsoft/BotBuilder-Samples/tree/main/samples . For isntance, here is an example of integrating the Microsoft QnAMaker service into your bot: https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/python/49.qnamaker-all-features
Basically, if you go the development approach, your bot is just a web service. Once it receives the message, it can call out to any other service behind the scenes. That means it can receive a message, call out to an AWS service, receive the response, and send a reply to the user.
For multiple questions as part of a 'set' of chats, Bot Framework provides an idea called "dialogs" that should work for you.

Azure Bot Service Slack Integration

I'm currently evaluating Azure Bot Service using Azure Function as a Slack bot.
It works fine with direct and group messages, but I'm having troubles to make it work with app_mention events, the azure function is not getting fired at all.
Also, i'd like to experiment with slash commands, which are also a feature available to slack app.
Reading the docs, I understand have to write my own middleware to parse these messages, but it's not clear to me how can I do it with Functions.
Is it possible? Or will I need to host a separate webapp?
Turned out that Azure Bot Service is currently supporting a subset of Slack events out-of-the-box; this was not clearly stated in the documentation.
We ended up with a first prototype based on Bot Service integrated with the basic Slack events, will evaluate it and then proceed with a full bot-framework WebApp if needed.

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/

Is it possible to Register/provision a Bot via service

I'm looking at using the Bot Framework (https://docs.botframework.com) is it possible to register a bot programmatically e.g via service? I see there are Azure bots but still don't see a way to register via service?
At the moment you have to manually log into the portal to register the bot and obtain your keys. There has not been any indication from Microsoft that this will change in future.
from what I know about the goals of the dev team, since this is a highly requested feature, we will probably see this in action in future version of the bot framework.
But no kind of timeline yet for this feature.

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