AICS組件根據來源分為平臺組件和自定義組件。平臺組件為系統內置的組件,用戶不可編輯;自定義組件是用戶自己編輯上架的組件。目前AICS支持Python腳本、Python組件、算法包組件三種自定義組件。本文介紹自定義算法包組件的模板及上架流程。
算法包模板
以樣例算法包algo_package_sample.zip為例,介紹算法包的模板。
算法包解壓后結構如下:
common放工具包
lib放第三方包
# 導入第三方包的方式 third_path = env_util.get_workspace() + "/lib" os.system('pip3 install simpy==3.0.11 -i https://pypi.tuna.tsinghua.edu.cn/simple -t '+str(third_path)) os.system('pip3 install ortools==8.0.8283 -i https://pypi.tuna.tsinghua.edu.cn/simple -t '+str(third_path)) # 使用第三方包 import simpy import ortools
固定有一個main.py文件,是算法調用入口文件。
# -*- coding: utf-8 -*- # @author: xxx # @E-mail: xxx@alibaba-inc.com # @Date : 2021/1/5 5:50 下午 # @File : main.py # framework import start from algo_sdk import storage # framework import end ### # User import package start # from src.sample_code import sample # User import end ### # User code start def main(input_data, context): # 通過context拿到日志對象 context['log'].info("data log info!") context['log'].info('算法主流程input: {}'.format(input_data)) # input_data 是輸入的參數 # IN1是端口1的參數標識在搭建組件的時候填寫的 # key1是這個控件的參數key 如果是批量參數則是在組件上架的時候填寫的,如果是動態參數則是在搭建畫布的時候需要填寫的 # 使用sdk讀寫外部緩存 storage.external_save("key", "value") storage.external_read("key") # 這里的key為igate測點 value = input_data["IN1"]["key1"]["value"] response = {'code': 0, 'data': value} context['log'].info('算法主流程output: {}'.format(response)) return response
src放用戶業務代碼
壓縮算法包時,需要同時選擇以上四項進行壓縮。
算法包組件上架
左側導航欄單擊組件管理 > 自定義組件。
在自定義組件頁面,單擊右上角的新增組件。
在新增組件面板,正確填入參數,單擊左下角確定。
參數
說明
控制場景
實時算法編排或工業分析建模。
如選擇實時算法編排,該自定義組件只能在實時算法編排的畫布中使用;選擇工業分析建模,該自定義組件只能在工業分析建模的畫布中使用。
組件名稱
自定義組件的名稱。
標識
自定義組件的唯一標識。
類型
Python腳本:畫布通過Python編譯器編寫腳本。
Python組件:上架組件前編寫好腳本,畫布通過控件運行腳本。
算法包組件:上傳算法包方式運行組件。
此處選擇算法包組件。
分組
目前選擇默認分組。
運行方式
service實時調用:畫布可實時調用組件,組件超時一分鐘運行失敗。此調用為常駐服務。
service異步回調:組件運行超過一分鐘,服務掛起狀態,走異步邏輯。此調用為常駐服務。
job:只有算法包組件類型可使用。調用一次啟動一次pod,運行完成自動銷毀。
圖標
為自定義組件選擇一個圖標。
描述
選填,自定義組件的描述信息。
Python腳本
根據用戶的業務來書寫的Python代碼。
組件控件添加。
序號
操作
1
新增輸入端口。
2
新增輸出端口。
3
從左側控件欄拖入需要配置的控件。
4
分別選中各個控件,在右側控件配置欄進行配置。其中,參數標識和算法包參數對應。
5
保存編輯。
回到自定義組件頁面,選中剛剛新建的Python腳本組件,在操作欄中單擊發布,填寫版本號,選擇發布類型,即可上架該組件。