跳转到内容

Variables Transformer(模板转换)

节点概述

节点英文名: Variables Transformer
节点中文名称: 模版转换
支持场景: Chatflow Agent(支持), Workflow Agent(支持)

功能说明

Variables Transformer 节点对工作流中已有的变量进行格式化、类型转换或合并拆分,以满足后续节点的数据需求。它提供了强大的数据转换能力,支持使用 Jinja2 模板语言进行复杂的变量处理。

节点展示内容

模版转换节点在画布上的展示

1. 基本信息展示

  • 图标: 节点专用图标
  • 名称: 节点名称
  • 注释: 用户添加的说明文字

2. 操作按钮

  • 更多按钮: 点击后展示右键菜单内容
  • 运行按钮: 点击进入试运行界面

节点编辑区域

模版转换编辑面板:模版类型 (变量模式)、输入变量 (arg1)、模版代码 ({{ arg1 }}) 与输出变量 (output)

1. 模版类型

  • 类型选择: 下拉选择模版类型(默认「变量模式」,具体可选项以产品为准)

2. 输入变量配置

  • 配置方式: 同 Python 节点的输入变量配置
  • 变量管理: 支持添加和管理输入变量
  • 变量选择: 支持从工作流中选择已有变量

3. 代码配置(支持 Jinja2 语言)

  • 模板语言: 支持 Jinja2 模板语言
  • 复制功能: 支持复制代码内容
  • 最大化: 支持最大化编辑器窗口

4. 输出变量配置

  • 变量名: output
  • 变量类型: string
  • 变量中文名: 转换后内容

5. 下一步配置

  • 支持添加下一个节点

运行逻辑

Variables Transformer 节点的运行逻辑由后端实现,确保变量转换的正确性。

右键操作

右键菜单包含以下选项:

  1. 更改节点: 修改节点类型
  2. 拷贝: 复制节点
  3. 复制: 复制节点内容
  4. 删除: 删除节点
  5. 帮助链接: 跳转到帮助文档
  6. 运行节点: 测试运行当前节点

Jinja2 模板语言

1. 基本语法

  • 变量输出:
  • 控制结构: {% if condition %}...{% endif %}
  • 循环结构: {% for item in list %}...{% endfor %}
  • 注释: {# 这是注释 #}

2. 过滤器

  • 字符串过滤器: upper, lower, title, capitalize
  • 数字过滤器: round, int, float, abs
  • 列表过滤器: join, length, first, last, list

3. 内置函数

  • range: 生成数字序列
  • dict: 创建字典

使用场景

1. 数据格式化

  • 日期格式化: 将日期转换为指定格式
  • 数字格式化: 格式化数字显示
  • 文本格式化: 格式化文本内容
  • JSON 格式化: 格式化 JSON 数据

2. 类型转换

  • 字符串转换: 转换为字符串类型
  • 数字转换: 转换为数字类型
  • 布尔转换: 转换为布尔类型
  • 列表转换: 转换为列表类型

3. 数据合并

  • 字符串拼接: 合并多个字符串
  • 列表合并: 合并多个列表
  • 对象合并: 合并多个对象
  • 条件合并: 根据条件合并数据

4. 数据拆分

  • 字符串分割: 分割字符串
  • 列表拆分: 拆分列表
  • 对象拆分: 拆分对象
  • 条件拆分: 根据条件拆分数据

最佳实践

1. 模板设计

  • 简洁明了: 保持模板简洁易懂
  • 错误处理: 添加适当的错误处理
  • 性能优化: 避免复杂的嵌套结构
  • 可维护性: 使用清晰的变量命名

2. 变量管理

  • 命名规范: 使用清晰的变量命名
  • 类型安全: 确保变量类型正确
  • 默认值: 为可能为空的变量设置默认值
  • 作用域: 合理管理变量作用域

3. 错误处理

  • 异常情况: 考虑处理异常情况
  • 用户提示: 提供友好的错误提示
  • 降级处理: 提供降级处理方案
  • 日志记录: 记录错误信息

4. 性能考虑

  • 模板复杂度: 避免过于复杂的模板
  • 循环优化: 优化循环结构
  • 缓存使用: 合理使用缓存
  • 资源管理: 注意资源使用

配置步骤

1. 基础配置

  1. 配置输入变量
  2. 编写 Jinja2 模板
  3. 设置输出变量

2. 模板编写

  1. 分析输入数据结构
  2. 设计转换逻辑
  3. 编写 Jinja2 模板
  4. 添加错误处理

3. 测试验证

  1. 使用试运行功能测试
  2. 检查转换结果
  3. 验证输出格式
  4. 调整模板逻辑

常见问题

Q: 如何学习 Jinja2 语法?

A: 可以参考 Jinja2 官方文档,或者查看平台提供的示例模板。

Q: 支持哪些 Jinja2 功能?

A: 支持 Jinja2 的核心功能,包括变量、过滤器、控制结构等。

Q: 如何处理复杂的嵌套数据?

A: 可以使用 Jinja2 的循环和条件结构来处理复杂的嵌套数据。

Q: 模板执行失败怎么办?

A: 检查模板语法、变量名称和数据类型,使用试运行功能调试。

Q: 如何优化模板性能?

A: 避免复杂的嵌套结构,使用简单的逻辑,合理使用过滤器。

注意事项

  1. 语法正确性: 确保 Jinja2 语法正确
  2. 变量存在性: 确保引用的变量存在
  3. 类型匹配: 注意变量类型匹配
  4. 性能考虑: 避免过于复杂的模板
  5. 错误处理: 添加适当的错误处理