分享
JavaScript&Python节点
输入“/”快速插入内容
JavaScript&Python节点
用户6834
用户6834
用户7514
用户7514
2025年2月19日修改
使用场景
Javascript/Python节点支持我们使用代码的方式完成很多复杂的功能,对于开发者用户来说,这是一个令人兴奋的特性,你可以完全解放你的编码能力做出更复杂更优秀的应用,得益于Code的的灵活性,该节点可以完全覆盖下面的业务场景:
1.
我想自定义一个Plugin,但是平台提供的节点和Plugin不包含我的需求
2.
我想做一个非常复杂的Flow,但是可视化的逻辑控制和循环控制可读性太差了
3.
我希望通过Flow来为Agent实现持久化的记忆
4.
...
输入与输出
前置节点中的变量,比如Start节点中定义的表单字段、前置节点的输出变量都
已经内置在当前代码的执行环境
中了,你可以直接使用,无需重新声明,或者从参数中获取,举个例子:
JavaScript示例
代码块
JavaScript
async function main() {
/**
* 假设message是start节点定义的一个变量
* 编辑器中可以直接通过start表单中定义的变量名使用该变量
*/
console.log(message);
/**
* 如果你想使用节点的返回结果
* 你可以直接通过节点的命名去使用
* 这里假设你有一个名为llm_1的LLM节点
*/
console.log(llm_1)
return message;
}
Python示例
代码块
Python
async def main():
# 假设message是start节点定义的一个变量
# 编辑器中可以直接通过start表单中定义的变量名使用该变量
print(message)
# 如果你想使用节点的返回结果
# 你可以直接通过节点的命名去使用
# 这里假设你有一个名为llm_1的LLM节点
print(llm_1)
return message
当前节点的输出即为当前节点里面
main
函数的输出,所以你必须要保证编写的代码中有一个入口main函数,如果代码中没有main函数则运行会出错,如果main函数没有return,则默认当前节点输出为null。
💡
Javascript/Python节点的输出必须是一个可序列化的值,所以你不能return正则、函数或者其他不可序列化的值。
全局变量
Flow的执行环境支持设置当前Flow运行时的全局变量,该变量在整个Flow的运行生命周期中,都可访问,不会受所在节点的位置约束,eg:在多个逻辑分支中可以通过全局变量共享数据。
JavaScript示例
代码块
TypeScript
async function main() {
// 设置全局变量
betterAI.store.set("value", 123);
betterAI.store.set("json", {});
// 获取全局变量
betterAI.store.get("value"); // 123
betterAI.store.get("json"); // {}
// 其他节点可以可以访问该全局变量,比如LLM中,可以通过 {{betterAI.store.get("value")}} 访问
}