Giter VIP home page Giter VIP logo

azurebot's Introduction

AzureBot Sample

The AzureBot is a sample that showcases how the Microsoft Bot Framework and Cognitive services can be used to create intelligent bots. The sample was created to show how a bot can be used to improve the productivity of any developer, admin, or team working with Azure. If you would like to set it up yourself and contribute, follow our Developer Set Up.

As of January 29, 2018 we no longer maintain or host this Bot.

The current implementation focuses on authenticating to the user's Azure subscription, selecting and switching subscriptions, starting and stopping RM-based virtual machines, and listing and starting Azure Automation runbooks.

AzureBot Example

Developer Set Up

AzureBot is built with the Microsoft Bot Framework and the Microsoft Bot Builder C# SDK. It uses the Azure Resource Manager Nuget package and other Azure packages.

Follow our Developer Set Up guide to get started.

UX Guidelines

If creating new commands, our UX Guidelines are helpful for the conversational tone and best practices.

Contributing

Note that the AzureBot is a sample and not actively supported. If you are interested to take over maintenance of this project, please file an issue.

Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

Copyright and license

Code released under the MIT license

azurebot's People

Contributors

dtzar avatar ejadib avatar erichexter avatar f2bo avatar fitzgeraldsteele avatar juanar avatar nzthiago avatar toddrob avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

azurebot's Issues

Unable to handle not completed Runbooks

If the runbook goes into any other status than completed, the bot will not return the status. The bot should be able to handle all statuses including starting, suspended, etc.

Login problem with AAD

Start run book crashes bot

If you type "start run book" it will crash the bot with an error. "Oops! Something went wrong :(. Technical Details: Sequence contains no elements"

Activities reply is missing in skype

Hi

I found that Activities reply is missing in skype, but same code works in Web chat

like message "Welcome You!" not appeared in skype

bug in code:

case ActivityTypes.ConversationUpdate:
                    var client = new ConnectorClient(new Uri(activity.ServiceUrl));
                    IConversationUpdateActivity update = activity;
                    if (update.MembersAdded.Any())
                    {
                        var reply = activity.CreateReply();
                        var newMembers = update.MembersAdded?.Where(t => t.Id != activity.Recipient.Id);
                        foreach (var newMember in newMembers)
                        {
                            reply.Text = "Welcome";
                            if (!string.IsNullOrEmpty(newMember.Name))
                            {
                                reply.Text += $" {newMember.Name}";
                            }
                            reply.Text += "!";
                            await client.Conversations.ReplyToActivityAsync(reply);
                        }
                    }
                    break;

Eugene

CanHandle method doesn't work against latest Microsoft.Bot.Builder package

I'm trying to use latest Microsoft.Bot.Builder package (3.5.3) with this solution, but the BestResultFrom method signature changed from
protected virtual LuisServiceResult BestResultFrom(IEnumerable<LuisResult> results);
to
protected virtual LuisServiceResult BestResultFrom(IEnumerable<LuisServiceResult> results);

Any idea how to fix the code block below to work against the latest code?

public class AzureBotLuisDialog<R> : LuisDialog<R>
{
    public async Task<bool> CanHandle(string query)
    {
        var tasks = services.Select(s => s.QueryAsync(query, CancellationToken.None)).ToArray();
        var winner = BestResultFrom(await Task.WhenAll(tasks));
        return winner != null && winner.BestIntent.Intent != "None";
    }
}

Support MSA Auth

Currently AzureBoth only supports authentication using Azure Active Directory accounts, not Microsoft accounts (i.e. Outlook, Hotmail, etc). We depend on the AuthBot https://github.com/matvelloso/AuthBot, so this functionality enhancement should happen there. Enhancement would be making auth work with MSA.

Bugs would be not graceful handling of when you authenticate with MSA account to let people know we don't support MSA.

  1. MSA is global admin of tenant - you get: "message": "An error has occurred.", "exceptionMessage": "AADSTS65001: The user or administrator has not consented to use the application with ID '88443132-9b52-485d-90ed-49f37efd1c2b'. Send an interactive authorization request for this user and resource.”
  2. MSA is just a user in the directory - you get an infinite spinning wheel like this:
    image

Help improvements

From @ejadib on May 26, 2016 22:57

  1. Add info about Forms and how to quit of them
  2. Add info about conversation inactivity

Copied from original issue: dtzar/AzureBot#81

Ability to handle optional runbook parameters

If a runbook has an optional parameter, there is no way to skip input OR be visibly aware that it is an optional or mandatory paramter. To remedy a suggestion would be:

  1. Allow keyword text like skip to input a null value for the parameter
  2. When it asks for parameter input, always list if it is mandatory or optional.

List runbook descriptions

People should be able to display the description of what each runbook does.
list runbook description would be the command to make this work and really only makes sense to be implemented after "list runbooks" is completed.

We should also update the default text:

  1. after "list runbooks" output to include "Type list runbook name description to get details on any runbook."
  2. Assuming there is no way to programmatically get description for parameters, then also the parameters dialogue after starting a runbook become: "Please enter the value for parameter: NamesOfResourceGroups.
    If you're unsure what to input, type quit followed by list runbook actualrunbookname description to get more details."

Unable to list runbooks within Skype

When asking to list my Azure Automation Runbooks in the Skype client I don't get any returned. When running the same command (list runbooks) in Microsoft Teams or Slack.

Stefan
[MSFT]

Can't login with AAD

Hello,
after inserting my AAD user I receive the following error:

AADSTS90093: Does not have access to consent.

Stop/Start All VMs in resource group doesn't observe resource group

If you do a start or stop all VMs in resource group it will just default to stop/start all vms (not just the ones inside the resource group). Looking a little bit into the code and LUIS it appears LUIS does pick up the ResourceGroup EntityRecommendation value. Not sure why it doesn't scope the VMs properly to start/stop without debugging.

Microsoft Teams AzureBot is unresponsive

Just started using Microsoft Teams this week. I opened Chat, 'Discovered Bots' and added the AzureBot which now shows up in the Chat panel.

I can enter messages to AzureBot but there is no response - or error messages. I cannot find any way to confifgure or try re-installing the bot. Is AzureBot a hosted service or do I have to clone and host it myself?

azurebot unresponsive

Microsoft Teams authentication problem

After login when using Microsoft Teams - when you copy/paste the authentication number to AzureBot, you get: "I’m sorry, but I couldn’t validate your number. Please try Authentication once again.”.
This is due to a bug in Microsoft Teams which will be resolved in the future.

Workaround: actually type the authentication code to AzureBot

Sort Azure Subscriptons alphabetically

When someone has a TON of subscriptions, it can be hard to find the subscription you'd like. It would be more convienent to display all the subscriptions alphabetically every time.

Implement use automation account

From @f2bo on May 24, 2016 15:45

Sets the current automation account. This is required to provide context for list runbooks and start runbook XXXX

Copied from original issue: dtzar/AzureBot#66

Make contributing new azure resource types simplier / self contained.

I wanted to start up a conversation about making the codebase friendlier to implementing new azure resources. Right now it looks like there are some files that require all of the resources to be included, for example the Luis Model has all the resources included in a single json file (https://github.com/Microsoft/AzureBot/blob/master/AzureBot/LuisModel/AzureBot.json) which will make contributing new resources challenging. Other class types are organized by how the bot uses the objects so as a result, adding a new azure resource to the bot means sprinkling new classes through out the codebase. I wanted to see if the team is open to some refactoring that would make it easier to add new resources, or at least make it easier to support a fork that includes new resources in case the team does not want to accept a pull request.

If only one Azure Automation Account just select it

Even if you only have one Azure Automation account, the bot still prompts you to select the account you want to use. It should just automatically select the one and move on to ask the next step of which runbook do you want to run.

Runbook in edit mode unable to be ran

When you do a list runbooks, it will show runbooks even which are in edit mode. When you go to start that runbook it says that it can't be found in any of your automation accounts.

This would go well with Issue enhancement #48, but needs some tweaking because the message makes it seem like the runbook doesn't exist even though it does.

Copyright?

Hi,
The LICENSE file for this project shows that it is copyright David Tesar.

Could someone take a look to confirm that that is correct - if this is a new Microsoft open source project it should follow the guidance given from the open source approval tool for copyright, etc.

Application Logs disabled for Bot Apps

Error when trying to enable Application Logs in the portal for bot apps:

Failed to update web app logs settings.
3:07 PM
Failed to update web app logs settings for jcbrooks-bot. There was an error processing your request. Please try again in a few moments.

image

List the output from the runbook execution

After successfully completing the runbook, it would be very useful if the output from the runbook execution were displayed from the bot along with the existing message that the runbook completed.

AzureBot Outage

The bot on all channels currently says: "Sorry, my bot code is having an issue." This is due to us needing to now purchase a LUIS API key through the Azure portal, but we are currently unable due to what appears to be a bug in the portal as we are co-admins of the subscription to purchase.
image

can't verify my account

I`m trying to setup Azure Bot on my subscription, but it is stucked into the login page:

AzureBot [wsfed enabled]

For added security, we need to further verify your account
How do you want us to verify your account?

I`ve select my account and it keeps displaying a loading, but it's not redirecting to the portal. I've tried with most of the browsers, same problem in all of them. (chrome, edge, firefox)

Any clues?

Can't login on skype

Unable to say "no" to cancel start/stop all VMs

When it asks if you'd like to start/stop all these vms and you say "no" it gets stuck in a continual loop asking if you want to start/stop those VMs. It should essentially cancel that form flow.

Use the LUIS score when processing an action

From @f2bo on May 27, 2016 17:33

If a user expresses an intent that is not defined by the LUIS model, it can be mistakenly mapped to one of the methods in the ActionDialog. Currently, the implementation assumes that the intent was interpreted correctly, which may lead to unexpected results. For example, see #78.

The LuisResult includes a score that expresses the confidence in the result. There are scores for both intents and entities. We could take advantage of the scores to decide whether to execute the corresponding action or ask for confirmation. For example, if the score is below a certain threshold, reply with a message saying "I didn't understand. Did you mean XXXX?"

Copied from original issue: dtzar/AzureBot#86

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.