代码
代码节点支持通过编写Python或Node.js代码来处理文本等复杂逻辑,生成业务期望的返回值。
前提条件
已完成工作流搭建,如果未搭建工作流,请参考搭建工作流。
配置代码节点
- 登录Versatile智能体平台,在左侧导航栏“个人空间”区域,选择进入所需空间。
如果已选择团队空间,界面显示为实际的团队空间名称,而非“个人空间”。
图1 选择团队空间 - 在左侧导航栏选择“开发中心 > 应用管理 > 工作流应用”,单击您创建的工作流。
- 单击“添加节点”并选择“代码”节点。
- 通过单击该节点打开节点配置页面。根据“执行方式”不同,支持两种配置方式。
- 安全沙箱:用于隔离程序运行的环境,以防止潜在的恶意代码对系 统造成损害。安全沙箱配置方式请参照安全沙箱执行方式配置说明。
- FunctionGraph:使用FunctionGraph函数,只需编写业务函数代码并设置运行的条件,无需配置和管理服务器等基础设施,函数以弹性、免运维、高可靠的方式运行。FunctionGraph配置方式请参照FunctionGraph执行方式配置说明。
- 单击
图标,可修改代码节点名称,修改完成后单击名称旁边的
进行保存。
- 单击
图标,可重命名代码节点名称,复制一个代码节点或删除代码节点。
- 单击
图标,可对代码点进行测试。
- 单击
- 节点配置完成后,单击“确定”。
- 连接代码节点和其他节点。
安全沙箱执行方式配置说明

参数 |
说明 |
---|---|
执行方式 |
安全沙箱 |
输入参数 |
配置代码运行需要的输入参数。 当单击
|
输出参数 |
配置代码运行后需要输出的参数,需要与return返回的对象保持一致。 当单击
|
代码 |
编写代码时不要更改第一行函数定义。 编写Python代码片段,仅支持python系统库,不支持引入依赖包;代码配置示例请参考示例。 |
FunctionGraph执行方式配置说明

如果使用FunctionGraph执行方式,请确保当前华为账号或IAM用户具备FunctionGraph的权限,如何获取FunctionGraph的权限请参见授权使用FunctionGraph。
参数 |
说明 |
---|---|
函数名称 |
选择下拉列表中的函数,即之前已定义保存的函数,也可以进行以下操作。
|
输入参数 |
按照函数定义中指定的参数列表配置入参,即传递给函数的实际值。 输入参数或选择前序节点的输出作为输入。 |
输出参数 |
配置代码运行后需要输出的参数。 |
参数 |
说明 |
---|---|
名称 |
函数名,用于调用函数。 |
描述 |
函数功能描述。 |
入参 |
输入参数。 |
出参 |
输出参数。每个变量都可在后置节点中引用。 |
执行语言 |
当前支持Python3.9、Node.js14.18,即运行函数的环境,请查看Python函数开发指南、Node.js函数开发指南。 |
编辑源码 |
在源码编辑区,编写函数内部的代码运行逻辑,如图3所示,图中各模块说明如下: ①:导入模块,是Python标准库中的模块,无需修改。 ②:用户自定义导入模块。 ③:公共函数使用方法示例,提供了如何使用公共函数和mssiAuthData参数的示例,无需修改。 ④:函数定义和注释,extractRequestParam函数和handler函数是系统预置的模板代码,无需修改。 ⑤:系统方法,无需修改。 ⑥:用户自定义函数中的逻辑。输出为JOSN格式,请参考示例的输出格式。 |
依赖包 |
单击“添加”,可以选择自定义依赖包。自定义依赖包上传方法请参见创建自定义依赖包。 一个函数最多添加20个依赖包。 |
示例
开发语言
代码节点以Python语言为例。
Python
基于Python 3.11.3的标准库,大多数模块都能正常运行,如下面白名单所示模块,不在白名单中的模块可能不能正常运行。
- 三方库白名单
sys,time,numpy,warnings,enum,os,functools,collections,types,datetime,numbers,abc,io,executor_sdk,contextlib,dataclasses,math,operator,pickle,contextvars,_contextvars,ast,re,ctypes,copyreg,weakref,textwrap,platform,typing,__future__,sympy,mpmath,bisect,cmath,colorsys,keyword,linecache,timeit,gc,random,decimal,_decimal,fractions,flint,gmpy2,unicodedata,tokenize,gmpy,copy,inspect,string,struct,importlib,array,shutil,pathlib,tempfile,subprocess,json,xml.etree.ElementTree,uuid,_uuid,urandom
- 内置函数白名单
exec,print,id,issubclass,compile,__build_class__,hasattr,eval,chr,next,ord,callable,repr,sorted,iter,min,max,weakref,all,any,hash,locals,sum,vars,open,abs,round,divmod,pow,delattr
配置示例:
- 文本拼接示例代码。
def main(args: dict) -> dict: # 注意在输入参数中定义名为input1的变量 input1 = args.get('input1') # 注意在输入参数中定义名为input2的变量 input2 = args.get('input2') res = { # 注意在输出参数中定义名为res的变量 "res": input1 + input2, } return res
- 数学计算示例代码。
def main(args: dict) -> dict: # 注意在输入参数中定义名为input1的变量 input1 = args.get('input1') try: input1 = int(input1) return { # 注意输出参数中定义res变量 'res': input1 * input1 } except Exception as e: return { # 注意输出参数中定义res变量 'res': "输入类型错误或者数字大小超出限制" }
创建自定义依赖包
- 登录Versatile智能体平台,在左侧导航栏“个人空间”区域,选择进入所需空间。
如果已选择团队空间,界面显示为实际的团队空间名称,而非“个人空间”。
图4 选择团队空间 - 在左侧导航栏选择“开发中心 > 应用管理 > 工作流应用”,单击您创建的工作流。
- 单击“代码”节点,进入节点配置界面,“执行方式”选择为“FunctionGraph”。
- 选择已有函数,进入编辑函数界面,如图5所示。
- 单击“依赖包”后的“添加”,如图6所示。
- 单击“创建依赖包”,设置依赖包的基本配置信息,具体的参数说明如表4所示。
- 单击“确定”。
创建完成后,可以在代码节点中添加并使用该依赖包。