创建脚本组件
脚本组件使用场景
脚本组件适用于简单的代码处理任务,特别是可以通过单个代码文件解决的问题。例如,将读取本地数据功能设置为脚本组件。
脚本组件仅支持Python脚本,脚本组件可以将代码进行整合,使得代码更加模块化,同时也提高了代码的可读性和可维护性。
脚本组件使用规范
- 脚本语言:脚本组件仅支持Python脚本。
- 类定义:脚本组件必须定义一个名为Template的类。这个类名是固定的,不可修改。
- 方法定义:Template类中必须实现两个方法:__init__和process。这两个方法的名称是固定的,不可修改。
- 方法参数:__init__和process方法的参数不可添加。__init__方法没有参数,process方法有一个参数params_dict。
- 类初始化:__init__方法在脚本组件的生命周期中只会被执行一次。这个方法通常用于进行一些初始化操作。
- 数据处理:process方法是脚本组件的核心,它负责处理数据。这个方法可以从params_dict参数中获取输入数据。params_dict是一个字典,它包含了所有的输入参数,如示例注释中,a和b对应组件的两个输入参数·。
- 返回值:process方法的返回值必须是一个字典。这个字典包含了处理结果,对应组件的所有输出参数,如示例注释中,a对应该组件的一个输出参数。
- 编码声明:脚本组件的文件必须在文件头部声明编码方式,通常为# -*- coding: utf-8 -*-。
- 注释:脚本组件的代码应该包含足够的注释,以帮助其他人理解代码的功能和工作原理。
脚本组件示例:
#!/usr/bin/env python # -*- coding: utf-8 -*- class Template: def __init__(self): # todo pass def process(self, params_dict): # 获取入参 # a = params_dict.get("a") # b = params_dict.get("b") # todo # return {"a": a} return None
创建脚本组件
- 登录ModelArts Studio平台,进入所需空间。
- 在左侧导航栏中选择“垂域应用开发 > 应用组件 > 组件管理”,在“自定义”页签,单击右上角“创建组件”,选择“脚本组件”算法类型,单击“确定”。
图1 脚本组件
- 进入“创建脚本组件”页面,参考表1设置基础信息。
表1 创建脚本组件基础信息参数说明 参数名称
说明
英文名称
组件的英文名称。
中文名称
组件的中文名称。
业务类型
用于区分脚本组件的业务场景。包括以下类型:
数据读写、数据预处理、数据后处理、特征加工、优化场景定义、机理模型、过程控制、图像组件、视频组件、其他。
行业
用于区分脚本组件的行业类型,按行业类型进行组件筛选,非必填项,包括以下行业:
汽车、政务、交通、电力、钢铁、矿山、油气、供热。
标签
- 用于给组件绑定标签,支持绑定已有或者自定义的新标签,每个组件最多可绑定10个标签。
- 标签输入框支持创建新的标签和删除已有标签,单个空间最多可创建200个标签。
- 创建标签:输入框中输入标签名称并回车即可创建该标签。
图2 创建标签
- 删除标签:下拉框单击指定标签的“X”号,单击“确认”,即可删除标签。
图3 删除标签注意:
如果已有组件绑定该标签,删除操作会同步删除该组件与标签的绑定关系,且删除后不可找回,请谨慎操作。
- 创建标签:输入框中输入标签名称并回车即可创建该标签。
图4 创建脚本组件 - 基础信息设置完成后,参考表2设置属性参数。
属性参数具备多种功能。例如,在编排静态应用时,通常需要组合多个组件来实现某一功能,不同的组件需要定义清楚输入、输出参数的引用关系,实现数据在不同的组件间流转。
表2 创建属性参数说明 参数名称
说明
英文名称
参数的英文名称。
中文名称
参数的中文名称。
参数类型
- 入参:在编排应用时,该节点的入参,支持三种方式,包括:界面填写、其他组件节点的输出参数作为当前节点的入参、画布参数传入。
- 出参:表示执行组件后生成的结果,出参可以被其他组件节点使用。
- 流式出参:nlp等场景下支持流式出参,支持出参以流式方式展示,使用时组件应该仅包含一个流式出参,并且不包含其他出参。
- 环境变量:在组件运行时可用的全局变量,可以用环境变量存储一些共享的配置信息。例如应用需要从数据库中获取待处理的数据,可以用环境变量存储数据库的位置信息、账密信息、API密钥等。
数据类型
组件参数的数值类型。
业务类型
参数的业务类型。非必填参数,默认为空,支持模型和模型服务两种类型。
模型:用于在静态应用界通过“选择模型”,自动填充所选模型的obs地址;
模型服务:用于在静态应用界通过“选择服务”,自动填充所选模型服务的访问地址,实现组件服务调用所选模型服务。
父参数
父参数通常用于配置复杂的结构体,可以使用一个已经添加的数据参数作为这个结构的父参数,即父参数必须是一个已经定义的组件参数。
配置复杂结构体使用,父参数只能是已经添加的数据类型为对象的组件参数。
默认值
参数的默认值。
有效值
参数可以接受的合法取值范围。举例:整数:[0,10],浮点数:[0.1,10.1],枚举:A|B|C。
是否必填
该参数是否为必填参数。
是否敏感
设置参数是否为敏感参数,敏感参数将不允许在画布中填入,只能通过画布参数传入。
是否为数组
该参数是否为数组类型。如果一个参数是数组类型,意味着它可以包含多个值。例如,一个名为“标签”的参数可以是一个字符串数组,其中包含多个标签名称。如果参数不是数组类型,那么它只能接受单个值。
- 填完参数无误后,填写脚本的内容,完成后单击“立即创建”,组件创建成功。
图5 修改脚本
- 组件创建完成后,在脚本列表页面,单击操作列“编辑”可以对中文名称、参数、脚本等进行修改更新。其中,组件参数有批量导入的功能,如果一个组件参数比较多,并且在其他组件中已经创建,可以复制参数代码,在需要导入的组件参数中通过“导入参数”功能填入代码,进行参数的批量导入。
图6 查看组件参数图7 导入参数
- 组件开发完成后,单击“保存并生效”后,该组件可用于创建静态应用中使用。
- 在组件列表页面,可基于名称、标签、行业对组件进行筛选。
图8 组件列表