跳转到内容

Code(代码执行)

节点概述

节点英文名: Code
节点中文名称: 代码执行
支持场景: Chatflow Agent(支持), Workflow Agent(支持)
迭代版本: 版本 1

功能说明

Code 节点用于运行一段自定义代码(如 Python 和 JavaScript),实现特定业务逻辑或计算,输出结果供后续节点使用。它提供了强大的编程能力,允许用户在工作流中执行自定义的代码逻辑。

节点展示内容

代码执行节点在画布上的展示

1. 基本信息展示

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

2. 操作按钮

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

节点编辑区域

代码执行节点编辑面板:输入变量 (arg1/arg2)、PYTHON3 代码编辑器 (main 函数)、输出变量 (result) 与失败时重试

1. 输入变量配置

  • 添加变量: 点击后新增一行输入变量
  • 变量列表: 支持多行变量的展示,支持删除
  • 变量输入: 支持多个变量的输入
  • 变量名: 支持填写变量名称
  • 变量值: 支持通过【选择变量】组件选择变量值

2. 代码输入框

  • 语言选择: 支持 Python3 和 JavaScript 两种类型的选择
  • 代码编辑: 提供代码编辑器,支持语法高亮、复制与放大
  • 固定入口: 代码需实现 main 函数,返回值为字典,键与输出变量一一对应(如 def main(arg1: str, arg2: str) -> dict: return {"result": arg1 + arg2}

3. 输出变量配置

  • 变量名称: 支持填写变量名称
  • 变量类型: 支持选择变量类型
  • 添加删除: 支持添加和删除变量
  • 变量类型范围:
    • String / Array[String]
    • Number / Array[Number]
    • Object / Array[Object]

4. 失败时重试

  • 开关: 开启后,代码执行失败时自动重试

5. 下一步配置

  • 支持添加下一个节点

运行逻辑

Code 节点的运行逻辑由后端实现,确保代码的正确执行和安全控制。

右键操作

右键菜单包含以下选项:

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

测试运行

  • 支持状态: 支持测试运行
  • 更改节点: 支持更改节点类型
  • 复制功能: 支持复制、剪贴、删除操作

编程语言支持

1. Python3

  • 版本: Python 3.x
  • 标准库: 支持 Python 标准库(第三方库以沙箱实际支持为准)
  • 语法: 完整的 Python 语法支持

2. JavaScript

JS 模式:语言切换为 JAVASCRIPT,main 函数以解构对象接收输入变量

  • 版本: Node.js 环境
  • 标准库: 支持 Node.js 标准库
  • 语法: 完整的 JavaScript 语法支持
  • 函数签名: 与 Python 模式不同,JS 的 main 函数以解构对象接收输入变量——function main({arg1, arg2}),返回对象的字段对应输出变量 (如 return { result: ... })

使用场景

1. 数据处理

  • 数据清洗: 清理和格式化数据
  • 数据转换: 转换数据格式和类型
  • 数据计算: 执行复杂的数学计算
  • 数据验证: 验证数据格式和内容

2. 业务逻辑

  • 条件判断: 实现复杂的业务规则
  • 算法实现: 实现特定的算法逻辑
  • 流程控制: 控制工作流的执行流程
  • 状态管理: 管理应用状态

3. 数据解析与加工

  • 数据解析: 解析 JSON 等格式的数据(外部接口调用请使用 Http Request / Tool 节点)
  • 批量处理: 批量加工数据
  • 报告生成: 生成结构化的报告内容

最佳实践

1. 代码编写

  • 清晰命名: 使用清晰的变量和函数命名
  • 注释说明: 添加必要的注释说明
  • 错误处理: 添加适当的错误处理
  • 性能优化: 考虑代码的执行性能

2. 变量管理

  • 类型安全: 确保变量类型正确
  • 命名规范: 使用一致的命名规范
  • 作用域: 合理管理变量作用域
  • 内存管理: 注意内存使用

3. 错误处理

  • 异常捕获: 使用 try-catch 处理异常
  • 错误日志: 记录错误信息
  • 优雅降级: 提供降级处理方案
  • 用户提示: 提供友好的错误提示

4. 安全考虑

  • 输入验证: 验证输入数据
  • 代码注入: 防止代码注入攻击
  • 权限控制: 控制代码执行权限
  • 资源限制: 限制资源使用

配置步骤

1. 基础配置

  1. 选择编程语言(Python3 或 JavaScript)
  2. 配置输入变量
  3. 编写代码逻辑

2. 代码编写

  1. 定义处理逻辑
  2. 处理输入变量
  3. 生成输出结果
  4. 添加错误处理

3. 输出配置

  1. 定义输出变量
  2. 设置变量类型
  3. 配置变量名称

4. 测试验证

  1. 使用试运行功能测试
  2. 检查代码执行结果
  3. 验证输出变量

注意事项

  1. 语言选择: 根据任务特点选择合适的编程语言
  2. 代码质量: 编写高质量、可维护的代码
  3. 性能考虑: 考虑代码执行的性能和资源使用
  4. 安全风险: 注意代码执行的安全风险
  5. 错误处理: 添加适当的错误处理机制

常见问题

Q: 支持哪些编程语言?

A: 目前支持 Python3 和 JavaScript 两种编程语言。

Q: 如何添加输入变量?

A: 点击"+"按钮可以添加新的输入变量行。

Q: 输出变量类型有哪些?

A: 支持 String、Number、Object 及其对应的 Array 类型。

Q: 代码执行有安全限制吗?

A: 是的,代码执行有安全限制,不能执行危险操作。

Q: 如何调试代码?

A: 可以使用试运行功能来调试代码,查看执行结果。

帮助资源

  • 帮助文档: 支持跳转到 Infra 帮助文档
  • 测试运行: 支持节点级别的测试运行