Conversation
This reverts commit ab1fb84.
…tframework-cli into feich/QnACrossTrain
|
@vishwacsena, I pushed some commits today. It can convert luis/qnamaker recognizer to crosstrained recogizer. But I have a question here. What is the file name for the crosstrained recognizer? Currently, for luis build or qna build dialogs, we have below naming pricipals:
In my commits, I'm using the same name for luis recognizer and luis cross trained recognizer, which means I'm converting luis recognizer to crosstrained recognizer in the same file named fileName.en-us.lu.dialog. In such case, I cannot merge qna crosstrained recognizer into luis crosstrained recognizer file since they have different file names. We need the same name for both luis and qna crosstrained recognizer so that we can merge them. So the question is: which file name for crosstrained recognizer? |
|
@feich-ms starting with the simple use case, if i have dialogA and a dialogA.lu and dialogA.qna, then I would expect to find the crossTrained recognizer in This would also mean that if we detect Let's also simplify and prune the --dialog options to be |
|
@vishwacsena, I pushed more commits. I don't know whether current implementations meet your requirement. But I can show how to use it and you can have a try and then give feedbacks.
In step 2, you need to specify --dialog to crosstrained and in step 3, qna build will search the crosstrained file with the same name. If step 2 doesn't specify crosstrained, step 3 will not be able to merge the crosstrained configuration in the same file (it will create a new crosstrained one with only qnamaker). In one word, if you want the completed crosstrained configuration with both Luis and QnA, you should specify crosstrained in both luis build and qna build cmd(Execution order does not matter). Please notice that botName in qnamaker:build should be specified the same name of it's corresponding lu file (not botName in luis:build cmd) so that xxx.lu.qna.dialog file of both luis and qna can have the same file name and merge together because the qnamaker crosstrained file name is .lu.qna.dialog instead of .lu.qna.dialog. I'm not confident that I 100% understand you requirements. Anyway, please let me know any feebacks at any time. I am glad to optimize. I have another question about the dialog assets of luis and qna. In a bot, we have multiple lu files based on dialogs, and we publish them to multiple luis applications. But in QnA, all the qna files will be merged into one and published into one KB, this will make the luis and QnA mapping rule not 1 to 1. How about we still generate the same dialogs like luis, that means we generate qna .dialog per each qna file but actually we only published the merged one. We just need to add duplicated model id in qna settings file like below(All three xxx are the same id). In this way, we can uniform the luis and qna relationships and help to generate the crosstrained recognizer more easily which means we can generate the crosstraind configurations based on each LuisRecognizer and QnAMakerRecognizer pair it they are. Does this make sense? {
"qna": {
"travelbot_en_us_qna": "xxx",
"bookflight_en_us_qna": "xxx",
"searchweather_en_us_qna": "xxx",
"hostname": "https://qnamakerfeich.azurewebsites.net/qnamaker"
}
} |
vishwacsena
left a comment
There was a problem hiding this comment.
Verified all functionality.
|
IS this ready to merge? |
|
@cleemullins I'll do a second pass since a lot of changes were added since my last review. |
|
Minor nits added. |
|
@munozemilio Thanks for all your good comments. They all very make sense. I fixed and resolved them. So I will merge this PR. Please let me know if you have any concerns. |
Fixes #687. The usage is listed here https://github.com/microsoft/botframework-cli/blob/cross-train/packages/cross-train/README.md