阿里云首页 工业大脑开放平台

自定义Python脚本上架

AICS组件根据来源分为平台组件和自定义组件。平台组件为系统内置的组件,用户不可编辑;自定义组件是用户自己编辑上架的组件。目前AICS支持Python脚本、Python组件、算法包组件三种自定义组件。本文介绍自定义Python脚本的上架流程。

  1. 登录工业大脑智能制造平台AICS

  2. 左侧导航栏单击组件管理 > 自定义组件

  3. 自定义组件页面,单击右上角的新增组件

    新建组件
  4. 新增组件面板,正确填入参数,单击左下角确定

    python脚本

    参数

    说明

    控制场景

    实时算法编排工业分析建模

    如选择实时算法编排,该自定义组件只能在实时算法编排的画布中使用;选择工业分析建模,该自定义组件只能在工业分析建模的画布中使用。

    组件名称

    自定义组件的名称。

    标识

    自定义组件的标识,组件标识在账号内具有唯一性。

    类型

    • Python脚本:画布通过Python编译器编写脚本。

    • Python组件:上架组件前编写好脚本,只可编辑输入、输出参数,不可修改Python代码。

    • 算法包组件:上传算法包方式运行组件。

    此处选择Python脚本

    分组

    目前选择默认分组。

    运行方式

    • service实时调用:画布可实时调用组件,组件超时一分钟运行失败。此调用为常驻服务。

    • service异步回调:组件运行超过一分钟,服务挂起状态,走异步逻辑。此调用为常驻服务。

    • job:只有算法包组件类型可使用。调用一次启动一次pod,运行完成自动销毁。

    图标

    为自定义组件选择一个图标。

    描述

    选填,自定义组件的描述信息。

  5. 组件搭建。

    组件搭建

    序号

    操作

    1

    新增输入端口。

    2

    新增输出端口。

    3

    从左侧控件栏拖拽Python代码编辑器控件到输入配置页签下。

    4

    从左侧控件栏拖拽动态输入配置控件到输入配置页签下。

    5

    从左侧控件栏拖拽动态输出配置控件到输入配置页签下。

    6

    分别对每一个控件进行配置。

    7

    保存编辑。

  6. 回到自定义组件页面,选中刚刚新建的Python脚本组件,在操作栏中单击发布,填写版本号,选择发布类型,即可上架该组件。

  7. 画布配置Python脚本。

    将自定义Python脚本拖入画布并选中,将如下脚本填入右侧的Python代码编辑器,可以根据自己的业务需求修改脚本。

    # import start
    from algo_sdk import file_util as sdk
    
    
    ### customer code start
    def main(input_data, context):
        # 上游输出获取 这里的IN1是指组件搭建的时候端口绑定控件的参数标识
        IN1 = input_data["IN1"] or None
        # mv1 是配置的参数的key
        mv1Value = IN1["mv1"]["value"]
    
        # 文件下载 UPLOAD是组件搭建的时候配置的参数标识
        UPLOAD = input_data["UPLOAD"] or None
        path = UPLOAD["default"]["value"]
        httpResponse = sdk.download(path)
    
        # 本节点输出 dataKey1 dataKey2是输出配置的key
        OUT1 = {
            "dataKey1": {
                "value": mv1Value,
                "keyName": "keyName",
                "quality": 192
            },
            "dataKey2": {
                "value": str(httpResponse, 'UTF-8'),
                "keyName": "keyName",
                "quality": 192
            }
        }
        return OUT1
    ### customer code end