如何开发插件

通过上面的介绍,读者基本已经了解了 Pipcook 主要的使用场景了,对,那就是 —— Pipeline,但要说到 Pipeline 却离不开插件,我们为 Pipcook 的 Pipeline 生态构建了一套开放的插件机制,通过这套机制,任何开发者都可以随时随地基于 Node.js 为 Pipcook 拓展插件。

首先,一个插件,也是一个 NPM 包,在 NPM 包的基础上,Pipcook 增加了一些拓展字段,即在 package.json 中增加了一些额外的定义,下面就是一个简单的定义:


{
   "name": "my-own-pipcook-plugin",
   "version": "1.0.0",
   "description": "my own pipcook plugin",
   "dependencies": {
     "@pipcook/pipcook-core": "^0.5.0"
   },
   "pipcook": {
     "category": "dataCollect",
     "datatype": "image"
   },
   "conda": {
     "python": "3.7",
     "dependencies": {
       "tensorflow": "2.2.0"
     }
   }
}

首先,每个插件都必须依赖 @pipcook/pipcook-core,它包含了实际定义插件所依赖的类型定义和一些工具函数。然后是 “pipcook” 节点,它定义了插件的基本信息,比如类别和数据类型,它用于 Pipcook 对插件本身做归类和整理,接下来就是 “conda” 节点(可选),如果插件依赖 Python 环境,那么开发者可以通过这个字段配置 Python 的依赖,比如上述就表示插件依赖 Python 版 tensorflow@2.2.0,在 Pipcook 安装插件时就会自动进行安装。

定义好这些基本信息后,就可以开始写具体的插件代码了,还记得前面在说明 Pipeline 流程时的那张图吗?每一种插件类型的写法都是不一样的,比如一个简单的 data collect 插件如下:

©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页