代码¶
Note: ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考英文原版。
代码节点执行自定义 Python 或 JavaScript 来处理工作流中复杂的数据转换、计算和逻辑。当预设节点无法满足你的特定处理需求时可以使用它。

配置¶
定义输入变量以访问工作流中其他节点的数据,然后在代码中引用这些变量。你的函数必须返回一个包含你已声明的输出变量的字典。
def main(input_variable: str) -> dict:
# Process the input
result = input_variable.upper()
return {
'output_variable': result
}
语言支持¶
根据你的需求和熟悉程度在 Python 和 JavaScript 之间进行选择。两种语言都在安全沙箱中运行,并可访问用于数据处理的常用库。
Python:
Python 包含标准库,如 `json`、`math`、`datetime` 和 `re`。非常适合数据分析、数学运算和文本处理。
```python
def main(data: list) -> dict:
import json
import math
average = sum(data) / len(data)
return {'result': math.ceil(average)}
```
JavaScript:
JavaScript 提供标准内置对象和方法。适合 JSON 操作和字符串操作。
```javascript
function main(data) {
const processed = data.map(item => item.toUpperCase());
return { result: processed };
}
```
错误处理和重试¶
为失败的代码执行配置自动重试行为,并定义代码遇到错误时的回退策略。

重试设置允许最多 10 次自动重试,并可配置间隔(最大 5000ms)。启用此功能来处理临时处理问题。
错误处理让你在代码执行失败时定义回退路径,使你的工作流即使在代码遇到问题时也能继续运行。

输出验证和限制¶
代码输出会自动验证并有严格限制: - 字符串:最大长度 80,000 个字符,空字节会被移除 - 数字:范围从 -999999999 到 999999999,浮点数限制为 10 位小数 - 对象/数组:最大深度 5 级,以防止复杂的嵌套结构
这些限制确保工作流的性能并防止内存问题。
安全考虑¶
代码在严格的沙箱中执行,阻止文件系统访问、网络请求和系统命令。这在提供编程灵活性的同时保持安全性。
出于安全原因,某些操作会被自动阻止。避免尝试访问系统文件或执行可能危险的操作:

如果你的代码无法保存,请检查浏览器的网络选项卡 - 安全过滤器可能正在阻止潜在危险的操作。
依赖支持¶
代码节点支持 Python 和 JavaScript 的外部依赖:
# Python: Import numpy, pandas, requests, etc.
def main(data: list) -> dict:
df = pd.DataFrame(data)
return {'mean': float(np.mean(df['values']))}
// JavaScript: Import lodash, moment, etc.
const _ = require('lodash');
function main(data) {
return { unique: _.uniq(data) };
}
依赖已预装在沙箱环境中。请检查你的 FlexAI 安装中的可用包列表。
自托管设启动沙箱服务以进行安全的代码执行:¶
沙箱服务需要 Docker,并将代码执行与你的主系统隔离以确保安全。
常见用例¶
数据解析 - 从 API 或其他节点返回的复杂 JSON 结构中提取特定值。
数学运算 - 执行预设节点无法处理的计算、统计分析或数据聚合。
数据转换 - 转换数据格式、组合多个数据源或重构信息以供下游处理。
条件逻辑 - 实现超越简单 if-else 条件的复杂决策逻辑。