软件包格式

AI应用针对不同的操作系统存在不同的软件包形式,具体支持类型如下表所示:

表 1

操作系统

包格式

系统约束

包形态

系统举例

通用Linux系统

rpm,deb,whl

具备完善的软件包管理能力和规范,可以完成包的依赖问题

软件包分层,将应用单独打包,并添加对ModelBox框架包和第三方包的依赖

EulerOS、Ubuntu、CentOS

通用应用格式系统

apk等特定应用格式

具有通用应用管理能力和规范,无软件包依赖能力

按照系统要求,将应用包、框架包和依赖统一打包成通用应用

HarmonyOS、Android

定制系统

独立rpm

无软件包管理能力,不支持依赖包的管理

按照定制系统要求,将应用包、框架包和依赖统一打包成应用

嵌入式系统

  • 通用Linux系统场景

用户可以使用多种软件包格式对应用进行打包。包括rpm、deb和whl。ModelBox软件运行包分为两层,基础框架包组和应用包。如下表zh-cn_topic_0000001102712276.md所示。其中软件包之间依赖和安装关系由所使用的包管理依赖来保证。

表 2

应用包类型

是否必须

依赖关系

主要功能

提供者

基础框架包组

框架工具依赖的第三方包,通用功能单元依赖的第三方包

基础框架包提供基础的运行框架,常用工具,样例工程和一部分预制的通用功能单元

ModelBox框架

应用包组

基础框架包,应用功能单元依赖的第三方包

应用包提供了应用特有的功能单元和应用启动需要的流程图或是启动的入口文件

应用开发者

用户可以选择将应用包安装到自定义位置中,这里推荐安装到/opt/modelbox下,如一个车辆检测应用打包安装路径如下:

C++应用功能单元库 /opt/modelbox/car_detection/lib

Python应用功能单元 /opt/modelbox/car_detection/python

应用推理功能单元 /opt/modelbox/car_detection/model

应用流程图 /opt/modelbox/car_detection/etc/graph

应用配置文件 /opt/modelbox/car_detection/etc

应用主入口 /opt/modelbox/car_detection/bin

  • 定制Linux系统

rpm格式

用户使用运行框架执行应用时,应用需要按照一定的格式。

app.config主要参数说明如下表所示:

配置项

描述

应用名

应用名称,只能以英文字母开头,不能包含中文以及&!'\"<>=,不超过36个字符。

应用描述

应用描述,表示该应用的用途,由应用开发者填写,以便使用者理解该应用的用途

应用版本

应用版本,建议使用major.minor.point的方式。

启动命令

启动脚本,表明该应用在运行环境中启动应用服务的脚本命令,用户可以自定义启动脚本。固定为[app-root]/bin/main或[app-root]bin/main.sh

停止命令

停止脚本,表明该应用在运行环境中停止应用服务的脚本命令,用户可以自定义停止脚本。

安装rpm包

在第一次使用时需要安装的rpm包,可以是一个也可以是多个。

支持硬件

应用可以运行需要的硬件平台,可以是CPU|GPU|Ascend中的一个或是多个

执行程序类型及环境依赖

原生native程序及libc版本要求;Python程序,Python版本要求。

资源要求

运行所必须的资源类型及数量,如CPU及其算力、内存及尺寸、存储及空间尺寸等。

app.rpm的打包,用户可以通过使用ModelBox的开发环境,将模型和业务逻辑代码等打包成相应的rpm包;

app.config标明在运行环境中启动业务服务的命令和停止服务的命令,以及业务服务的名字

rpm包中包含用户的业务代码、用户的模型和业务的配置文件

├──{app name}-{version}-{release}.{aarch}.rpm 
│   ├── app.config必选:格式见上表
│   ├── bin  必选:用户自定义的业务代码 
│   │   ├──main.sh 
│   │   ├──main(编译c++程序生成的二进制可执行文件) 
│   │   ├──* 其它二进制/可执行文件
│   ├── lib可选:动态库 
│   ├── data可选:应用层配置参数 
│   ├── model可选:业务的模型
│   ├── etc可选:应用配置文件
│   │   ├──graph 应用流程图
其中{app name}仅支持字母数字和下划线“_”,只能以字母或者下划线开始;{version}仅支持数字和点“.”; {release}仅支持数字; {aarch}仅支持armv7和aarch64。
  • HarmonyOS场景

    暂未发布

  • Android系统场景

    暂未发布

results matching ""

    No results matching ""