代码
代码节点是工作流中用于执行自定义代码逻辑的节点。当工作流中需要进行数据处理、格式转换、数学计算、逻辑判断等操作,而这些操作用其他节点难以实现或用大模型处理不够准确时,可以通过代码节点编写代码来完成。代码执行的结果是确定的,相同的输入必然得到相同的输出。对于计算、格式转换等任务,代码比大模型更准确、更快、且不消耗Token。
代码节点的典型使用场景如下:
| 场景 | 示例 |
|---|---|
| 数据格式转换 | 将上游节点返回的JSON数据提取、重组为下游节点需要的格式。 |
| 数学计算 | 价格计算、折扣计算、数据汇总统计等。 |
| 文本处理 | 正则匹配、字符串拼接、内容截取、编码转换等。 |
| 逻辑判断 | 复杂的条件判断、数据校验、规则匹配等。 |
| 数据清洗 | 去重、过滤、排序、字段映射等。 |
前提条件
已构建工作流。
配置代码节点
- 在工作流编排画布中,单击“添加节点”按钮,从节点列表中选择“代码”,即可将该节点添加至当前工作流编排画布中。 图1 添加代码节点
- 单击“代码”节点,在弹出的节点详情页面中进行参数配置,参考表2。 图2 代码节点配置
- 单击上方的“保存”。
Python 3.11代码要求
支持Python 3.11版本及其标准库,并支持如下的非标准库,可直接在Python函数代码中声明使用。
| 模块 | 功能 |
|---|---|
| numpy | 数学计算 |
| pandas | 数据分析和处理 |
| matplotlib | 数据可视化及绘图 |
示例:
def main(params: dict) -> dict:
"""
Python节点代码必须包括且只包含一个main函数,该main函数为代码执行的入口函数,
且参数和返回值类型为dict,且是单参数和单值返回,该节点的输入和输出参数均由dict类型表示,
参考样例参数说明:输入参数为:input_param1和input_param2, 输出参数为:out_param
:param params: 输入参数字典,只有一个字典类型的参数,节点定义的参数由该字典参数表示
:return: 返回参数字典,节点定义的输出参数由返回的字典表示,且是单值返回
"""
input_param1 = params.get('input_param1', 102)
input_param2 = params.get('input_param2', 101)
return {
"out_param": input_param1 + input_param2
} - 平台通过固定的main函数触发代码执行,函数名不可修改。
- 输入参数args是一个字典(dict),包含了在代码节点界面配置的所有输入参数,以参数名为key、参数值为value的键值对形式传入。通过args.get('参数名', '默认值') 读取,建议始终设置默认值,避免参数缺失时报错。
- 返回值是一个字典(dict),直接return即可,无需做JSON转换。返回字典中的key必须与代码节点界面配置的“输出参数”名称完全一致(区分大小写),否则下游节点将无法获取到对应的值。
- 在代码节点界面的“输出参数”区域配置的参数名,必须与代码return字典中的key对应。
- 编写约束:
入口函数名必须是main,接收一个dict参数,返回一个dict 直接返回字典即可,无需json.dumps()转换 即使只有一个输出字段,也必须以字典形式返回 × return "hello" √ return {"message": "hello"}