Coder Social home page Coder Social logo

microsoft / botframework-composer Goto Github PK

View Code? Open in Web Editor NEW
854.0 93.0 366.0 126.63 MB

Dialog creation and management for Microsoft Bot Framework Applications

Home Page: https://docs.microsoft.com/en-us/composer/

License: MIT License

JavaScript 3.30% HTML 0.05% CSS 0.04% TypeScript 96.48% Shell 0.03% Dockerfile 0.04% PowerShell 0.04% NSIS 0.03%
bots chatbots conversational-ai microsoft

botframework-composer's Introduction

Microsoft Bot Framework Composer

Microsoft Bot Framework Composer

Build Status Coverage Status Total alerts license

Overview

Bot Framework Composer is an open-source, visual authoring canvas for developers and multi-disciplinary teams to design and build conversational experiences with Language Understanding and QnA Maker, and a sophisticated composition of bot replies (Language Generation). Within this tool, you'll have everything you need to build a sophisticated conversational experience.

  • A visual editing canvas for conversation flows
  • In context editing for language understanding (NLU)
  • Tools to train, test and manage language understanding (NLU) and QnA components
  • Language generation and templating system
  • A ready-to-use bot runtime executable

The Bot Framework Composer is an open source tool based on the Bot Framework SDK. It is available as a desktop application as well as a web-based component

Bot Framework Composer Home Page

Get Started

Build Composer Locally

To build and run the Composer project locally as a web application, clone the source code from Github and build the application using the instructions below.

Prerequisites

git clone https://github.com/microsoft/BotFramework-Composer.git
cd BotFramework-Composer
cd Composer # switch to Composer folder
yarn install # install dependencies
yarn build # build extensions and libs
yarn startall # start client and server at the same time

Extend Composer with Extensions

Many aspects of Composer's functionality can be customized and extended through extensions. Features such as authentication, storage, publishing and even the samples and templates available on the homescreen can be customized by creating new extensions.

Read more about building Composer extensions โ†’

Support and Feedback

Related project

The Bot Framework Composer is part of the Bot Framework platform:

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

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.

Issues and feature requests

Please file issues and feature requests here.

Also, see current known issues for high impact bugs you may experience.

Submitting pull requests

If you'd like to contribute pull requests to Composer, see the contributing guide for helpful information on our development workflow.

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.

botframework-composer's People

Contributors

a-b-r-o-w-n avatar alanlong9278 avatar benbrown avatar beyackle avatar boydc2014 avatar ceciliaavila avatar cosmicshuai avatar cwhitten avatar dependabot[bot] avatar emgrol avatar geoffcoxmsft avatar hatpick avatar lei9444 avatar liweitian avatar louiseugenemsft avatar luhan2017 avatar natalgar avatar oevgeny avatar pavolum avatar srinaath avatar sw-joelmut avatar taicchoumsft avatar tdurnford avatar tonyanziano avatar tracyboehrer avatar vamsimodem avatar vanylaw avatar yeze322 avatar zhixzhan avatar zxyanliu 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  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

botframework-composer's Issues

[Study] Main should be at top and selected by default

04.03'19
Open Composer, open todobot. Notice that 'Main' is at the bottom of the list of dialogs.
Move it to be the top
Automatically select it and load the graphic
Automatically show the properties associated with the main dialog

Main

Type: Dialog
Description: Bot that allows you to create, show and change to-doโ€™s.
ID : [number goes here ]

Dialogs
AddToDo Type: Dialog
DeleteToDo Type: Dialog
MarkTodo. Type: Dialog
ShowTodo Type: Dialog

Rules
Welcome Type: Rule
No match
Cancel

[Study] Show description for all dialog elements

Currently, the properties show the following in the box

  • Type ('Step')

  • Name ('save entity')
    and

  • Property ('user.todo')

  • Value ('title')

Can we make it the following instead:

  • Name ('Save entity') (still show the color green that is an indicator of type)
  • Description ('Save an recognized entity to storage')

In the right side properties:

  • Name ('Save entity') (still show the color green that is an indicator of type)
  • Description ('Save an recognized entity to storage')

Properties
name: ('user.todo')
value ('title')
description ('title of todo')

[Study] Visual flow for dialogs/steps need a trigger

To understand the visual flow, and why, for example, the Add todo' dialog steps/tasks, one needs to see what is starting this flow. In this case, the user has triggered the 'add todo' dialog by saying something that was recognized by the recognizer to fire the 'add todo' dialog.
Please include an indicator for this trigger in the visual flow.
Same thing for other steps in the flow such as the condition : I'd consider this a condition and therefore a 'branch' - different things happen based on this condition.
Also - there are visible bot actions (Message of success) and actions that are not visible to the user. It'd be great to communicate those in different ways.

See image included.
Screen Shot 2019-04-03 at 11 37 20 AM

Create bot project

  • "Create new bot project (including best practices both in setting up backend code with best practices and skeleton structure for welcome, help, cancel, etc.)"

--

[Study] Create new OBI dialog: Book a restaurant

Create new sample dialog: book a restaurant
We'll be using this for the user research study.
Due: eow

Task:
Book restaurant
Sub tasks

  • number of people
  • Where
  • date and time
  • show results
  • select results
  • book & confirmation
  • back to main. ('anything else?')

[Study] What to test and why

Objective:

  1. Concept test of Composer as a professional tool to enable multidisciplinary teams of professional conversation designers with a coding, business, writing, or customer service background to collaborate in creating, editing, test, and refine dialogs and developing a bot.

  2. Evaluating the usability and understanding of the concept/current solution

  1. the interaction between visual editor and detail editor,
  2. the concept of the tree-branch-leaf navigation model, and
  3. defining and refining the conversation through property editors.

How:
Create a scenario that is easy to relate : book a restaurant scenario (location, # people, # time/date, select, confirm, book

  • Open existing

  • View main dialog

  • Explore by clicking through - talk out loud:

  • Edit: main, intent dialog, rule, branch ;

  • Content : LG and LU;

  • Settings: LUIS and ABS; Git (as this our source-safe solution)

  • Testing: in Emulator

  • Specific tasks: change content (prompt or other)

  • add new dialog; add branch

  • Test in emulator

  • See changes/make more changes

What we need for this:

  • Get participants (Blink is on this now)
  • Working prototype that illustrates concepts
  • Set up prototype on researcher's machine
  • Set up emulator on researcher's machine connected to Composer
  • Set up LUIS model and authentication
  • Create Discussion guide (blink)
  • Documentation to researchers about Composer purpose , approach and functionality

[Study] Start bot

Right now the 'start bot' is a bit obscure - as it doesn't visually do anything (except update the lable) if Emulator is not running. Can we update the link to say something like 'view in emulator' and make that launch the emulator on the user's desktop (in the study we can preinstall the Emulator on the researchers machine so it's showing in 'Remote Desktop' for the participant.
We're not testing the experience of the Emulator or the relationship between the emulator and composer in this study so let's connect the two as automatically as we can.

When the bot is already running in Emulator, we can just make it say 'refresh'

Setting -> services error

Click on setting -> services, will first load a blank page. Refreshing the page shows the following errors:

image

Could not nav to IFCondition elseStep

In IFCondition Bot

  • add sendActivity in IFcondition elseStep
  • edit sendActivity step, it will navigate to IFture first step.

Bot schema updated as following :
"steps": [
{
"$type": "Microsoft.IfCondition",
"condition": "user.name == null",
"steps": [
{
"$type": "Microsoft.NumberInput",
"property": "user.age",
"prompt": "How old are you ?",
"retryPrompt": "Let's try again, How old are you ?",
"invalidPrompt": "age should be 3 - 12",
"minValue": 3,
"maxValue": 12
}
],
"elseSteps": [
{
"$type": "Microsoft.SaveEntity"
}
]

Nav bar shows :
image

Bot could not be started due to no executable botproject.dll

[start:server] command: $dotnet bin/Debug/netcoreapp2.0/BotProject.dll --bot:path=C:\Repo\BotFramework-Composer\SampleBots\08 - ExternalLanguage\bot.botproj
[start:server] GET /api/launcher/start 304 6255.161 ms - -
[start:server] stderr: No executable found matching command "dotnet-bin/Debug/netcoreapp2.0/BotProject.dll"

[Study] Content should have LG and LU content

Click 'content' on the left. Nothing shows

What should show is
in left nav:

  • User input (LU)
  • Language Generation (LG)

Click on LU and show content used for welcome, etc. (if needed we can generate something as a placeholder)

  • Column headers (placeholder) Name | Last modified | Type. | Used in

Click on LG and show bot response content . (if needed we can generate something as a placeholder just so that we can explain the concept)

  • Column headers (placeholder) Name | Last modified | Type. | Used in

Double main in breadcrumb path

Reproducing steps:

  1. Start a bot
  2. With the bot running, refresh Composer. (The Stop button disappears but I assume the previous bot is still running? This could also be an issue.)
  3. Breadcrumb shows: Main -> [Dialog/Rule Name]
  4. Open another botproject.
  5. Breadcrumb shows: Main -> [Dialog/Rule Name] -> Main

Refreshing Composer can fix this issue so marking this a low priority.
image

Problem adding dialog from nav

Dialog tree is updated when adding new dialog via nav pane, however, new dialog does not appear in visual graph (persistent).

Repro steps:

  1. click the + on the leftmost pane (nav)
  2. create new dialog
  3. save
  4. check visual graph for new addition

ToDo Bot - Visual Editor Navigation expectations

When I click on the WelcomeRule node, The Visual Editor should load load the steps inside the Welcome Rule dialog as its subtree. In the case of the ToDo Bot it would render a single Send Activity step but if there were more steps they would be there as well. When this Send Activity step is clicked, it loads the FormEditor for SendActivity.

When I click on the Intent Node(s) it should load the rules object (Fallback step) as a single node that when clicked would load the steps inside that rule element. Because there are 4 steps, it would render 4 leaf nodes then when clicked opens the FormEditor for that leaf.

bot could not be loaded correctly

Start the bot in composer, it will throw exception.

[start:server] command: $dotnet bin/Debug/netcoreapp2.0/BotProject.dll --bot:path=C:\Repo\BotFramework-Composer\SampleBots\Planning - ToDoBot\bot.botproj

[start:server] stdout: Application startup exception: System.ArgumentNullException: Value cannot be null.
[start:server] Parameter name: path
[start:server] at System.IO.Path.GetFullPath(String path)
[start:server] at System.IO.DirectoryInfo..ctor(String path)
[start:server] at Microsoft.Bot.Builder.Dialogs.Declarative.ResourceExplorer.FolderResource..ctor(String folder, Boolean monitorChanges)
[start:server] at Microsoft.Bot.Builder.Dialogs.Declarative.ResourceExplorer.AddFolder(String folder, Boolean monitorFiles)
[start:server] at Microsoft.Bot.Builder.TestBot.Json.Startup.ConfigureServices(IServiceCollection services) in C:\Repo\BotFramework-Composer\BotProject\CSharp\Startup.cs:line 70

Directions are incomplete

Missing in instructions:
npm install -g concurrently
npm install -g gulp

npm install did not fix this.
C:\Users\chrimc\Source\Repos\BotFramework-Composer\Composer>yarn build
yarn run v1.15.2
$ yarn build:dev && yarn build:server && yarn build:client
$ yarn build:lib && yarn build:extensions
$ cd packages/lib && yarn build:all
$ concurrently --kill-others-on-fail "yarn build:cci-graph-lib"
$ cd cci-graph-lib && yarn build
$ gulp build:app
[0] [15:57:56] Local modules not found in ~\Source\Repos\BotFramework-Composer\Composer\packages\lib\cci-graph-lib
[0] [15:57:56] Try running: npm install
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
[0] error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
[0] error Command failed with exit code 1.
[0] yarn build:cci-graph-lib exited with code 1
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

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.