What is msbot clone services for in Enterprise Bot Template? - botframework

I need to know what is msbot clone services for in a Bot Enterprise Template? what is the main goal of this command, if I configurate a LUIS application in Azure, I need this command to use my LUIS in my local bot? Is there a way to configurate LUIS manually in Bot Enterprise Template?

FYI: Enterprise Bot is being replaced by Virtual Assistant, which doesn't use msbot.
msbot is used for a variety of different purposes, but I'm assuming you're referring to the msbot clone command. Basically, it's just a command that makes all of the necessary services/resources in Azure and then updates your .bot/appsettings.json/.env file, depending on which is applicable to your environment.
You can use your own LUIS, but Enterprise Bot creates a lot of LUIS apps for you that are used in the bot. To use your own, you'd just need to add your LUIS config in your .bot/appsettings.json/.env file and then ensure that it's called in the appropriate places in your code. Personally, if I were to do this, I'd just run the msbot command and then replace whatever it generates with my own LUIS config.

Related

is there a way to connect an old luis.ai authoring resource to a newly created one?

When using Composer for the first time I created an app in luis and connected from Composer to the Luis app with the key.
In Azure the luis resources were created - (when the resources are created in Azure there is a resource-instance and resource-instance-authoring created, not sure the difference between the two).
I then wrote the bot in Composer.
After finishing the bot in Composer I let Composer publish and provision the Bot in Azure in a new resource group. It did this successfully.
When it publishes to Azure it creates a new luis instance and instance-authoring in the newly created resource group.
When I go to the newly created authoring instance in luis there is nothing there, because that isn't the authoring instance I initially used to write the bot and it says the managed identity is disabled.
And in Azure under in AzureBot/Properties where it says "luis app ids - view values as json" this is empty.
Is there a way to use the data from one luis instance (the instance that was used when the bot was written) and transfer that information to the newly created instance that Composer creates when publishing to Azure?
I ask these questions for the issues i'm having now, but also, in the future if I create a new bot in composer and set it up in luis - and then have Composer publish the new bot - it will create a separate luis authoring instance and i think i'll be in the same position as i am now.
Thanks
Not easily. At least with regards to provisioning. Composer unfortunately wasn't designed that way. Ideally the best way is to provision LUIS first and then utilize that authoring resource to author the LU and then publish when ready. Also; since your app is in the prediction resource, but nothing is in the authoring resource, you can export them from either the previous/working authoring resource or the prediction resource and import into the new authoring resource. Then you can then author and publish from there to prediction. Of course, this authoring would be for minor things like further training of intents.

Bot Framework Orchestrator create snapshots at runtime / Orchestrate between multiple KBs

I am creating a ChatBot using the Bot Framework SDK v4 with Orchestrator.
As per the docs, Orchestrator works by using a pretrained model to create a snapshot of .lu & .qna files, and then dispatches to the correct LUIS or QnAMaker service depending on user input by referring to the Orchestrator snapshot.
However, for my bot, which has several knowledge bases with several dozens of contributors this is a very tedious task. You have to export each knowledge base using the bf CLI via
bf qnamaker:kb:export -o filename.qna --kbId="mykbid" --qnaFormat
and then move the resulting .qna file into the CognitiveModels folder, then create the Orchestrator snapshot manually. Then I also have to redeploy the bot to Azure just to update the Orchestrator snapshot.
This means every time any knowledge base is updated I have to do this manually periodically in order to update the bot so that Orchestrator properly dispatches to the correct KB. I feel like this should be something that's automated during runtime. I don't see anywhere in the Docs a way to do this.
Since LUIS models aren't updated as regularly I thought that I could set the default case as the QnaMaker, so any unknown intents get mapped to QnAMaker by default and therefore the snapshot doesn't have to be updated as often. But the problem with that is if you have multiple QnAMaker KBs, there's no way to federate the KBs into a single QnAMaker endpoint (AFAIK; if it is possible this would solve my issue) so you have to rebuild Orchestrator snapshot to dispatch between different KB services as well.
Are there any suggestions on how to automate creating Orchestrator snapshots?
As far as I am aware, there is no automated method of accomplishing this. If everything you need to do is in the CLI, you could write a script to automate the task for you, and either run it as needed or use something like cron to run it automatically (assuming the machine running the script is on at the specified time).

Microsoft Teams and Azure DevOps integration versioning

I am investigating why I cannot set up a hook to integrate Teams and Azure DevOps. I am running two versions in different environments for comparison- but I am trying to hook the two together in the same environment.
First environment, version 1.3.00: This has the app built-in for Azure DevOps to hook and connect with Teams
Second environment, version 1.2.00: This version has no 'manage apps' button, and does not have anything referencing Azure DevOps or allowing to make any connection between Azure and Teams. This is the environment I am trying to make the connection in.
Any thoughts on this? Does 1.2.00 version not offer the hook between Teams and Azure DevOps? We do not have O365 accounts for this environment.
To access the Manage apps page, you must be a global admin or Teams service admin. You may check your permission. Also, add microsoft-teams tag for you case may help you get more assistance.
https://learn.microsoft.com/en-us/microsoftteams/manage-apps

Is it possible to Backup a QnA Maker Knowledge with Azure Pipelines?

Im working with bots from the Microsoft Bot Framework (SDK4).
My Bot is connected with LUIS and two KnowledgeBases.
The CI/CD process is realized with Azure Pipelines.
Im wondering if it is possible to backup a knowledge Base with the Release Pipeline within Azure Pipelines.
You can try to write a script in azure pipeline to download the knowledge base from QnA Maker programmatically.
The download process is programmatically available using the following REST API:
GET {Endpoint}/qnamaker/v4.0/knowledgebases/{kbId}/{environment}/qna
You can refer to this document for details.

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