Я пытаюсь вызвать QnA Maker через диалог, который я создал.Я создал объект qnamaker в диалоге и хочу передать ответ пользователя на приглашение (из предыдущего шага) в метод getAnswers () QnAMaker.Но ответ getAnswers () просто возвращает «[onTurnError]: StatusCodeError: 404 - undefined».
Я тестирую бота локально на эмуляторе бота.Я создал базу знаний на qnamaker.ai и добавил QnAKnowledgebaseId, QnAAuthKey, QnAEndpointHostName в файл .env.Я звоню QnADialog из другого диалога (mainDialog).
Пожалуйста, помогите мне!Спасибо!
Вот код для созданного мною QnADialog. Он имеет диалоговое окно waterafall, содержащее 2 шага.Первый шаг (initialStep) запрашивает у пользователя запрос, второй шаг вызывает qnamaker.getAnswers (step.context), которому я передал step.context.Я уже включил QnAMaker, используя botbuilder-ai.
class QnADialog extends ComponentDialog{
constructor(id){
super(id||QNA_DIALOG);
this.addDialog(new TextPrompt(ASK_QUERY_PROMPT))
this.addDialog(new WaterfallDialog(WATERFALL_DIALOG, [
this.initialStep.bind(this),
this.callQnAMakerStep.bind(this)
]));
this.initialDialogId = WATERFALL_DIALOG;
try {
this.qnaMaker = new QnAMaker({
knowledgeBaseId: process.env.QnAKnowledgebaseId,
endpointKey: process.env.QnAAuthKey,
host: process.env.QnAEndpointHostName
});
} catch (err) {
console.log(`QnAMaker Exception: ${ err } Check your QnAMaker configuration in .env`);
}
}
async initialStep(step){
console.log("QnADialog.initialStep :")
await step.context.sendActivity("Hello testing!");
return step.prompt(ASK_QUERY_PROMPT, 'Ask any query you have...');
}
async callQnAMakerStep(step){
var query = step.result;
console.log("qnaDialog.callQnAMakerStep calling QnA Maker...");
const qnaResults = await this.qnaMaker.getAnswers(step.context);
console.log("qnaResult is : "+ qnaResult);
// If an answer was received from QnA Maker, send the answer back to the user.
if (qnaResults[0]) {
await step.context.sendActivity(qnaResults[0].answer);
// If no answers were returned from QnA Maker, reply with help.
} else {
await step.context.sendActivity('No QnA Maker answers were found.');
}
return await step.endDialog();
}
}