How to convert a V4 bot to a Skill? - botframework

We are planning to add existing bot which is V4 to our Universal Bot which is in Virtual Assistant template.
For this we have come up with the Skill based approach via which we can add skills to existing VA.
The challenge which we are facing now is that we couldn't find link which was there earlier to convert existing V4 bot to skill (https://microsoft.github.io/botframework-solutions/skills/tutorials/convert-v4-bot/csharp/2-add-packages/).
and the link which there in FAQ section(https://microsoft.github.io/botframework-solutions/help/faq/ ) under "How do I convert an existing v4 Bot to a Bot Framework Skill?" redirects me to a Microsoft page implementing a skill (https://learn.microsoft.com/en-us/azure/bot-service/skill-implement-skill?view=azure-bot-service-4.0&tabs=cs)
The current document has section of migrating Virtual Assistant to Bot framework Skill(Migrate existing Virtual Assistant to Bot Framework Skills GA).
but I cannot find any page in updated document which can guide me to convert existing V4 Bot to skill.
Please help us with the same.

Looks like your problem is solved on GitHub in this issue. For others with a similar issue, here is the explanation.
The link https://learn.microsoft.com/en-us/azure/bot-service/skill-implement-skill?view=azure-bot-service-4.0&tabs=cs described how to implement a skill. If your bot is based on the BotBuilder SDK greater than or equals to 4.7.0, then your bot is automatically a skill. Virtual Assistant that's created based on the Virtual Assistant Template that's greater than or equals to the 0.7 release will be able to connect to a skill without extra work.
Hope this helps.

Related

Chat Bot is not working - HTTPS internal server error

I have created a sample Echo bot for testing i've followed the given instructions in the MS tutorial site.
Created a web app service
Downloaded the MS bot framework v4 SDK - Echo Bot
Got the Publishing profile
Published the bot using visual studio
tested the chat bot When i test my bot in Test in Web Chat option in bot channels registration.
before that i tested in bot framework emulator, it was working fine as expected.
I checked the microsoft appid and password, it is all fine.
what am i missing to look on. can anyone please guide me.
Finally I've found the issue, though it a minor mistake. I wanted to update it here since many new Azure Bot users might do this mistake like me.
It was due to the option which i selected in while doing the app registration, After selecting the third option for Who can use this application or access this API?
It always good to select Multitenant option to make the bot to work for everyone.
If your requirement is restricted to one particular tenant then you should select the first option. But it is not in my case.
Accounts in any organizational directory (Any Azure AD directory -
Multitenant) and personal Microsoft accounts (e.g. Skype, Xbox)

3D Avatar Implementation on Botframework V4

I'm searching for knowledge sharing on how to connect a 3D avatar with a bot.
Something like done on Bot Libre https://www.botlibre.com/forum-post?id=682689 .
The implementation can be on WPF, UWP or web.
I'm currently working with Botframework V4.7 and C#.
Thanks in advance,
Amintas
This will likely require you to build a custom connector to pass your bot's incoming and outgoing activities thru to the Bot Libre system. There are examples out there of connectors/adapters that have been built by 3rd parties, such as this Twilio WhatsApp adapter, this Twitter adapter, or this Alexa adapter if you are planning on building in C#.
Any adapter you build won't need to be as full fledged as these are as you are only designing for what you know you need, and not for the masses.
You will also need to research Bot Libre to see which API endpoints might be relevant to you. You can see a listing of APIs here. Really, this holds true for any service like Bot Libre that you decide to land on.
Hope of help!
It depends on the Channel your bot is deployed on and what does the channel supports. For example if your bot is deployed in Facebook Messenger, you can achieve this by creating a web page that renders a 3D Avatar and using Bot Framework you can send a web_url button from which the user will press and the web page will open up inside of messenger with the rendered avatar.

Does microsoft bot or luis provide an interface for tracking failed interaction and let us map them to the correct intent?

I have setup a microsoft bot with LUIS and I am wondering if Microsoft provides an interface for tracking all interaction either failed or detected and allow us to map them to correct intent like Dialogflow and Microsoft Bot Framework.
I think you should look on the documentation. The main regarding your question is the new Dashboard feature announced at Microsoft Build 2019.
Basically it provides graphs like this one:
Or this one, by intent:
Those graphs allow direct access to the intents / utterances which have problems.
See documentation: https://learn.microsoft.com/en-us/azure/cognitive-services/luis/luis-how-to-use-dashboard
Note: it was also possible before the arrival of this dashboard feature

QnA Maker with cards

I want to add cards in my QnA Maker. I my QnA maker if anyone asks about "what services we provide?" Bot should answer (for example: We provide following services /n/n 1: Bot Development /n/n 2: Web Development /n/n 3: Documentation). In this example bot should reply it with the card and if user clicks on any of the above mentioned services than it should gives details about that.
Thanks in advance...
QnA Maker has just released a new feature called multi-turn conversations whcih does exactly what you are looking for.
Once you have added some multi-turn conversations to your knowledge base you can try this out by downloading the BotBuilder-Samples repo and opening the qnamaker-prompting sample (C# and NodeJS provided) then you can plug your knowledge base details into the appsettings.json (C#) or .env (NodeJS) file and test the functionality locally using the Bot Framework Emulator.
The key part is this method which checks to see if the result contains any prompts and returns the response accordingly - it is called inside the controller.
This should give you a good idea of how to get started.

Can't change language in botframework

I created a bot in botframework (microsoft Azure) connect to a LUIS App. It worked all very well. But in english. The connection between the Bot and LUIS App has been done automatically.
Now I want it to work in German. So I created a new App in luis with de-de culture. Created my german intents. Published it.
I followed the instructions from LUISChatBot. I could retrieve LUIS AppID and Authorizing Key as well as the endpoint of the German LUIS App to add it to my Azure chat bot. And the bot continues to understand only the intents in english!
So I guess the connection doesn't work how it is explained in the instructions above. Even worse : even if I put nothing ( = I remove the ID and Key and let it empty) in LuisAPIkey or LuisAPIId represented in the image of the Azure Chatbot settings, the bot continues to understand the english intents !?!
How can I make it work? I looked in the code of the bot, but I don't find the key appearing there (which makes sense). The only think I found, was in BasicLuisDialog.cs :
public BasicLuisDialog() : base(new LuisService(new LuisModelAttribute(
ConfigurationManager.AppSettings["LuisAppId"],
ConfigurationManager.AppSettings["LuisAPIKey"],
domain: ConfigurationManager.AppSettings["LuisAPIHostName"])))
{
}
Thank you for your time
Half-Answer : I could change the language by changing the region in Azure (west EU) and then also use eu.luis.ai.
But I still don't know why the chatbot continued working when I removed the key and endpoint of LUIS in Azure.
you can use
var english = new Option();
english.Locale = "en-US";
Reference: GitHub
or
In BotSDK v4.0, you can use System.Globalization.CultureInfo("en-US"); to translate your existing language to the language you needed.

Resources