本文档由 AI 自动翻译。如有任何不准确之处,请参考 英文原版。模板转换节点使用 Jinja2 模板语法将来自多个来源的数据转换和格式化为结构化文本。可使用它来组合变量、格式化输出,并为下游节点或终端用户准备数据。

Jinja2 模板
模板转换节点使用 Jinja2 模板语法,根据工作流数据动态生成内容。该语法提供类似编程的能力,包括循环、条件判断和过滤器,适用于复杂的文本生成。变量替换
使用双花括号引用工作流变量:{{ variable_name }}。可使用点号和括号语法访问嵌套对象属性和数组元素。
条件逻辑
使用 if-else 语句根据数据值显示不同内容:循环和迭代
使用 for 循环处理数组和对象以生成重复内容:
数据格式化
过滤器
Jinja2 过滤器在模板渲染时转换数据:错误处理
使用默认值和条件检查优雅处理缺失或无效数据:交互式表单
模板转换节点可在 Chatflow 中生成交互式 HTML 表单,用于收集结构化数据。 提交后,表单值会作为终端用户的下一条聊天消息发送。具体格式取决于<form> 的 data-format 属性:
data-format="json":值会序列化为 JSON 对象。下游的代码执行节点或参数提取器可调用JSON.parse(或用模式匹配)提取各字段。- 未设置(或为其他值):值以纯文本发送,每行一个
name: value。便于 LLM 阅读。

支持的标签
不要在
<form> 内部的标签之间留空行。空行会在 markdown 解析时结束 HTML 块,断行之后的标签将无法渲染为表单字段。支持的输入类型
-
其他
type值会在字段处显示为「Unsupported tag」提示信息。 -
HTML5 验证属性
required、min、max和pattern不会强制生效。 -
浏览器可能会用当前站点保存的凭据自动填充
<input type="password">和<input type="email">;如不希望预填充,可改用<input type="text">。
快速回复按钮
位于<form> 之外的独立 <button> 会在聊天中渲染为可点击按钮,可用于在消息中提供预设回复或外部链接。例如:

如果两者都设置,
data-link 优先。若两者都未设置,按钮仍会渲染,但点击不会触发任何动作。
可使用 data-variant 和 data-size 设置样式,取值与上方 表单按钮 相同。
与表单按钮不同,独立按钮会将
data-variant 和 data-size 原样传给底层组件,不做校验。无法识别的值可能让按钮失去样式,只显示为纯文本。仅使用上述列表中的值。输出限制
模板转换节点的输出限制为 400,000 个字符(可通过TEMPLATE_TRANSFORM_MAX_LENGTH 配置)。此限制可避免内存问题,并让大型模板输出在合理时间内完成处理。