取消builder.Prompts.choice()

时间:2016-11-17 13:45:14

标签: node.js bots botframework

我的机器人有一个提示,询问用户输入:

builder.Prompts.choice(session, "Is it ok?", ["Yes", "No"]);

现在,当用户回答“是”或“否”以外的其他内容时,程序将始终回复:

I did not understand. Please choose an option from the list

与之前的选择相同。

如果用户键入除“是”或“否”以外的其他内容,我希望机器人不再要求输入(并重置提示堆栈)。

2 个答案:

答案 0 :(得分:0)

您可以更改提示的maxRetries选项,如图所示(默认为无限)

builder.Prompts.choice(session, "Is it ok?", ["Yes", "No"],maxRetries:'2'); 

您可以在上述网址

中看到IPrompt选项

https://docs.botframework.com/en-us/node/builder/chat-reference/interfaces/_botbuilder_d_.ipromptoptions.html

答案 1 :(得分:0)

您还可以使用“触发操作”(例如“帮助”)在提示期间捕获其他特定输入:

// Add default dialog
bot.dialog('/', function (session) {
    builder.Prompts.choice(session, "Is it ok?", ["Yes", "No"]);
});

// Add help dialog with a trigger action bound to a regular 
// expression looking for the users to ask for help.
bot.dialog('/help', function (session) {
    session.endDialog("Type 'Yes' or 'No'");
}).triggerAction({ matches: /^(help|options)/i });

请注意,您需要安装BotBuilder的预发布版本:

npm install --save botbuilder@next