解码器开发
解码器包含加载器、深度学习计算模块、及适配两者的中间件。其中加载器由平台处下载获取,中间件及计算模块由AI能力开发者进行开发
开发流程
开发包获取:
- 通过AI引擎托管平台对应工具包下载页,依据不同系统及开发语言,下载对应版本的加载器开发包
中间件开发:
开发者根据中间件接口文档及AI能力自身的交互属性,选择对应的中间件接口进行开发。其中[1]必须实现,[2]/[3]实现其一
[1] 通用接口:wrapperInit/wrapperFini/wrapperError
[2] 流式交互接口集合(如实时语音流识别),对应服务接口类型为WebSocket:wrapperCreate/wrapperWrite/wrapperRead/wrapperDestroy
[3] 单次交互接口集合(如图像识别),对应服务接口类型为http:
wrapperExec/wrapperExecFree
中间件构建:
- 构建输出产物libwrapper.so,共计12个接口符号均导出可见
解码器运行:
创建解码器运行目录:/example
将加载器开发包中内容拷贝至解码器目录:cp -r ./ailoader/* /example/
将libwrapper.so拷贝至解码器目录,保证libwrapper.so与加载器主程序(AIservice)处于同一目录:cp ./libwrapper.so /example/
创建配置文件local.toml,配置section为[wrapper],编辑中间件初始化接口所需传入的配置对,其中key及value均为string类型,如下:
[wrapper]
“key1” = "value1"
"key2" = "value2"
使用解码器运行目录中的start.sh脚本启动解码器
解码器测试:
- 通过AI引擎托管平台工具包下载页,下载解码器测试工具,参考测试文档进行测试验证
解码器打包:
- 测试通过后,将解码器目录进行压缩打包:tar zcvf example.tar.gz ./example (注:不包含模型部分)
- 通过AI引擎托管平台对应上传工具,将解码器包上传至S3云存储空间
使用开发包中通用测试工具,通过接口文档输入进行测试验证
验证成功后将整体运行环境进行打包,上传至S3云存储空间