更新时间:2026-03-18 GMT+08:00
分享

提问器

提问器节点在工作流执行过程中主动向用户发起提问,从自然语言对话中提取完成任务所需的结构化参数。它会循环追问,直到收集到所有必需信息或达到最大交互轮数。

约束与限制

提问器节点仅适用于对话型工作流。

配置提问器节点

模式偏好选择:

可选择效果优先或速度优先,参数说明如表1所示。

表1 模式偏好选择

模式

适用场景

特性

效果优先

适合高精度场景,例如预订系统、表单填报、审批流程等参数准确性要求高的场景

  • 开启时间增强:将自然语言时间转换为标准格式YYYY-MM-DD HH:MM:SS,例如用户输入:明天下午两点半,则提取为2026-03-09 14:30:00。
  • 开启反思:模型对提取结果进行二次校验,发现错误时自动纠正或继续追问。例如期望提取电话号码,用户输入:我不记得电话号码,提取出:189******,反思后会认为提取不正确,会继续追问。
  • 延迟较高(因为模型多次推理)。

速度优先

适合低延迟场景,例如闲聊助手、简单信息收集等对速度敏感、容错率高的场景

无时间增强,无反思,响应极快。

模型配置:

选择用于参数提取和反思纠正的模型。建议选择具备良好指令遵循能力的模型。

你还可以单击图标,调整模型配置。模型配置的详细说明可参考选择并配置模型

输入参数:

输入参数用于向提问话术中注入动态数据,通常引用前置节点的输出。

单击图标时,可新增输入参数,单击图标时,可删除输入参数;。

  • 参数名称:只允许输入字母、数字、下划线,且不能以数字开头。
  • 类型、值:支持“引用”和“输入”两种类型。
    • 引用:支持用户选择工作流中已包含的前置节点的输出参数,如果配置了全局变量中的记忆变量,也支持引用记忆变量。
    • 输入:将用户自定义的内容传递给大模型,设置为输入模式后,无论前置节点产生什么输出内容,都不会传递给大模型。

示例:以会议室预订场景为例,假设前置节点“查询空闲会议室”输出了可用会议室列表,提问器节点定义输入参数“available_rooms”,引用前置节点“查询空闲会议室”的输出变量值{{room_list}}。“问题”配置为:有以下几个会议室供您选择:{{available_rooms}},请选择您想预订的会议室。

输出参数:

输出参数定义了提问器需要从用户对话中提取的结构化数据。

  • 默认输出参数:每个提问器节点自动包含以下系统参数,如表2所示。
    表2 默认输出参数

    参数名

    类型

    说明

    USER_RESPONSE

    string

    用户的原始回复文本(未经处理)

    STATUS

    integer

    提取状态码,用于下游节点判断提取结果。状态码的含义如下:

    • 0:正常成功提取,用户无确认。
    • 10:正常成功提取,用户已确认。
    • 100:取到部分参数,用户主动中断,已提参数报错,未提参数按格式置空。
    • 101:取到部分参数,循环超轮次,已提参数报错,未提参数按格式置空。
    • 201:大模型调用异常。
    • 202:反思模块有错误。
  • 自定义提取参数:开启“参数提取”功能后,可定义需要从用户回复中提取的具体参数。
    表3 参数说明

    配置项

    说明

    示例

    参数名称

    只允许输入字母、数字、下划线、短横线。

    meeting_room

    展示名称

    用于追问话术中展示(不可为空)

    会议室

    类型

    输出参数的类型,可选String、Integer、Number、Boolean。

    String

    默认值

    所有追问结束但仍未提取到参数时,使用的兜底值

    A101

    描述

    帮助大模型理解参数含义,提升提取准确率

    用户想要预订的会议室编号

    校验

    • 勾选:可定义参数校验规则对输出参数规范性进行校验。规则包括参数名称、校验类型及校验规则。校验不通过时,提问器会自动追问用户重新输入。
    • 不勾选:对输入参数不进行校验。

    例如,会议室预订场景,用户可以选择预订的会议室有A101、A102和A103。

    则校验类型选择“枚举值”,校验规则填写为“A101,A102,A103”。

    提取

    • 勾选:该参数为必填项(必须提取到或使用默认值)。
    • 不勾选:允许为空。

    开启

    示例:以会议室预订场景为例,需要询问用户预订哪个会议室,可选会议室有A101、A102和A103。如果用户反馈预订A102,则meeting_room参数值提取为“A102”;如果用户反馈B203,由于不满足校验规则,提问器节点会继续追问用户需要预订哪个会议室;经过多轮追问后,如果用户没有反馈有效的会议室,则meeting_room参数值根据配置的默认值提取为“A101”,输出参数配置如图1所示。

    图1 配置输出参数
  • 引用插件参数:如果你的提取参数与已有插件的请求参数一致,可以单击按钮,从“插件广场”或“我的插件”中选择插件,一键导入参数定义和校验规则。

问题配置:

配置提问器向用户展示的问题文本,也可以单击快速插入输入参数,或在输入框中键入'{'快速引用参数,支持引用多个参数。

表4 问题配置

配置项

说明

问题

首次提问时展示给用户的文本。

  • 配置问题文本:问题文本原样展示给用户,可通过Jinja语法在问题中使用输入参数。最大支持输入3000个字符。

    示例1:请问你的名字是什么?

    示例2:请问你是哪个班级的,可选班级有{{classes}}(classes先在输入参数配置好)。

  • 未配置问题文本:将由大模型根据输出参数描述,自动生成包含所有问题关键词的一个问题。

最大回复轮数

与用户的最大交互次数。超过后提问器退出,未提取参数使用默认值或置空。

高级配置:

  • 允许用户退出交互:开启后,如果用户在与提问器的对话交互中,表达“中止对话”类的意图,系统会自动结束当前提问,并跳转至结束节点。
  • 输出参数确认:开启后,如果用户希望提问器参数提取完毕后进行用户确认,则开启此功能。
  • 提取约束

    提为大模型提供额外的约束信息,提升参数提取的准确性,例如指定被提取参数的格式要求。

    示例如下:

    • 用户希望提取电话号码tel_number,提取约束可以写:tel_number必须是11位数字,以1开头。
    • 用户希望提取会议日期meeting_date,提取约束可以写:meeting_date格式为YYYY-MM-DD,不接受过去的日期。

    用户可单击图标直接引用提示词模板;也可以自行撰写提取约束,撰写后可单击图标对当前约束进行语义优化,提升提取效果;也可单击图标保存到模板,在“组件库>提示词”中可查看该模板。

  • 追问模式

    当用户回复未能提供所有必需参数时,提问器会发起追问。三种模式区别如下:

    • 默认:使用默认内置追问模板生成追问语句,每次追问内容相同。
    • 智能追问:(推荐)由大模型根据缺失字段自动生成自然的追问,每次追问内容丰富多变。
    • 自定义追问:按照自定义模板配置生成追问语句。{unextracted_cn_field_names}是系统占位符,不可修改或删除,系统会自动替换为尚未提取的参数中文名称。每次追问内容相同。

    示例:以要提取“姓名”和“年龄”,用户仅提供了名字为例,三种模式的追问如下:

    • 默认:请您提供年龄相关的信息。
    • 智能追问:哎呀,您还没告诉我年龄呢。(模型生成,内容不固定。)
    • 自定义追问:请补充以下信息:年龄。(按模板生成)
  • 追问显示枚举值

    开启后,如果参数设置了枚举值校验,追问时自动展示参数的可选枚举值,帮助用户快速选择。

    例如,输出参数meeting_room配置了枚举值校验A101,A102,A103,开启后追问为:请选择会议室,可选项为:A101,A102,A103。

  • 示例配置

    给大模型一段参数提取的示例,增强大模型对参数提取场景的理解。

    示例格式:

    输入query:我要坐飞机去呼和浩特学习培训

    提取参数:{"location":"呼和浩特", "traveltool":"飞机"}

相关操作

  • 单击图标,可修改判断名称,修改完成后单击名称旁边的进行保存。
  • 单击图标,可重命名判断节点名称,复制一个判断节点或删除判断节点;也可以将判断节点连接到结束节点。
  • 双击名称下面的节点说明,可修改节点的描述信息。
  • 单击图标,可查看文档信息。

示例

以根据输入的文档内容和文档标题,自动生成一个可以下载的word格式的文档为例。

图2 工作流

工作流核心节点如表5所示。

表5 节点配置说明

节点类型

说明

示例

开始节点

添加一个必选的输入参数,名为ip,即用户需要查询区域的IP地址。

提问器节点

此节点用于向用户提问,需要用户提供文档内容和文档标题。

模型配置:DeepSeeK-V3.2

输入参数:

input:引用“开始”节点的query。

输出参数:单击按钮,从“插件广场”选择“文档生成”插件,一键导入参数定义和校验规则。

问题配置:您好,为了能更好地协助您处理相关文档,可以告诉我您想处理的文档名称和文档内容吗?

高级配置:

追问模式:勾选“智能追问”。

插件节点-文档生成

此节点基于用户提供的文档内容和文档名称,生成一个可以下载的word格式的文档。

输入参数:

  • input:引用“提问器”节点的输出参数input。
  • document_name:引用“提问器”节点的输出参数document_name

结束节点

此节点用于输出文件解析的结果。

输入参数:

result:引用“文档生成”插件节点的输出参数url。

工作流运行的效果如图3所示,提问器节点给用户提问“您好,为了能更好地协助您处理相关文档,可以告诉我您想处理的文档名称和文档内容吗?”,用户发送文档名称后,提问器追问,需要用户提供文档内容。

图3 效果示例

常见问题

  • 什么时候用“提问器”,什么时候用“问答节点”配合“循环”?
    • 提问器:适合非线性的信息收集。用户可以说“订明天的票,两个人”,一次性收集time和people两个参数。
    • 问答+循环:适合线性的问卷调查。必须按顺序问完问题1再问问题2,不允许跳跃。
  • 模型总是提取错误的参数值,怎么办?

    按优先级尝试以下方法:

    1. 切换为效果优先模式,开启反思功能。
    2. 提取约束中增加明确的格式要求和取值范围。
    3. 示例配置中添加1–2个典型的提取示例。
    4. 优化输出参数的描述,让大模型更准确理解参数含义。
    5. 尝试更换能力更强的模型。
  • 用户被困在提问循环中无法退出?

    在高级配置中开启允许用户退出交互。开启后,用户表达中止意图时提问器自动结束(STATUS=100)。

  • 如何让用户在提交前确认提取结果?

    在高级配置中开启输出参数确认。所有参数提取完毕后,提问器会展示结果摘要并请求用户确认。

  • 下游节点如何判断提取是否成功?

    在提问器下游添加条件分支节点,根据提问器节点的输出参数{{STATUS}}路由到不同处理逻辑:

    • 如果STATUS=0或10,则正常处理。
    • 如果STATUS=100或101,则部分结果兜底处理。
    • 如果STATUS>=201,则错误处理或重试。
  • STATUS为100/101时,未提取到的参数值是什么?
    • 如果配置了默认值,则使用默认值。
    • 如果未配置默认值,则参数值为空(需下游节点做判空处理)。
  • 反思模块报错(STATUS=202)如何处理?

    STATUS202仅在“效果优先”模式下可能出现,表示反思校验环节异常。此时提取结果可能不准确,建议:

    • 在下游条件分支中将202路由到降级处理逻辑。
    • 或切换为“速度优先”模式绕过反思环节(牺牲准确率)。

相关文档