如何在Node.js中定义bot的默认行为?

考虑以下是对话框。

bot.dialog('/beer', [ function (session) { builder.Prompts.number(session, "How many mugs would you like?"); }, function (session, results) { if (results.response && results.response.entity != '(quit)') { // Launch demo dialog session.endDialog("Beer" + (results.response == 1 ? " is on the" : "s are on their") + " way, enjoy!"); } else { // Exit the menu session.endDialog("Goodbye, See you later.."); } } ]); 

如果用户input文本(例如“testing”)而不是有效的数字,则会提示用户,机器人会给出类似于default_number的响应。

数字相同的默认错误消息是default_number ,select是default_choice ,文本default_error等。我已经尝试了不同的方法来弄清楚如何控制它,并定义默认的行为,像bot说: “我没有认出它,请再次尝试“而不是给出错误,这对用户没有任何意义。

任何人都可以对此有所了解吗?

参考链接https://docs.botframework.com/en-us/node/builder/chat/prompts/#promptsnumber

(更好的答案总是欢迎。)

最后在search了很多后发现了下面的东西。

在模拟器默认情况下,它处理错误消息和显示的东西

“糟糕,出了点问题,我们需要重新开始。”

要么

“我不明白。”

但在Direct Line API / Skype等其他渠道上。 实际的机器人响应得到显示,就像“ default_error ”,“ default_choice ”等。

要更改默认的错误信息,我们可以简单地在文件夹中添加一个名为“BotBuilder.json”的文件

 BotProject/locale/<languageCode>/BotBuilder.json 

因此,该文件包含覆盖默认错误的文本消息,如下所示:

 { "default_error": "I did not recognize it. Please try again." } 

更新 :希望这是所有可能的列表覆盖。

 { "default_text": "I didn't understand. Please try again.", "default_number": "I didn't recognize that as a number. Please enter a number.", "default_confirm": "I didn't understand. Please answer 'yes' or 'no'.", "default_choice": "I didn't understand. Please choose an option from the list.", "default_time": "I didn't recognize the time you entered. Please try again using a format of (MM/DD/YYYY HH:MM:SS).", "default_file": "I didn't receive a file. Please try again.", "default_error": "Oops. Something went wrong and we need to start over." }