You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Bot输入特定字符串时跳过对话环节的问题求助

解决Azure Bot FormFlow中字段跳转的问题

这个情况我之前在使用Bot Framework的FormFlow时也遇到过,本质是FormFlow默认开启了字段导航功能——它允许用户通过输入字段名称直接跳转到对应环节,虽然这个设计在某些场景下提升了灵活性,但显然和你想要的“按顺序完成选择”的需求冲突了。

问题成因

FormFlow的默认配置里,FormOptions中的AllowNavigation属性默认是true,这就导致系统会识别用户输入的文本是否匹配表单中的字段名(或者字段的显示文本),一旦匹配就自动跳转到对应字段,跳过当前的输入验证流程。比如你输入“dessert”时,系统识别到这对应DessertOptions字段,就直接跳转到甜点选择环节了。

解决方案

要禁用这种跳过行为,只需要在构建表单的时候关闭AllowNavigation选项即可,具体代码修改如下:

.BuildForm()
.Message("Choose your pizza")
.Field(nameof(PizzaOptions))
.Message("Choose a dessert")
.Field(nameof(DessertOptions))
.WithFormOptions(options => {
    // 禁用字段跳转功能,强制用户按顺序完成每个环节
    options.AllowNavigation = false;
})

修改后,当用户在披萨选择环节输入“dessert”这类非披萨选项的内容时,机器人会提示输入无效,并要求用户从提供的披萨选项中选择,而不会跳转到甜点环节。

如果你之后有更精细的需求(比如允许部分字段跳转,禁止其他字段),可以通过自定义字段的Validate方法或者Active属性来控制,但对于你的场景来说,全局禁用导航就足够解决问题啦。

内容的提问来源于stack exchange,提问作者J Marlow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:20:09