Cannot connect QnA maker into Bot Frameowrk Emulator - azure

I am trying to load my QnA maker in addition to my QnA chat bot from Azure into Bot Framework Emulator.
I have been able to load my chat bot in successfully with it returning a response. I have entered the knowledge base data it required inside the Azure chat bot settings as well and the Visual Studio code (C#). But when I enter text into the chat bot inside of the bot framework emulator it replies with: Please set QnAKnowledgebaseId, QnAAuthKey and QnAEndpointHostName (if applicable) in App Settings. Learn how to get them at https://aka.ms/qnaabssetup.
Screen shot of what is displayed when I make contact with my chatbot inside of the bot framework emulator
Any help with resolving this issue would be greatly appreciated!

QnA Maker is generally available from May 2018. New architecture is built on Azure, where the runtime is now deployed on Azure App.
Now, if you are using new QnA Maker GA, it requires three parameters to get connect with Azure Bot Web App Bot. KnowledgebaseID, AuthKey & Host Name.
Host name is nothing but Web App URL deployed whiled creating QnA Maker service,
appname.azurewebsites.net/qnamaker
You have to provide this in Application Settings in Azure portal or alternatively in Constructor code part.
Thanks!

Related

Azure deployed bot does not respond back

I have deployed a bot on Azure and its deployed to the web channel. I am using it through a website. It was also working through the web link a few hours back and now it does not. I didn't change the code or any settings in the services.
I am using node.js code and QnA maker services. Individual services are up and running.
Can someone help me what shall I tweak to access the bot from the web link again?
Thanks,
Vivek Jain

Can not connect QNA maker to Azure Bot Service

I am facing with the problem because I can not connect qna maker bot to azure bot service. On qna maker platform everything works good, but when I go to bot service and test in web chat it does not work, it just repeats message I typed. I have already coppied QnAKnowledgebaseId, QnAAuthKey, and the QnAEndpointHostName from QNA maker to bot service settings. enter image description here
The responses appear to be coming from the Basic template. Please try creating a bot using the Question and Answer template:
This will add the Microsoft.Bot.Builder.CognitiveServices package, with a QnAMakerDialog.

QnAmaker, can't find Channels tab

I deployed my QnAmaker chatbot using the new GA QnAmaker portal today. But after creating the knowledge base, i can't find the channels tab in Azure anymore.
In the channels tab, you could deploy the chatbot to different channels like Microsoft Teams or the Webchat.
Has anyone found this tab in Azure?
You just created your QnAMaker knowledge base and all the necessary items to use it (web app to host the service, Azure Search for the search part).
Now the next step is to create a bot by doing the following:
On Azure, create a Web App Bot
Use Question And Answer bot template in order to have the basic code to call QnAMaker already implemented
Once it is created, you will have at least the following resources: one Web App bot (to manage channels) and one App Service (hosting your bot code)
Go to the Web App Bot item
Select Application Settings menu, you will found several settings: QnAKnowledgebaseId, QnAAuthKey and QnAEndpointHostName
Fill those values with your QnA settings:
QnAKnowledgebaseId: it's your knowledge base Id on QnaMaker.ai website
QnAAuthKey: it's the Authorization EndpointKey value on QnaMaker.ai website (check https://www.qnamaker.ai/UserSettings)
QnAEndpointHostName: the endpoint location where you published your KB (also visible on https://www.qnamaker.ai/UserSettings)
Save
Then it's working ;-) and you can set the channels you want on the Channels menu of this Web App Bot item
Yes! It's still there. QnA MAker going GA has no impact on its functionalities but the way of implementation to some extent, which is of course in a good sense.
You Can find it on Azure Portal => Web App Bot => Bot Management section
Happy Coding!

published bot on skype but it's not working

I have a bot that I've created by merging LUIS and QnA together in a single project using Microsoft Bot Builder.
I published the bot to an EC2 instance from visual studio and I'm using the Bot Framework Emulator for testing and it works perfectly. (MUST use ngrok for tunneling).
Now I want to deploy the bot on Skype. I logged into the Bot Framework Portal and I registered my bot. Now comes the configuration part.
I'm not quite sure what to set as the HTTP endpoint here.
I found this in the Bot Framework documentation:
Complete the Configuration section of the form.
Provide your bot's HTTPS messaging endpoint. This is the endpoint
where your bot will receive HTTP POST messages from Bot Connector. If
you built your bot by using the Bot Builder SDK, the endpoint should
end with /api/messages.
If you have already deployed your bot to the cloud, specify the endpoint generated from that deployment.
If you have not yet deployed your bot to the cloud, leave the endpoint blank for now. You will return to the Bot Framework Portal
later and specify the endpoint after you've deployed your bot.
When I published from Visual Studio, from the Azure App Service Activity windows, I found this line:
Start Web Deploy Publish the Application/package to https://ec2-00-000-000-00.compute-1.amazonaws.com:PORT/msdeploy.axd?site=bots ...
I used that address for the Messaging Endpoint in the configuration and I published my app. However when I'm testing it on Skype, i'm not receiving any messages from the bot.
I don't know what the problem is exactly, does this have something to do with ngrok? Or am I missing a step here, is there something else I should be doing to deploy the bot on Skype? Maybe something to do with the appid/password that I need to use ... i really don't know
Would really appreciate an explanation of how this works exactly. I don't really understand how the whole deployment procedure works exactly, feels like i'm swimming in murky waters.
Your endpoint is going to be the root of your deployed web application instance, plus the route that your bot is listening on.
For example, one of my bots is deployed to the free version of Azure Web Sites. The URL for a site such as this is https://APPLICATION_NAME.azurewebsites.net and the route that the bot listens on is the default /api/messages. This makes the endpoint https://APPLICATION_NAME.azurewebsites.net/api/messages.
If you connect directly to your app's endpoint, you should at least get a JSON dump with an error message. To make sure your site is getting deployed, drop an HTML file into the root of EC2 and see if you can access this.

QnA Maker SDK/Azure templates active learning and endpoint URL

Once the bot is created using qnamaker.ai, I wanted to deploy it in Azure using the SDK and publishing from VS2017, which let me define the top parameter to enable the Active Learning as shown in https://github.com/Microsoft/BotBuilder-CognitiveServices/tree/master/CSharp/Samples/QnAMaker
But when I want to register it in dev.botframework the end point URL doesn't work.
If I use Azure Bot Service template, is not possible to set the top parameter but registering in my Bots is ready straight forward.
I have realized that the URL from Azure template contains some extra info, that is not available in my web app
...code=2xDGuyPbupZIm8zsDOucgcHDvXO908dPIad2LFG2y/37TPecdMfQEw==
A "typical" URL from Azure, that work with other deployed Bots is https://"MyBotName".azurewebsites.net/api/messages
Please, can you help enabling the active learning in Azure templates for a Q&A bot?
Can you explain me what should I add to get the "extra details" in my Web app URL?
I think there is some misunderstanding here. The QnA Maker site is not creating any bot for you. It just provisions the QnA service (a rest API).
If you want to have a bot on top of the service you created, grab the code of the QnABotWithActiveLearning sample that you linked, update the QnADialogWithActiveLearning.cs class to include your QnA subscription key (that you can get from the Settings tab of your QnA service), update MicrosotAppId and MicrosoftAppPassword settings on the Web.config with the ones you got from the BotFramework developer portal and deploy to Azure as a Web App.
Once done, you will have the standard websites URL https://"MyBotName".azurewebsites.net and the API endpoint https://"MyBotName".azurewebsites.net/api/messages.
Then just update your bot URL in the BotFramework portal with this URL.

Resources