-
Notifications
You must be signed in to change notification settings - Fork 258
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Chaining with slots creates a loop #684
Comments
Hi @amendlik Thanks for reporting this |
Hello @jangidms - any updates on this? I can work on the fix if you can point me in the right direction. |
Hi @amendlik You could try to customize QnABot as per your use case, or open a new enhancement request which we'll add to our backlog |
@bobpskier I've been testing a solution that just deletes
It's working fine so far. I have not encountered any negative effects. |
@amendlik I'd probably implement something similar in evaluateConditionalChaining.js starting at line 100
This updates req.qid to be the actual target qid of the chaining config if it is specified as a "qid::" or removes qid if not specified in that format. The intent/slot mechanism is not a good citizen in the word of QnABot chaining. It looks like it can only be used in the first qid that kicks off a series of chained qids. If in the middle of the chain of questions, a qid is specified that also uses intents/slots, the chaining mechanism will skip right over asking to resolve the slot values. The intent/slot mechanism only works at the beginning of the chain when Lex can call QnABot fulfillment using a DialogCodeHook with the intent/slots as the context. If you want to conditionally ask for values in one of more qids via chaining, it is better to use ElicitResponse bots as they support the concept of chaining. |
This fix is working well for us. @bobpskier, do you want to upstream that, or would you like me to do it? |
@amendlik can you please submit a PR if you want us to consider as improvementÉ |
I have opened a PR on this: #721 |
Great. Thanks. |
Describe the bug
If I set up 2 QNA documents, with the first chaining to the second, there are no issues.
When I add a slot to the first document (and perform a Lex Rebuild), the chain loops on the first document and never reaches the second.
To Reproduce
Import the following test configuration:
Expected behavior
The bot should elicit the slot, then chain to the second document.
Please complete the following information about the solution:
Screenshots
Additional context
Add any other context about the problem here.
The text was updated successfully, but these errors were encountered: