用户提示后对话框更改 [英] Dialog changes after user prompt

查看:74
本文介绍了用户提示后对话框更改的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有如下对话框,从用户那里获取用户名和密码

I have a dialog as follows to get user name and password from user

bot.dialog('/getUsernamePassword', [
function (session) {
    builder.Prompts.text(session, 'Please enter your username');
},
function (session, results) {
    session.userData.name = results.response;
    builder.Prompts.text(session, 'Please enter your password');
},
function (session, results) {
    session.userData.password = results.response;
    session.endDialogWithResult(results);
}
]);

用户输入用户名后,我的对话框不会继续,而是转到根对话框并显示我不明白,请重试"(默认消息)

After user enter username, my dialog doesn't continue, instead it goes to root dialog and prints "I didn't understand please try again"(default message)

有人可以帮助我了解我在这里做错了什么吗?

Can anyone help me to understand what I am doing wrong here?

我的识别器的配置如下

var model = 'https://westus.api.cognitive.microsoft.com/luis/..;
var recognizer = new builder.LuisRecognizer(model);
bot.recognizer(recognizer);
// Add regular expression recognizer to bot
var helpRecognizer = new builder.RegExpRecognizer('HelpIntent', /^(help|options)/i);
var cancelRecognizer = new builder.RegExpRecognizer( "CancelIntent", /^(cancel|nevermind)/i);
bot.recognizer(helpRecognizer);
bot.recognizer(cancelRecognizer);
var intents = new builder.IntentDialog({ recognizers: [helpRecognizer,cancelRecognizer,recognizer] });

推荐答案

我认为正在发生的事情是您的响应正在通过LUIS.

I think that what is happening is that your response is going through LUIS.

为避免这种情况,请将LuisRecognizer的定义更新为以下内容:

In order to avoid this, update your definition of the LuisRecognizer to be the following:

var model = 'https://westus.api.cognitive.microsoft.com/luis/..;
var recognizer = new builder.LuisRecognizer(model).onEnabled((context, callback) => {
    var enabled = context.dialogStack().length === 0;
    callback(null, enabled);
});
bot.recognizer(recognizer);

这篇关于用户提示后对话框更改的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆