Giter Site home page Giter Site logo

global-localhost / botframework-components Goto Github PK

View Code? Open in Web Editor NEW

This project forked from microsoft/botframework-components

0.0 0.0 0.0 16.8 MB

The repository for components built by Microsoft for the Azure Bot Framework.

Home Page: https://aka.ms/botdocs

License: MIT License

C# 77.02% PowerShell 14.50% HTML 6.08% Python 0.06% Shell 0.08% JavaScript 2.26%

botframework-components's Introduction

title author
Building bots from building blocks
clearab

Bot Framework Components

This repository contains the source code for components published by Microsoft for bots built on the Azure Bot Framework technology stack. These components are part of the component model for building bots, which enables developers to build bots with re-usable building blocks (components). This model consists of a configurable adaptive runtime, that can be extended by importing packages of functionality or connecting to other bots as skills. Getting started templates built on this model will unify the creation experience, and eliminate the "dead-end" that can happen for some existing getting started experiences that lock you in to building a particular type of bot.

Our goals:

  • Encourage the reuse of bot components โ€“ either connecting to a skill or importing in a package.
  • Enable the free movement of bots and components across hosting options and editing canvases.
  • Use industry/language-standard concepts and tools wherever possible.
  • Abstract away platform concepts for developers who do not wish to use them directly.
  • Enable provisioning and deployment to the necessary infrastructure based on the components included in a bot.
  • Publish a suite of packages, templates, and skills bot developers can use to build their bots from.
  • Publish components that demonstrate conversational design best practices.

Adaptive Runtime

At the core of the component model is the adaptive runtime - an extensible, configurable runtime that is treated as a black box to bot developers and taken as a dependency. The runtime provides extensibility points to add additional functionality by importing packages, connection to skills, or adding your own functionality.

Packages

Packages are bits of a bot you want to share/import like declarative dialog assets, coded dialogs, custom adapters, middleware or custom actions. They are just packages - NuGet / npm etc based on the code-language of your bot. You'll use the Bot Framework CLI tool to merge the package's declarative contents with your bot (package management in Composer will handle this for you). They can be made up of any combination of declarative assets (.dialog, .lu, .lg, .qna files) or coded extensions (custom actions, middleware, adapters).

In addition to the packages published by the Bot Framework team, you'll be able to create and share your own packages. We plan to provide tooling to make the entire package management lifecycle as simple as possible, from discovery and inclusion, to creation and publishing. Some examples of packages include:

  • Common conversational constructs like greeting, cancel, help, unknown intent.
  • Bundles of custom actions for working with an API like MS Graph, Dynamics, the Power Platform or GitHub.
  • Vertically aligned solutions containing a combination of custom actions and adaptive assets like human hand-off, or working with your calendar.
  • Bundles of custom actions for working with specific types of data or operations, like math functions or working with dates.
  • Meta-packages, that just take dependencies on a bunch of other packages to group functionality for simpler management.

Templates

Getting started templates will be created on top of the component model. They will be built primarily by composing packages - ensuring that no matter which template you start from you'll have the flexibility to grow and develop your bot to meet your needs.

For example, the Conversational Core template will take a dependency on two packages - welcome and help & cancel. It will also include a root dialog that wires up the dialogs in those packages as well as a dialog for handling unkown intents. This represents the base set of functionality nearly all conversational bots include. If you were to start from the empty/echo bot template, you could choose to add these packages later - either way you'd get the same set of functionality (without the need to do something like compare code samples and try and stitch them together yourself).

Skills

Skills are separate bots you connect your bot to in order to process messages for you. The skill manifest establishes a contract other bots can follow - defining messages and events the skill can handle and any data that will be returned when the skill completes its interaction with your user.

Index of Content

Templates

Name Description C# JavaScript
Echo Bot The base empty bot someplace someplace

Packages

Name Description C# JavaScript
Welcome Simple dialog that triggers on conversation start someplace someplace

Virtual Assistant skills

The experimental/sample skills listed below are designed to work with the Virtual Assistant bot template.

Name Description
CalendarSkill (Preview) Add calendar capabilities to your Assistant. Powered by Microsoft Graph and Google.
EmailSkill (Preview) Add email capabilities to your Assistant. Powered by Microsoft Graph and Google.
ToDoSkill (Preview) Add task management capabilities to your Assistant. Powered by Microsoft Graph.
PointOfInterestSkill (Preview) Find points of interest and directions. Powered by Azure Maps and FourSquare.
AutomotiveSkill (Preview) Add automotive management capabilities to your Assistant
BingSearchSkill (Preview) Add searching capabilities to your Assistant. Powered by Microsoft Bing.
HospitalitySkill (Preview) Add hospitality capabilities to your Assistant.
ITSMSkill (Preview) Add ticket and knowledge base related capabilities to your Assistant. Powered by ServiceNow.
MusicSkill (Preview) Add music capabilities to your Assistant. Powered by Spotify.
NewsSkill (Preview) Add news capabilities to your Assistant. Powered by Bing News Cognitive Services.
PhoneSkill (Preview) Add phone capabilities to your Assistant.
RestaurantBookingSkill (Preview) Add hospitality capabilities to your Assistant.
WeatherSkill (Preview) Add weather capabilities to your Assistant. Powered by AccuWeather.

Documentation

We document working with components [here][./docs/overview.md], and you can find the full documentation for the Bot Framework SDK & Composer here.

Need Help?

If you have any questions please start with Stack Overflow where we're happy to help. Please use this GitHub Repos issue tracking capability to raise issues or feature requests.

Contributing

We welcome contributions to this repository! Please see our wiki for details on how to contribute. If you'd like to contribute a completely new package or template, please use our community repo.

Reporting Security Issues

Security issues and bugs should be reported privately, via email, to the Microsoft Security Response Center (MSRC) at [email protected]. You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Further information, including the MSRC PGP key, can be found in the Security TechCenter.

License

Copyright (c) Microsoft Corporation. All rights reserved.

botframework-components's People

Contributors

benbrown avatar bobokids avatar clearab avatar darrenj avatar kaymkm avatar lauren-mills avatar lzc850612 avatar microsoftopensource avatar pavolum avatar peterinnesmsft avatar ryanisgrig avatar sidmore avatar ssss141414 avatar thomas-chung avatar tracyboehrer avatar xhr0804 avatar xieofxie avatar

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.