отключить распознаватель qna в диалоге - PullRequest
0 голосов
/ 01 декабря 2018

Я использую Luis и QnA maker, qna maker теперь вызывает подсказку водопада.Я отключил приглашение Luis с кодом ниже, как я могу сделать то же самое для распознавателя qna?

var recognizer = new 
builder.LuisRecognizer(LuisModelUrl).onEnabled(function (context, 
callback) {
     var enabled = context.dialogStack().length == 0;
     callback(null, enabled);
    });
bot.recognizer(recognizer);
bot.recognizer(qnaRecognizer);
console.log(recognizer);

Например: какая часть туалета сломана?(1. Цистерна, 2. Труба или 3. Место)

Все, кроме точного совпадения, воспринимается настроением qna, которое заменяет стек диалога

Спасибо

1 Ответ

0 голосов
/ 18 декабря 2018

Вам не нужно отключать ни один из них, чтобы код работал.Я подозреваю, что проблема в вашем диалоге.Ниже приведен пример того, как создать диалоговую часть вашего бота.Когда я запустил это, промежуточное программное обеспечение регистратора показывает, что QnA совпадает на входах, которые я передаю, но бот диктует диалог из-за кода.

var luisrecognizer = new builder.LuisRecognizer(LuisModelUrl);

var qnarecognizer = new cognitiveservices.QnAMakerRecognizer({
    knowledgeBaseId: process.env.QnAKnowledgebaseId,
    authKey: process.env.QnAAuthKey || process.env.QnASubscriptionKey,
    endpointHostName: process.env.QnAEndpointHostName
});

var basicQnAMakerDialog = new cognitiveservices.QnAMakerDialog({
    recognizers: [qnarecognizer],
    defaultMessage: 'No match! Try changing the query terms!',
    qnaThreshold: 0.3
});

bot.recognizer(luisrecognizer);
bot.recognizer(basicQnAMakerDialog);

bot.dialog('/', basicQnAMakerDialog);


bot.dialog('GreetingDialog',[
    (session) => {
        session.send('You reached the Greeting intent. You said \'%s\'.', 
session.message.text);
        builder.Prompts.text(session, "What is your name?");
    },
    (session, results) => {
        session.userData.name = results.response;
        session.send("Glad you could make it, " + session.userData.name);

        builder.Prompts.text(session, "Ask me something!");
    },
    (session, results) => {
        session.conversationData.question = results.response;
        session.send(session.conversationData.question + " is an interesting topic!")
        session.endDialog();
    }
]).triggerAction({
    matches: 'Greeting'
})

На следующем изображении LUIS подводит меня к Приветствиюнамерение, когда я набираю «Я счастлив [быть здесь]», который я обучил в приложении LUIS.Диалог бота вступает во владение, задавая мне вопросы и сохраняя ответы.Несмотря на то, что я делаю заявления, что QnA или LUIS должны ответить ни на что не делает.Разговор следует за кодом.

Если бы Кна взяла его на себя, то ответила бы на вопрос «Что вы» с текстом о QnA Maker.Точно так же «помощь» вызвала бы ответы либо QnA, либо LUIS, поскольку у меня есть темы / намерения для обоих соответственно.

enter image description here

...