# cloud-client-ai-service-framework **Repository Path**: openkylin/cloud-client-ai-service-framework ## Basic Information - **Project Name**: cloud-client-ai-service-framework - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: openkylin/yangtze - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2022-09-19 - **Last Updated**: 2025-12-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # cloud-client-ai-service-framework #### 介绍 Intel Cloud-Client AI Service Framework (CCAI),是Intel开发的云客户端AI服务框架。它具有与开发传统云应用程序相同的开发模式。和本地客户端平台相比具有低延迟、良好隐私性的优点。本sig组的工作主要是解决Intel的CCAI对openkylin的适配工作。 #### 需求描述 完成CCAI对openkylin的适配,并将CCAI按照deb的方式打包,实现CCAI的快速简便安装。 #### 实现方案 在openkylin中编译通过CCAI,提取编译过程中导入的docker镜像导出并保存为.img文件,将编译生成的CCAI文件和导出的docker镜像放入源码目录中,编写debian目录中的脚本,使可以在安装deb过程中将文件放入目标位置和导入docker镜像,使用debuild命令构建deb包。 #### 编译方法 一、CCAI源码编译过程: CCAI是Intel Cloud-Client AI Service Framework,本文介绍CCAI的编译过程以及deb包的构建过程。 CCAI官方源码链接:https://github.com/intel/cloud-client-ai-service-framework CCAI官方说明文档链接:https://intel.github.io/cloud-client-ai-service-framework/ 执行命令git clone 命令下载本仓库的源码,按照README.md中的步骤进行编译。 1、官方写的需要操作系统为Ubuntu 20.04,经过验证也可以使用优麒麟20.04来编译。编译后的文件可以在openkylin、优麒麟20.04、优麒麟22.04中正常运行,openkylin中目前缺少部分安装依赖后续需要满足。也可以在openkylin中进行编译。 2、CCAI的编译过程依赖于openvino,可以通过以下链接下载: https://www.intel.com/content/www/us/en/developer/tools/openvino-toolkit/download-previous-versions.html?operatingsystem=linux&distributions=webdownload&version=2021%204%20LTS&options=offline 版本选择2021 4 LTS offline右侧点击下载。 也可使用以下链接直接下载:https://registrationcenter-download.intel.com/akdlm/IRC_NAS/18319/l_openvino_toolkit_p_2021.4.752.tgz 解压下载的文件后,进入l_openvino_toolkit_p_的目录,执行命令:sudo ./install_GUI.sh 开始有界面的安装。安装过程可以参考https://blog.csdn.net/weixin_44613415/article/details/126499661 如果安装openvino后启动报错,可以使用ubuntu 20.04系统安装openvino,之后把/opt/intel/目录拷贝到openkylin中的/opt/目录即可。 3、执行以下命令来安装编译过程需要的包( 这里可能需要更换成ubuntu20.04的源,换源方法可参考https://blog.csdn.net/u011458874/article/details/120708716): sudo apt update sudo apt install git build-essential docker.io wget cmake python3-pip unzip \         libfcgi-dev libcurl4-openssl-dev libssl-dev libpam0g-dev \         libgrpc-dev libgrpc++-dev libprotobuf-dev protobuf-compiler protobuf-compiler-grpc \         python3-dev \         libpci-dev pciutils  libjson-c-dev libsqlite3-dev \         curl gpg-agent software-properties-common curl https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | sudo apt-key add - echo "deb https://apt.repos.intel.com/openvino/2022 `. /etc/os-release && echo ${UBUNTU_CODENAME}` main" | sudo tee /etc/apt/sources.list.d/intel-openvino-2022.list sudo apt update sudo apt install openvino-libraries-dev-2022.1.0 openvino-samples-2022.1.0 intel-dlstreamer-dev sudo /opt/intel/openvino_2022/install_dependencies/install_NEO_OCL_driver.sh sudo /opt/intel/dlstreamer/install_dependencies/install_media_driver.sh sudo python3 -m pip install --upgrade pip sudo python3 -m pip install pytest grpcio-tools kconfiglib torch torchvision paddlepaddle paddle2onnx sudo python3 -m pip install openvino-dev[caffe,kaldi,mxnet,onnx,pytorch,tensorflow,tensorflow2]==2022.1.0 git clone https://github.com/pybind/pybind11 cd pybind11 && git checkout -b tmp f31df73 mkdir build && cd build && cmake .. sudo make -j$(nproc --all) install wget  https://download.pytorch.org/libtorch/cpu/libtorch-cxx11-abi-shared-with-deps-1.11.0%2Bcpu.zip unzip libtorch-cxx11-abi-shared-with-deps-1.11.0+cpu.zip sudo cp -r libtorch/ /opt/ && rm -rf libtorch* wget -c https://github.com/microsoft/onnxruntime/releases/download/v1.7.0/onnxruntime-linux-x64-1.7.0.tgz tar -zxvf onnxruntime-linux-x64-1.7.0.tgz sudo mv onnxruntime-linux-x64-1.7.0 /opt/onnxruntime wget https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-cpu-linux-x86_64-2.8.0.tar.gz sudo mkdir -p /opt/tensorflow sudo tar -C /opt/tensorflow -zxvf libtensorflow-cpu-linux-x86_64-2.8.0.tar.gz rm -f libtensorflow-cpu-linux-x86_64-2.8.0.tar.gz wget  https://paddle-inference-lib.bj.bcebos.com/2.3.0/cxx_c/Linux/CPU/gcc5.4_openblas/paddle_inference.tgz tar -zxvf paddle_inference.tgz sudo mv paddle_inference/ /opt/ 这样就安装完成了编译过程需要的包。 4、接下来就可以执行以下命令来编译CCAI了: cd container/script/integration_workdir make defconfig make base_image make inference_engine_image make image 执行以上命令过程中,可能由于网络问题而编译失败,需要重新执行该命令,多次执行,直到编译成功之后再执行下一条命令。 5、下载模型 (如果您已经执行了get_models.sh,所有模型都应该缓存在文件夹get_models_cache中, 你可以执行 get_models.sh -i 来只安装模型到正确的目录中。)执行以下命令来下载CCAI的模型: cd container/script/integration_workdir ../get_models.sh 6、执行以下命令来启动CCAI。 cd container/script/integration_workdir/service_runtime/ ./service_runtime.sh start 如果看到 + start_service_runtime ++ container_status +++ docker inspect -f '{{.State.Running}}' service_runtime_container ++ running=true ++ case $running in ++ echo running + test running = running + return 0 + exit 0 即为编译和运行成功。到这里就完成了CCAI的编译。 提示:如果电脑中显卡是amd的显卡,执行时可能会报错“收集设备信息失败”。此时需要修改脚本service_runtime.sh。 执行命令:sudo pluma /opt/intel/service_runtime/service_runtime.sh 删除其中" --device /dev/dri \ " 这句。之后即可正常启动ccai 二、将CCAI编成deb的过程 1、创建文件夹:mkdir ccai-1.2.0 将编译生成的service_runtime/目录,拷贝到创建的文件夹ccai-1.2.0/中。 2、从本仓库中下载编写好的debian目录,将它放在文件夹ccai-1.2.0/中。 在CCAI的debian目录中做了以下操作:(1)编写install文件安装时把编译生成的service_runtime/目录放在/opt/intel/路径下。(2)编写install文件安装时把编译生成的service_runtime/debian/service-runtime.service和service_runtime/debian/service-runtime-health-monitor.service放在/lib/systemd/system/路径下。(3)编写postinst 文件安装时将docker镜像service_runtime.img导入,img镜像的获取方法见3。(4)编写postrm文件卸载时删除docker镜像。(5)编写control文件来设置编译依赖和安装依赖(6)编写changelog。 3、编译过程中导入了运行CCAI需要的docker镜像,通过以下过程将docker镜像导出: 使用命令:sudo docker images 查看目前的所有docker镜像。 将其中的service_runtime导出为.img: sudo docker save -o service_runtime.img 607ee173ab3d (后面是id号,前面是导出的名字) 把导出的service_runtime.img放在ccai-1.2.0/service_runtime/中 4、在ccai-1.2.0/目录下执行:debuild,开始编译ccai的deb包。(需要满足编译依赖) 编译后生成 ccai_1.2.0_amd64.deb。 #### 安装方法和启动方法 一、ccai安装方法: 首先执行命令:dpkg -l | grep docker.io 保证系统中安装了docker.io 之后在下载好deb的目录执行命令:sudo dpkg -i ccai_1.2.0_amd64.deb 可能会提示缺少依赖,执行命令:sudo apt --fix-broken install 安装完成之后,执行命令:dpkg -l | grep ccai 查看是否安装成功。 (openkylin源中目前缺少部分依赖包) 二、ccai启动方法: 1、单次启动: 在/opt/intel/service_runtime/目录中执行 sudo ./service_runtime.sh start 如果看到 service_runtime started 或 + start_service_runtime ++ container_status +++ docker inspect -f '{{.State.Running}}' service_runtime_container ++ running=true ++ case $running in ++ echo running + test running = running + return 0 + exit 0 即为单次启动成功。 提示:如果电脑中显卡是amd的显卡,执行时可能会报错“收集设备信息失败”。此时需要修改脚本service_runtime.sh。 执行命令:sudo pluma /opt/intel/service_runtime/service_runtime.sh 删除其中" --device /dev/dri \ " 这句。之后即可正常启动ccai 2、一直启动: (1)启动命令: sudo systemctl start service-runtime (2)查看启动状态: sudo docker ps NAMES中有service_runtime_container即为启动成功 (3)停止: sudo systemctl stop service-runtime #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)