Skip to content

文本处理节点

文本处理节点用于对确定性的文本数据执行字符串拼接字符串分隔。它不调用模型,适合把多个变量组织成提示词、通知正文、接口参数,或把一段按固定符号组织的文本拆成字符串列表。

当前节点只有“字符串拼接”和“字符串分隔”两种处理方式。节点说明中的“提取”不是一个独立模式;需要按语义总结、翻译、改写或从自然语言中抽取字段时,应使用大模型节点,需要按 JSON 结构取值时应使用 JSON 反序列化节点。

当前实现与旧文档差异

本页保留了旧文档中关于模板引用、数组拼接、自定义分隔符和中英文示例的内容,并按当前系统实现补充和更正如下:

项目当前实现使用时应注意
处理方式字符串拼接、字符串分隔没有单独的“文本提取”模式
拼接输入可添加多个输入,支持工作流中的字符串、数值、布尔、对象、数组及文件类变量输入名由界面生成,如 String1String2
拼接模板支持 {{变量名}}、{{变量名.子变量名}}、{{变量名[数组索引]}}引用不存在的路径时,该占位位置会输出空文本
拼接符只用于把直接引用的数组元素连接成文本不会自动连接 String1String2 等多个输入;多个输入的顺序与文字由模板决定
分隔输入固定为一个 String 输入不能在分隔模式下新增第二个输入或修改输入类型
分隔符可同时选择多个内置分隔符,也可添加自定义分隔符多个分隔符按顺序作用于已有分段
标点兼容中文/英文句号、逗号、分号按成对规则处理例如选择中文逗号 时,英文逗号 , 也会被识别
分隔结果输出 Array<String>当前不会自动去除首尾空白,也不会丢弃空字符串
模式切换切换处理方式时重建输入、输出和对应配置切换前应先确认旧配置不再需要

适用场景

  • 将姓名、时间、正文等变量拼成通知、提示词或接口文本。
  • 将数组内容按逗号、换行或其他符号转换为可读字符串。
  • 将 CSV 风格的单行文本、标签串或固定格式文本拆成列表。
  • 在循环、批处理或插件节点之前,把分隔文本转换为 Array<String>

以下任务不建议使用文本处理节点:

  • 总结、翻译、改写或语义分类:使用大模型节点。
  • 按正则表达式进行复杂匹配:当前节点未提供正则提取模式。
  • 解析 JSON、XML 或其他结构化协议:使用对应的解析节点或插件。
  • 修改工作流变量本身:文本处理节点只产生新输出;需要保存或更新变量时,再连接变量赋值节点。

字符串拼接

选择“字符串拼接”后,可以添加多个输入,并在“拼接结果”中编写输出模板。

文本处理节点的字符串拼接配置

输入

点击“新增输入”会依次创建 String1String2 等输入。每项可以填写常量,也可以引用上游变量;当前界面允许为拼接输入选择工作流支持的不同变量类型。

输入值不会因为配置了“拼接符”而自动串联。必须在“拼接结果”模板中明确引用需要的变量,例如:

  • 第一行:颜色一:{{String1}}
  • 第二行:颜色二:{{String2}}

String1 为“白色”、String2 为“蓝色”时,输出为:

text
颜色一:白色
颜色二:蓝色

模板引用

写法说明示例
{{变量名}}引用整个输入值{{String1}}
{{变量名.子变量名}}引用对象中的子字段{{user.name}}
{{变量名[数组索引]}}引用数组中的指定元素,索引从 0 开始{{colors[0]}}

运行时会把数值和布尔值转换为文本,把 null 转换为空文本;对象在直接插值时会转换为 JSON 文本。引用的变量或子路径不存在时,当前实现不会中断流程,而是在该位置插入空文本,因此发布前应使用有代表性的输入试运行并检查结果。

拼接符

“拼接符”只在模板直接引用数组时生效。例如 colors 为:

json
["红色", "蓝色", "白色"]

模板为“可选颜色:{{colors}}”,拼接符为中文逗号时,结果为:

text
可选颜色:红色,蓝色,白色

如果模板写成“{{colors[0]}} / {{colors[1]}}”,元素之间的 / 来自模板,不受“拼接符”配置影响。当前默认拼接符为中文逗号

输出

拼接模式固定输出:

输出类型说明
outputString模板渲染后的完整文本

字符串分隔

选择“字符串分隔”后,节点只保留一个固定的 String 输入,并将分隔结果输出为字符串列表。

文本处理节点的字符串分隔配置

输入与分隔符

分隔模式必须同时满足:

  1. String 输入已填写常量或引用了有效的上游字符串变量。
  2. 至少选择一个非空分隔符。

当前内置分隔符包括:

  • 换行 \n、制表符 \t 和空格。
  • 中文句号 、英文句号 .
  • 中文逗号 、英文逗号 ,
  • 中文分号 、英文分号 ;

也可以在分隔符下拉框中点击“自定义”,添加多字符分隔符,例如 ---||。当前界面最多保留 20 个自定义分隔符选项,每个自定义分隔符最长 20 个字符。

中英文标点配对

当前运行时会对三组中英文标点做兼容扩展:

选择任意一项实际同时识别
中文句号 或英文句号 ..
中文逗号 或英文逗号 ,,
中文分号 或英文分号 ;;

因此,选择“中文逗号”并不表示只按中文逗号分隔。若业务必须严格区分中英文标点,当前内置选项不适合直接使用,应先在上游统一字符,或通过专用插件处理。

多个分隔符的处理顺序

选择多个分隔符时,运行时会按配置顺序对当前已有的每个分段继续分隔,而不是把所有分隔符拼成一个正则表达式。对普通文本,最终效果通常是按所有已选符号拆分;当分隔符互相包含时,例如 ----,顺序可能影响结果,应优先选择更长、更具体的自定义分隔符并试运行核对。

空白和空字符串

当前分隔实现不会自动执行 trim,也不会过滤空字符串。例如:

text
A,,B,

按逗号分隔后可能包含空元素,元素中的首尾空格也会保留。如果下游不接受空值,应在后续节点中进行过滤或清洗。

示例

输入:

text
小明,18岁,A市人,喜欢看书、看电影,偶尔健身。

选择中文逗号后,输出 output 为类似:

json
["小明", "18岁", "A市人", "喜欢看书、看电影", "偶尔健身。"]

中文顿号 不属于当前内置分隔符,因此“喜欢看书、看电影”仍是一个元素。需要继续按顿号拆分时,可把 添加为自定义分隔符。

输出

分隔模式固定输出:

输出类型说明
outputArray<String>按所选分隔符拆出的字符串列表

发布前检查

  1. 当前处理方式是否与预期一致,切换模式后配置是否已重新填写。
  2. 所有输入是否都有常量或有效的上游变量引用。
  3. 拼接模板中的变量名、对象路径和数组索引是否存在。
  4. 是否误把“拼接符”理解为多个输入之间的连接符。
  5. 分隔模式是否至少选择了一个非空分隔符。
  6. 中英文句号、逗号、分号的配对行为是否会造成额外拆分。
  7. 多个或互相包含的分隔符顺序是否符合预期。
  8. 下游是否能够接收 StringArray<String>,是否需要清理空项和空白。
  9. 示例中是否包含足够的边界数据,例如缺失字段、连续分隔符、末尾分隔符和空字符串。

常见问题

为什么配置了拼接符,String1 和 String2 仍没有自动连接?

拼接符只用于模板中直接引用的数组。多个独立输入必须在“拼接结果”中分别写出,并由模板中的文字、换行或符号决定连接方式。

为什么模板中的某个占位符变成了空白?

当前运行时对不存在的变量、对象子字段或数组路径输出空文本,不会自动报错。检查变量名、大小写、上游连线和实际数据结构。

为什么对象变成了一整段 JSON?

对象直接插入文本时会转换为 JSON 字符串。若只需要其中一个字段,应使用 {{对象变量.字段名}};结构不确定时先在上游整理数据。

为什么选择中文逗号后,英文逗号也被分隔了?

这是当前运行时的中英文标点兼容规则。中文与英文的句号、逗号、分号分别成对识别。

为什么分隔结果中有空字符串或多余空格?

当前节点不会自动清除首尾空格或过滤空元素。连续分隔符、字符串开头或末尾的分隔符都会产生空项,需要在下游显式清洗。

为什么切换处理方式后原配置不见了?

拼接与分隔的输入数量、类型和输出结构不同。当前界面切换模式时会重建对应配置,不能把两种模式的配置同时保留在一个节点中。

为什么不能用它总结、翻译或抽取自然语言信息?

文本处理节点是固定规则转换,不理解文本语义。此类任务应使用大模型节点,并在需要稳定结构时配合 JSON 反序列化或结构化输出。