Virtual assistant template and integrating skills - azure

I have been trying the newly launched virtual assistant template (C#) of the bot framework, downloaded it from here https://github.com/microsoft/botframework-solutions/tree/master/templates/Virtual-Assistant-Template/csharp and deployed it using deployment scripts and the default setup works well.
As a next step, tried to add remote skill (few of the existing skills such as Calendar) using relevant script and it worked too.
Basic question we have is, would we need to download existing skill from here https://github.com/microsoft/botframework-solutions/tree/master/templates/Skill-Template/csharp and deploy it in our own Azure environment or can we just use already published skills such as thishttps://bftodoskill.azurewebsites.net/api/skill/manifest
If yes, that's perfect! however if not - will it make sense for the bot framework team to release skills as a service so that end users can simply consume already available and published skills in their virtual assistants?

Looks like they are in the process of working on the publish scripts for Skills:- https://github.com/microsoft/botframework-solutions/issues/1496.
However, you should be able to manually build the Skills by leveraging the source code located here (disclaimer: not tried myself): https://github.com/microsoft/botframework-solutions/tree/master/skills/src/csharp.
UPDATE: You can find the deployment scripts for a given Skill under the Deployment/Scripts folder in the root of the Skill's directory (e.g. /skills/src/csharp/calendarskill) in the repo. Instructions on how to run these scripts can be found at: https://github.com/microsoft/botframework-solutions/blob/master/docs/tutorials/assistantandskilldeploymentsteps.md.

Related

How to download/clone source code from Azure App Service to local machine using azure-cli/powershell

I happened to check an article which explained on how to download Azure app service source code:
How to download Azure App Service Source Code Download
I would like to have something similar to be achieved (leveraging azure-cli/powershell), but based on following order:
Step 1: Download app service source code using azure-cli / powershell commands
Step 2: modify source code (locally)
Step 3: create a zip of source code (locally)
Step 4: Stop app service using azure-cli / powershell commands (getting it ready for deployment)
Step 5: Deploy the zip using azure-cli / powershell commands
Step 6: Start app service once the deployment is succesfull
I was reading a lot about azure-cli in order to work with app service. Most of the articles start with creating an app and in my case, I have to start with an existing (already deployed) app. I couldn't find an article which actually shows on how to download/clone an existing app service on to local machine (other than using git endpoint). In the above, "Step 1" itself is a major hurdle for me.
Also, in this scenario, I would like to avoid "git" (based clone/push/deployments) if at all possible. No offence on using Git, but, just wanted to learn other available options.
If I can have (azure-cli/powershell) examples for Steps 1, 4, 5 and 6, they will help me learn quite a bit.
First of all, your order is not recommended. For safety, developers would rarely publish the source code directly in most instances.
If you want to download your own project published to Azure already, the best way is using FTP, which you post with the link.
Just a reminder, even you could download the source code, as I said, it is the code compiled, which would cause some mess when you use it. So store you source code well to avoiding this situation.

How can I download the Azure Bot source code in Python?

Via the link below I know it is possible to create a Web App Bot in Python and to deploy it. At the moment I have a created a bot remotely in Azure using QnA Maker, and I was hoping to download the source code in Python and build some feature locally and deploy it afterwards. I am currently stuck at this, because the download source code options only lets me download the source code in C#. In Configuration -> General settings -> Stack settings, I changed the Stack to Python already, but this seems to have no effect. Thus I have 2 questions:
How can I download the bot's source code in Python?
If the Stack setting did not change the source code, what is this setting's purpose?
Please let me know whether I need to change/add something to this question and/or problem statement. Thanks a lot!
link: https://learn.microsoft.com/en-us/azure/bot-service/python/bot-builder-python-quickstart?view=azure-bot-service-4.0
You can't download python source code off azure, because there are no templates on Azure for python. The only templates that exist are node and C#. When you clicked the 'Create a bot' on Azure, there is a setting in the creation blade that shows what language to create your bot in:
I'm not sure how you're downloading your source code, as when I got to my bots to get the code, there isn't an option to change my language, only a prompt asking if I want my app settings and keys.
The bot framework samples repo has a sample QnA bot here. You can add your qna keys into this bot, test locally and deploy from local up to azure. But there is no way to pull 'source code' in python from azure.

Visual Studio ClickOnce Web Deployment

I would be most grateful if anyone could help me solve this problem with ClickOnce Web deployment.
I have read all the threads on this subject and I have also read through all the Microsoft documentation on the subject. They seem to say a lot without actually being direct or providing helpful examples. However, perhaps I am wrong and I have not looked in the right places.
I have already used ClickOnce successfully to deploy an application on the local area network.
It works well and really isn't that complicated. However, my goal is to deploy this application to customers, who are not connected to my local network.
I have set up a web site (www.mydomain.co.za), which I can access directly or via the ftp protocol.
I have created a sub directory off the root where I intend to publish the files created by the publish function. The publish function of the application requires a Publishing Folder Location and a Installation Folder URL I don't really understand the functional difference between these two locations. If I set the Publishing Location to ftp://www.mydomain.co.za/MyProductName and the Installation Folder URL to http://www.mydomain.co.za/MyProductName, then the publish process succeeds and when I check on the web server, the files have been published successfully it would seem. A further Application Files/MyProductName subdiectory with the version number information appended was created where all the output was placed.
My next step is to then grab the URL of the setup.exe file and to run it from a browser. This downloads the setup.exe file to my downloads folder which I then try to run but I get an error
Deployment and application do not have matching security zones.>
I have seen this come up in other threads but These threads don't seem to relate directly to what I am trying to do. These threads make mention of using Internet Explorer to achieve some degree of success, but all the browser did was to download the file.
I have also noted with interest that a web page is created in the root with a button that prompts the user to install the application. This does not work either.
Does anyone know of an article that I can read on this subject which is more helpful or if anyone can offer more insights into this I would be very grateful.

Deployment custom App in Microsoft Teams

I am developing a chatbot azure service, which I want to integrate within Microsoft Teams. So far everything is working but the "re-install" of the package in the Microsoft Teams.
I created a publish "folder-profile". Then I zip the result with the manifest.json and the icon files inside. I go to the Manage Team section and in the Apps tab I select upload a custom app. Then I choose the .zip file and the service seems to be there(Actually it is there)
It works, but when I create a new version and I repeat the described steps, it seems like Microsoft Teams is still using my old code.
I test the chatbot in the Chat by using #"APP-ID" and I see how my changes work, but installed as an App for the "Team" keeps the old version.
I tried to uninstall it, check if the bot is gone(it is gone) and then upload again, but some kind of cache is there and the bot behaves like in the previous version.
Any idea how is the correct way to deploy new versions of my app in Microsoft Teams?
I think you need to upgrade the version number in the manifest.json file (you can do it in the manifest.source.json before to generate your zip).

nUnit and Azure - How to start Dev Fabric from nUnit

I'm trying to create a worker process for Azure and I'd like to test it via nUnit. I need to write a process which connect to storage and uploads data to it. The problem is I can't find any references to how you actually set up the testing framework to start dev fabric etc.
I've created the Work Processor role and then created a testing project, wired up nunit to start and for the project to pick up the test project dll. This all works fine with nUnit opening, I'm able to see the test dll and run the test.
My issue is "How do I get the dev fabric to start up when running the project through nUnit?" I'm presuming that I need to put something into the setup routine within the test project but I can't see what I should put in.
If anyone has any tips, experience etc., links to how to etc. I'd be very grateful. I'm sure that I can't be the first person who want to put Azure projects under test.
Haven't done this myself, but the DevFabric (compute and store) has a command-line interface.
You would just invoke the commdn from your test stand-up routine and it should be good to go.
CSrun.exe is the command, please see MSDN for usage reference:
http://msdn.microsoft.com/en-us/library/gg433001.aspx

Resources