J'essaie d'utiliser la méthode onEnabled
avec QnAMakerRecognizer, de sorte que je puisse avoir plusieurs QnAMakerRecognizers et que je puisse choisir lequel activer et lequel désactiver. J'ai essayé la suite de cette example et a essayé quelque chose de similaire, mais je reçois une erreur disant:Utilisation de la méthode onEnabled avec QnAMakerRecognizer
TypeError: (intermediate value).onEnabled is not a function
Comment puis-je utiliser correctement la méthode onEnable
?
Exemple de code:
var bot = new builder.UniversalBot(connector);
var qnarecognizer1 = new cognitiveservices.QnAMakerRecognizer({
knowledgeBaseId: knowledgeId,
subscriptionKey: subscriptionId,
qnaThreshold:0.3,
top:1})
.onEnabled(function (session, callback) {
// Check to see if this recognizer should be enabled
if (session.conversationData.useqna1) {
callback(null, true);
} else {
callback(null, false);
}
});
var qnarecognizer2 = new cognitiveservices.QnAMakerRecognizer({
knowledgeBaseId: knowledgeId,
subscriptionKey: subscriptionId,
qnaThreshold:0.3,
top:1})
.onEnabled(function (session, callback) {
// Check to see if this recognizer should be enabled
if (session.conversationData.useqna2) {
callback(null, true);
} else {
callback(null, false);
}
});
var intentrecognizer = new builder.IntentDialog();
var intents = new builder.IntentDialog({ recognizers: [intentrecognizer, qnarecognizer1, qnarecognizer2] });
bot.dialog('/', intents);
intents.matches('qna', [
function (session, args, next) {
args.entities.forEach(function(element) {
session.send(element.entity);
}, this);
}
]);
intents.matchesAny([/hi/i, /main menu/i], [
function (session) {
builder.Prompts.choice(session, "Hi, What would you like to ask me about?", ["Service1","Service2"],{ listStyle: builder.ListStyle.button});
},
function (session, result) {
var selection = result.response.entity;
switch (selection) {
case "Service1":
session.conversationData.useqna1 = true;
session.conversationData.useqna2 = false;
session.send('You can now ask me anything about '+selection+'. Type \'main menu\' anytime to choose a different topic.')
session.endConversation();
return
case "Service2":
session.conversationData.useqna1 = false;
session.conversationData.useqna2 = true;
session.send('You can now ask me anything about '+selection+'. Type \'main menu\' anytime to choose a different topic.')
session.endConversation();
return
}
}
])