Introduction to Bot Framework Composer
Bot Framework Composer is an open-source visual authoring canvas for developers and multidisciplinary teams to build bots. Composer integrates language understanding services such as LUIS and QnA Maker and allows sophisticated composition of bot replies using Language Generation. Composer is available as a desktop application as well as a web-based component.
Built with the latest features of the Bot Framework SDK, Composer provides everything you need to build a sophisticated conversational experience:
- A visual editing canvas for conversation flows
- Tools to author and manage language understanding (NLU) and QnA components
- Powerful language generation and templating system
- A ready-to-use bot runtime executable
What you can do with Composer
Composer is a visual editing canvas for building bots. You can use it to do the following:
- Build bots without the need to write code
- Author and publish NLP data such as LUIS models and QnA Maker knowledge base
- Author and validate language generation templates
- Author bots in multiple languages
- Publish bots to Azure App Service and Azure Functions
- Integrate external services such as QnA Maker knowledge base
Beyond a visual editing canvas, you can use Composer to do the following:
- Import and export dialog assets to share with other developers
- Build, export, and call a skill
- Create your own custom actions
- Host Composer in the cloud
- Extend Composer with plugins
Under the hood, Composer harnesses the power of many of the components from the Bot Framework SDK. When building bots in Composer, developers will have access to:
Dialogs provide a way for bots to manage conversations with users. The new Adaptive dialog and the event model simplify sophisticated conversation modelling and help you focus on the model of the conversation rather than the mechanics of dialog management. Read more in the dialog concept article.
Language Understanding (LU)
LU is a core component of Composer that allows developers and conversation designers to train language understanding directly in the context of editing a dialog. As dialogs are edited in Composer, developers can continuously add to their bots' natural language capabilities using the lu file format, a simple Markdown-like format that makes it easy to define new intents and provide sample utterances. In Composer, you can use both Regular Expression and LUIS service. Composer detects changes and updates the bot's cloud-based natural-language understanding (NLU) model automatically so it is always up to date. Read more in the language understanding concept article.
Language Generation (LG)
Creating grammatically correct, data-driven responses that have a consistent tone and convey a clear brand voice has always been a challenge for bot developers. Composer's integrated Language Generation (LG) that allows developers to create bot replies with a great deal of flexibility. Read more in the language generation concept article.
With Language Generation, you can achieve previously complex tasks easily such as:
- Including dynamic elements in messages
- Generating grammatically correct lists, pronouns, articles
- Providing context-sensitive variation in messages
- Creating Adaptive Cards attachments, as seen above
QnA Maker is a cloud-based Natural Language Processing (NLP) service that easily creates a natural conversational layer over your data. It can be used to find the most appropriate answer for any given natural language input, from your custom knowledge base (KB) of information.
Bot Framework Emulator
Emulator is a desktop application that allows bot developers to test and debug bots built using Composer.
Advantage of developing bots with Composer
Developers familiar with the Bot Framework SDK will notice differences between bots developed with it and Bot Framework Composer. Some of the advantages of developing bots in Composer include:
- Use of Adaptive Dialogs allows for Language Generation (LG), which can simplify interruption handling and give bots character.
- The visual design surface in Composer that eliminates the need for boilerplate code and makes bot development more accessible. You no longer need to navigate between experiences to maintain LU model as it is editable within the app.
- Time saved with fewer steps to set up your environment.
A major difference between the current version of the Bot Framework SDK and Composer is that the apps created using Composer uses the Adaptive dialog format, a JSON specification shared by many tools provided by the Bot Framework. More information about Adaptive dialog is available here.
The Composer bot projects contain reusable assets in the form of JSON and Markdown files that can be bundled and packaged with a bot's source code. These can be checked into source control systems and deployed along with code updates, such as dialogs, language understanding (LU) training data, and message templates.