QnAmaker.ai с ms botframework node.js: приветственное сообщение и оценка ответов - PullRequest
0 голосов
/ 04 марта 2019

Я использую QnAmaker.ai для бота FAQ, разработанного с использованием node.js msbotframework.Я хочу реализовать еще несколько дополнительных функций:

  1. Приветственное сообщение для пользователя при подключении бота.
  2. Предоставляйте оценки для каждого ответа.Например, было ли это полезно "Да" и "Нет".Есть ли способ сохранить эту информацию в QnAmaker KB.
  3. Кроме того, я включил чат-чат вместе с моим собственным набором вопросов и ответов.Тем не менее, ответы в чит-чате предпочтительнее пользовательских.Я хочу, чтобы пользовательские ответы переопределяли чат-чат.

Код, который я использую на данный момент, очень прост и взят из учебника:

var previewRecognizer = new builder_cognitiveservices.QnAMakerRecognizer({
    knowledgeBaseId: process.env.QnAKnowledgebaseId,
    authKey: process.env.QnAAuthKey || process.env.QnASubscriptionKey
});

var basicQnAMakerPreviewDialog = new builder_cognitiveservices.QnAMakerDialog({
    recognizers: [previewRecognizer],
    defaultMessage: 'Sorry, I did not understand. Please say that again.',
    qnaThreshold: 0.3
}
);

bot.dialog('basicQnAMakerPreviewDialog', basicQnAMakerPreviewDialog);

// Recognizer and and Dialog for GA QnAMaker service
var recognizer = new builder_cognitiveservices.QnAMakerRecognizer({
    knowledgeBaseId: process.env.QnAKnowledgebaseId,
    authKey: process.env.QnAAuthKey || process.env.QnASubscriptionKey, // Backward compatibility with QnAMaker (Preview)
    endpointHostName: process.env.QnAEndpointHostName
});

var basicQnAMakerDialog = new builder_cognitiveservices.QnAMakerDialog({
    recognizers: [recognizer],
    defaultMessage: 'Sorry, I did not understand. Please say that again.',
    qnaThreshold: 0.3
}
);

bot.dialog('basicQnAMakerDialog', basicQnAMakerDialog);

bot.dialog('/', //basicQnAMakerDialog);
    [
        function (session) {
            var qnaKnowledgebaseId = process.env.QnAKnowledgebaseId;
            var qnaAuthKey = process.env.QnAAuthKey || process.env.QnASubscriptionKey;
            var endpointHostName = process.env.QnAEndpointHostName;

            // QnA Subscription Key and KnowledgeBase Id null verification
            if ((qnaAuthKey == null || qnaAuthKey == '') || (qnaKnowledgebaseId == null || qnaKnowledgebaseId == ''))
                session.send('Please set QnAKnowledgebaseId, QnAAuthKey and QnAEndpointHostName (if applicable) in App Settings. Learn how to get them at https://aka.ms/qnaabssetup.');
            else {
                if (endpointHostName == null || endpointHostName == '')
                    // Replace with Preview QnAMakerDialog service
                    session.replaceDialog('basicQnAMakerPreviewDialog');
                else
                    // Replace with GA QnAMakerDialog service
                    session.replaceDialog('basicQnAMakerDialog');
            }
        }
    ]);

Спасибо

1 Ответ

0 голосов
/ 04 марта 2019

Я вижу, что вы используете BotBuilder SDK v3 на данный момент, где v4 - новейшая версия.Мои ответы ниже сосредоточены на v3, однако для такого простого бота обновление до v4 будет не очень сложным.v3 теперь не будет получать обновления функций.

  1. Приветственное сообщение пользователю при подключении бота.

    Эта функция может отличатьсяна основе канала.Вы можете прослушать событие conversationUpdate , чтобы вызвать сообщение, или вы можете, например, опубликовать событие в веб-чате.Ссылки ниже описывают оба способа:


Предоставлять оценки для каждого ответа

В настоящее время это невозможно в QnaMaker.Я бы посоветовал использовать для этого собственное хранилище, например Application Insights или CosmosDB.

Взгляните на недавно анонсированные возможности активного обучения QnAMaker .Они еще не предлагают SDK для Node, но эта функциональность может быть вам интересна, если вы хотите получить больше информации (и использовать ее для обучения своей модели).


Я хочу, чтобы пользовательские ответы переопределяли chit-chat

Функция Chit-chat просто добавляет предварительно заполненный набор в вашу базу знаний, который неt отличается от наборов QnA, которые вы добавили сами.По умолчанию невозможно переопределить ChitChat с помощью ваших собственных ответов.

Вы можете удалить определенные наборы ChitChat QnA, которые вы хотите переопределить, или вы можете исправить ответ с самым высоким счетом .

...