Bot Framework Node.js中Choice Prompt的选择验证逻辑如何修改?
CHOICE_PROMPT 自定义非法输入重试提示实现方案
- 实现原理:Bot Framework 的 ChoicePrompt 原生支持
retryPrompt配置字段,当用户输入未命中选项值、也不属于选项关联同义词时,会自动触发该字段配置的内容作为警告提示,无需额外编写校验逻辑。 - 选项适配:为了支持用户输入1-6的数字即可直接匹配对应选项,需要给选项添加数字前缀,SDK默认会将选项开头的数字识别为同义词,无需额外配置。
修改后的业务代码如下:
async question2_1(step) { return await step.prompt(CHOICE_PROMPT, { prompt: '1/3:您认为课程资料的导航和跟随难度如何?', // 如需保留英文提示,替换为 "Enter a number between 1 - 6" 即可 retryPrompt: '请输入1-6之间的数字', choices: ChoiceFactory.toChoices(['1 = 非常难', '2', '3', '4', '5', '6 = 非常简单']), style: ListStyle.list }); }
如果所有使用该CHOICE_PROMPT的场景都需要统一的重试提示,可以在初始化Prompt时全局配置,避免重复传参:
// 注册Prompt时全局配置默认重试提示 const choicePrompt = new ChoicePrompt(CHOICE_PROMPT); choicePrompt.defaultRetryPrompt = '请输入1-6之间的数字'; dialogSet.add(choicePrompt);
内容的提问来源于stack exchange,提问作者Mehdi Asgharzadeh
相关产品推荐
相关产品推荐

