[Adaptive] Setting and managing recognizers for adaptive dialogs
See original GitHub issueToday, we support a variety of recognizer types that work with adaptive dialog. Composer provides UX for a limited set of recognizer types but there is a need for us to have a scalable design to onboard custom/ new recognizer types in both composer as well as in adaptive dialogs.
Requirements:
- Ability for a recognizer type to register to handle technology specific workflows as part of build/ publishing steps in composer.
- Ability to render a scalable UX in composer for the recognizer tied to an adaptive dialog including form UX to edit the properties for a recognizer selection.
- Simplify and streamline the myriad of possible recognizer configurations that are possible today.
Proposal:
- A dialog will always have only one top level recognizer. It can either be a
RecognizerSet
or one of the available recognizer types. - In composer, for build/ publishing step, providers can register call backs with their
$kind
.
Implications:
- Proposal #1 means that we will author a new
LuisQnACrossTrainedRecognizer
that holds LUIS and QnA Maker recognizer configuration as properties on it.
{
"recognizer": {
"$kind": "Microsoft.LuisQnACrossTrainedRecognizer",
"qnaRecognizer": "dialogName.qna",
"luisRecognizer": "dialogName.lu"
}
}
- You can never pick and choose separate recognizer for LU/ QnA. you are always taking both together. If a custom recognizer provides for only one of the functionality (e.g. Orchestrator with intent classification only) then the provider of that recognizer must register a recognizer type that works for both LU and QnA content and choose appropriate defaults/ customization for specific functionality that is not supported within that recognizer type.
- In composer, we will move the current LUIS, QnA Maker functionality into respective build/ publish call backs tied to
Microsoft.LUISAdaptiveRecognizer
andMicrosoft.QnAMakerRecognizer
etc.- For build/ publishing the library could get called with both ‘raw’ content as well as ‘cross-trained’ content for that dialog.
- The recognizer configuration provided by the build step is inlined in the .dialog file. prior to the build step, just the $kind is serialized inline.
{ "recognizer": { "$kind": "Microsoft.LuisQnACrossTrainedRecognizer" } }
- The ability to provide multi-lingual support and management need to be exposed as properties by the top level recognizer. E.g.
LuisQnACrossTrainedRecognizer
should internally use and abstract away theMultiLanguageRecognizer
implementation. - The proposal also means composer will expose the following top level recognizers (apart from any custom recognizers added by the user)
- Regex Recognizer
- Default Recognizer (LuisQnACrossTrainedRecognizer)
- Any custom recognizer registered by the user.
New work (SDK):
LuisQnACrossTrainedRecognizer
OrchestratorCrossTrainedRecoginzer
- [Open] Do we need a multi-lingual RegexRecognizer and switch composer to using that instead?
Issue Analytics
- State:
- Created 3 years ago
- Comments:10 (10 by maintainers)
Top Results From Across the Web
Prebuilt recognizers for adaptive dialogs - Bot Service
Adaptive dialogs and language recognizers work together to interpret user intent and to react fluidly to user input.
Read more >Managing state in adaptive dialogs - reference guide
This article provides technical details that will help you work with memory scopes in adaptive dialogs. For an introduction to memory scopes and ......
Read more >Getting started with Adaptive Dialogs in Bot Framework v4
1 - Create a simple echo bot with logging. In this step we'll create a starter bot setting up some solution folder structure...
Read more >Integration Testing with Adaptive Dialogs in Bot Framework v4
The best way to handle intents in adaptive dialogs is using recognizers and handling them with an OnIntent trigger. You can create several...
Read more >Introducing Bot Framework Adaptive Dialogue and How To ...
It augments existing functionality in the SDK with a rich new set of features and gives you a new way to model conversations....
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
I would suggest.
Close this since it’s not in the plan