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

如何在Adaptive Dialog配置中添加控制、Console语句并基于用户输入跳转分支

Adaptive Dialog 使用问题解答

动态根据用户输入调整后续询问流程

Adaptive Dialog 通过声明式组件实现分支逻辑,所有用户输入都会存储到你在输入组件中配置的property对应的内存作用域中(比如user、turn作用域),直接通过IfCondition组件做分支判断即可。
举个示例:如果用户输入的交通方式为私家车,后续追加询问车牌号,否则跳过该步骤,直接在原有对话的动作列表中插入如下逻辑即可:

new IfCondition().configure({
  condition: new BoolExpression('user.userProfile.Transport == "私家车"'),
  actions: [
    new TextInput().configure({
      property: new StringExpression('user.userProfile.CarNumber'),
      prompt: new ActivityTemplate('请提供你的车牌号')
    })
  ]
})

如果需要实现更复杂的自定义判断逻辑,可以使用CodeAction组件编写原生JS逻辑,处理完成后返回对应的对话状态即可。

控制台打印用户输入

要打印用户输入内容,直接在对应输入步骤之后插入CodeAction组件,在回调中读取内存属性打印即可。
注:使用CodeAction前需要先从botbuilder-dialogs-adaptive依赖包中引入CodeAction和Dialog类
示例如下:

// 比如在询问姓名的TextInput步骤之后插入
new CodeAction(async (dialogContext, options) => {
  // 读取存储的用户姓名
  const userName = dialogContext.state.getValue('user.userProfile.Name');
  console.log('用户输入的姓名是:', userName);
  // 继续执行后续对话步骤
  return Dialog.EndOfTurn;
}),

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:36:06