脚本执行节点
脚本执行节点用于在工作流中运行自定义脚本,支持使用 Python、JavaScript 等语言来处理、转换或生成流程变量,从而实现灵活的数据处理能力。

应用场景
脚本执行节点可广泛应用于以下场景:
- 数据解析:解析复杂嵌套结构的 JSON,对结构化或非结构化数据进行清洗和抽取。
- 计算统计:实现自定义逻辑的数值计算、统计汇总等。
- 变量处理:合并多个变量,或将变量进行统一格式化处理。
节点配置详解
输入变量配置
在节点右侧配置面板中,可以设置该脚本节点的输入变量:
- 左侧输入框:填写变量名;
- 右侧下拉框:选择变量来源节点,变量必须来自当前节点之前的节点,不能引用后续或并行节点。

选择与编写脚本
脚本节点支持多种脚本语言,包括:
- JavaScript(JS)
- Python
- Groovy
- Kotlin
- Aviator

脚本格式要求:
- JS/Groovy/Kotlin:需实现一个名为
main(params)
的主函数,返回一个对象; - Python/Aviator:可直接书写代码,通过设置变量
resp = {...}
来返回结果。
脚本示例
脚本会接收一个输入对象,该对象包含了所有输入变量
,处理完成后返回一个对象,该对象包含了所有输出变量
.
JavaScript 示例
function main(params) {
if (params.llmRes) {
let resLength = params.llmRes.length;
params.llmRes = params.llmRes + '\n字数:' + resLength;
}
return {
result: params.llmRes,
};
}
Groovy 示例
def main(params) {
if (params.llmRes) {
def resLength = params.llmRes.length()
params.llmRes += "\n字数:" + resLength
}
return [result: params.llmRes]
}
Kotlin 示例
fun main(params: MutableMap<String, Any?>): Map<String, Any?> {
if (params["llmRes"] is String) {
val llmRes = params["llmRes"] as String
val resLength = llmRes.length
params["llmRes"] = "$llmRes\n字数1:$resLength"
}
return mapOf("result" to params["llmRes"])
}
Python 示例
if isinstance(params.get("llmRes"), basestring):
llm_res = params["llmRes"]
res_length = len(llm_res)
params["llmRes"] = u"{}\n字数1:{}".format(llm_res, res_length)
resp = {"result": params["llmRes"]}
Aviator 示例
let llmRes = params.llmRes;
let resLength = length(llmRes);
let res = llmRes + "\n字数1:" + resLength;
let resp = seq.map("result", res);
输出变量配置
脚本节点返回的结果为一个对象,其中每个字段都可以作为输出变量使用。
例如:若返回结果为:{"result": "处理后的文本"}
则在输出变量中配置变量名 result,即可获取对应值用于下游节点使用。