# 算子管理

工作流是由一个一个算子连接起来的,所以算子至关重要,平台提供部分公共算子,用户也可以自定义自己的算子。

# 新建算子

# 基础属性


字段 意义
名称 算子的名称,方便在工作流中识别,比如 LFM 训练
路径 算子的目录树,个人私有的以 /个人私有/ 开头,可以多级目录,如 /个人私有/xxx ,项目共享的则以项目名开头
描述 备注信息,可选

# 输入配置

如果工作流中前一个算子需要输出内容给本算子,或者本算子需要依赖于前一个算子运行完毕,则需要此输入配置。

点击顶部的 新增输入 可以添加更多的输入,点击卡片的 x 可以删除输入,一个算子的输入可以有 0 或任意多个,如果算子输入为 0 个时,则为起始算子。

字段 意义
输入名称 算子此输入对应的名字,算子里的代码可以读取对应的输入值
输入类型 目前类型的唯一作用,就是限制连接,比如输入为 RawData,则与其连接的前一个算子输出的类型必须也为 RawData,否则不允许连接,起到防呆作用
输入描述 备注

# 输出配置

如果工作流中,需要将本算子的内容输出给下一个算子,或者下一个算子需要依赖于本算子运行完毕,则需要此输出配置。

点击顶部的 新增输出 可以添加更多的输出,点击卡片的 x 可以删除输入,一个算子的输出可以有 0 或任意多个。

字段 意义
输出名称 算子此输出对应的名称,算子里的代码需要将输出内容写到对应名称规则的文件里
输出类型 目前类型的唯一作用,就是限制连接,比如输入为 RawData,则与其连接的后一个算子输入的类型必须也为 RawData,否则不允许连接,起到防呆作用
输出描述 备注

# 可调参数

如果算子需要一些设置参数,则可以添加这个:

点击顶部的 新增参数 可以添加更多的参数,点击卡片的 x 可以删除,一个算子的可调参数可以有 0 或任意多个。

点击顶部的 调整顺序 可以调整排序,在工作流中设置算子参数时更方便直观。

字段 意义
参数名称 当参数传递给算子里代码时的名字
参数名称(展示) 在工作流界面右侧展示时显示名称,一般用浅显易懂的中文
参数类型 在算子代码使用在线编辑时有用,会把参数提前转换好类型,如 整型字符串浮点型
参数默认值 就是默认值

# 运行设置


字段 意义
镜像地址 算子运行使用的镜像,点击可以搜索,来自你的镜像管理列表,亦可直接填写外部镜像
资源组 算子运行时需要的资源
代码 即算子运行的代码,有三种方式:

关于编辑算子运行的代码,有 3 种方式,具体如下:👇
字段 意义
即无代码,不需要平台帮你拉取代码,可以选择直接在启动命令中填写 git clone 等操作
Huya Git 填虎牙 git地址分支,平台帮助你拉取好代码,然后你在启动命令中,填写启动脚本
在线编辑 直接在网页中书写代码,平台会自动调用 runner 这个钩子函数,关于算子输入、输出和可调参数的使用,请看后面详解

# 算子的输入与输出详解

每个算子可以有 0 个或多个输入/输出。

我们的代码如何获取输入的数据和让数据输出给下一个算子呢?我们分两种代码实现形式。

# 在线编辑器

请结合前面已经配置的 输入输出可调参数,看下方编辑的示例代码。👇



当用户使用在线编辑器时,平台已经封装了一个 runner 钩子函数,用户只需要在 runner 函数中填充自己的代码,即可快速编程。目前支持 Python 代码。

如上图所示,我们可以很简单的在在线编辑器中写代码获取算子的“输入”、“可调参数”以及返回“输出“给下一个算子。

# 非在线编辑器

当代码使用 Huya Git 或者只有启动命令时,如何获取输入、可调参数以及输出呢?



如上图所示,输入和可调参数直接通过命令行参数进行传递,将输入名称和参数名称通过符号 %% 包括起来即可,平台会自动将这个 %% 包括起来的字符,替换为其真实值,用户代码中可以直接去获取命令行传递的参数即可。



如上图所示,输出需用户在自己的代码中,按一定规则将输出内容写入特定临时文件中,例如:

有一个输出为 my-output-1,临时文件即为 /tmp/my-output-1.txt,拼接规则为:/tmp/ + 输出名称 + .txt,然后将待输出的内容 hello world 写入这个文件中,即可,系统会自动收集这些内容。