subsys-aiframework-tech-codemanage.md 2.0 KB
Newer Older
D
duangavin123 已提交
1
# 代码管理规范
N
NEEN 已提交
2 3 4 5 6


AI引擎框架包含client、server和common三个主要模块,其中client提供server端连接管理功能,北向SDK在算法对外接口中需封装调用client提供的公共接口;server提供插件加载以及任务管理等功能,各Plugin实现由server提供的插件接口,完成插件接入;common提供与平台相关的操作方法、引擎协议以及相关工具类,供其他各模块调用。


D
duangavin123 已提交
7
AI引擎框架各模块之间的代码依赖关系如下图所示:
N
NEEN 已提交
8 9


D
duangavin123 已提交
10
  **图1** AI引擎代码依赖关系
N
NEEN 已提交
11

D
duangavin123 已提交
12
  ![zh-cn_image_0000001151931738](figures/zh-cn_image_0000001151931738.jpg)
N
NEEN 已提交
13 14


D
duangavin123 已提交
15
## 建议:插件与北向SDK在AI引擎指定的路径下进行代码开发
N
NEEN 已提交
16

D
duangavin123 已提交
17
在AI引擎框架的整体规划中,北向SDK属于client端的一部分,插件由server端调用,属于server端的一部分,因此AI引擎框架为接入的插件与北向SDK规划的路径:
N
NEEN 已提交
18

D
duangavin123 已提交
19
- SDK代码路径://foundation/ai/engine/services/client/algorithm_sdk
20 21
  
  示例1://foundation/ai/engine/services/client/algorithm_sdk/cv
N
NEEN 已提交
22

23
  示例2://foundation/ai/engine/services/client/algorithm_sdk/nlu
N
NEEN 已提交
24

D
duangavin123 已提交
25
- 插件代码路径://foundation/ai/engine/services/server/plugin
26 27
  
  示例1://foundation/ai/engine/services/server/plugin/cv
N
NEEN 已提交
28

29
  示例2://foundation/ai/engine/services/server/plugin/nlu
N
NEEN 已提交
30 31


D
duangavin123 已提交
32
## 规则:插件提供的全部对外接口,统一存放在AI业务子系统interfaces/kits目录
N
NEEN 已提交
33 34 35 36

北向SDK对外接口是AI业务子系统提供能力的对外暴露方式,按照OpenHarmony的接口管理要求,需统一存放在各子系统的interfaces/kits目录中。当前AI业务子系统插件对外接口路径为//foundation/ai/engine/interfaces/kits,不同插件可在该路径下添加目录,比如增加cv插件,则在路径//foundation/ai/engine/interfaces/kits/cv下面存放接口文件。


D
duangavin123 已提交
37
## 规则:插件编译输出路径必须是在/usr/lib
N
NEEN 已提交
38

D
duangavin123 已提交
39
server端加载插件是采用dlopen方式,只支持在/usr/lib路径进行,因此插件在编译so时,需要在编译配置文件中指定输出路径为/usr/lib。