代码执行

定义

代码节点支持您在工作流中运行 Python 或 NodeJS 代码,从而实现强大的数据转换功能。它能极大简化您的工作流程,特别适用于算术运算、JSON 转换、文本处理等场景。

该节点赋予开发者极高的灵活性,允许您在工作流中嵌入自定义的 Python 或 JavaScript 脚本,以预设节点无法比拟的方式操作变量。通过简单的配置,您可以指定所需的输入变量输出变量,并编写相应的执行代码。

image

前置条件

创建AI Studio服务

节点配置

点击开始后面的image添加代码执行节点。

image

如果你需要在代码节点中使用其他节点的变量,你需要在输入变量中定义变量名,并引用这些变量。

使用场景

使用代码节点,你可以完成以下常见的操作。

结构化数据处理

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

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

数学计算

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

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

拼接数据

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

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