跳转到内容

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 帮助文档
  • 测试运行: 支持节点级别的测试运行