Difference between Microsoft Bot Framework and Azure Bot Service? - botframework

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

Related

Bot Framework - Handoff conversation to a live agent in Microsoft Teams

We have built a support QNA chatbot with the Microsoft Bot Framework v4 on Javascript. We have managed to handoff the conversation to a live agent in a web chat when the bot doesn't have the right answer.
Our requirements are to handoff the conversion to a live support agent in Microsoft Teams. We saw there is an example of how to do this somewhere in Microsoft's documentation: https://learn.microsoft.com/en-us/healthbot/handoff-teams
The problem is that this uses a marketplace app designed for healthcare and we cannot find any documentation on how to do this without this management portal or how we can set up the handoff on our own.
Any bit of information regarding this use case would help. Thanks!

What's the difference between Azure Bot Service and QnA Maker Knowledge Base?

I don't understand the difference here, but there must be one. With the Azure QnA Maker, I can create a list of questions and interact with the Knowledge Base via an API and get answers back. What additional features does the Bot Service offer?
QnA service can only retrieve answers from the Knowledgebase, nothing else. You can think it as a fancier Database, you can query it using human language.
Bot Service is the application layer, you can build other business logic in this layer to make your Bot looks smarter. e.g. User asks "What's the weather tomorrow", when your bot service receives this message, you can call the weather API to get the weather, instead of forwarding the question to the QnA service. The bot service also provides interfaces to integrate with different chat channels like Teams, Slack, etc.
Of course, you can do much more in the bot service based on your own business needs. If your bot is solely used for QnA, this layer indeed will seem to be a thin layer wrapper.
The Azure Bot service is just a bot managing SaaS which offers multiple things like ability to automatically push you bot onto multiple channels(teams, slack, facebook etc.) without needing to code the adaptors. It also offers other services like hosting your bot onto the Azure cloud servers and other services like LUIS (Microsoft's NLU), QnA maker, speech service etc.
The web channels adaptor is mostly free which the bot hosting and other services are paid

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

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.

Resources