作者:杨雨虹  历史版本:1  最后编辑:杨雨虹  更新时间:2025-06-04 13:50

概述

代码节点支持运行 Python / NodeJS 代码以在工作流程中执行数据转换。它可以简化工作流程,适用于Arithmetic、JSON transform、文本处理等情景。

该节点极大地增强了开发人员的灵活性,使他们能够在工作流程中嵌入自定义的 Python 或 Javascript 脚本,并以预设节点无法达到的方式操作变量。

节点配置

通过配置选项,可以指明所需的输入和输出变量,并撰写相应的执行代码:

  • 失败时重试:开启后,节点将在发生错误的时候按照预设策略进行自动重试

    • 最大重试次数为 10 次
    • 最大重试间隔时间为 5000 ms
  • 异常处理:代码节点处理信息时有可能会遇到代码执行异常的情况,可以在节点出现异常时启用应对方案,而避免中断整个流程

场景示例

结构化数据处理

在工作流中,经常要面对非结构化的数据处理,如JSON字符串的解析、提取、转换等。最典型的例子就是HTTP节点的数据处理,在常见的API返回结构中,数据可能会被嵌套在多层JSON对象中,而我们需要提取其中的某些字段。代码节点可以帮助你完成这些操作,下面是一个简单的例子,它从HTTP节点返回的JSON字符串中提取了data.name字段:

def main(http_response: str) -> str:
    import json
    data = json.loads(http_response)
    return {
        # 注意在输出变量中声明result
        'result': data['data']['name'] 
    }

数学计算

当工作流中需要进行一些复杂的数学计算时,也可以使用代码节点。例如,计算一个复杂的数学公式,或者对数据进行一些统计分析。下面是一个简单的例子,它计算了一个数组的平方差:

def main(x: list) -> float:
    return {
        # 注意在输出变量中声明result
        'result' : sum([(i - sum(x) / len(x)) ** 2 for i in x]) / len(x)
    }

拼接数据

有时,也许你需要拼接多个数据源,如多个知识检索、数据搜索、API调用等,代码节点可以帮助你将这些数据源整合在一起。下面是一个简单的例子,它将两个知识库的数据合并在一起:

def main(knowledge1: list, knowledge2: list) -> list:
    return {
        # 注意在输出变量中声明result
        'result': knowledge1 + knowledge2
    }