mirror of
https://github.com/ColugoMum/Smart_container.git
synced 2025-06-03 21:54:04 +08:00
163 lines
4.3 KiB
Markdown
163 lines
4.3 KiB
Markdown
|
# 项目部署流程
|
|||
|
|
|||
|
## 服务端部署
|
|||
|
|
|||
|
1. 获取项目代码并安装依赖包
|
|||
|
|
|||
|
```shell
|
|||
|
git clone https://git.openi.org.cn/ColugoMum/Smart_container.git
|
|||
|
cd ./Smart_container
|
|||
|
pip install -r requirements.txt
|
|||
|
```
|
|||
|
|
|||
|
2. 导入数据库并修改数据库信息
|
|||
|
|
|||
|
导入 `./Smart_container/container.sql` 数据库
|
|||
|
|
|||
|
修改 `./Smart_container/djangoProject/settings.py` 数据库信息
|
|||
|
|
|||
|
```shell
|
|||
|
DATABASES = {
|
|||
|
'default': {
|
|||
|
'ENGINE': 'django.db.backends.mysql', # 要连接的 数据库类型
|
|||
|
'HOST': 'localhost', # 要连接的远程数据库的 ip地址
|
|||
|
'PORT': '3306', # 数据库连接端口,mysql默认3306
|
|||
|
'USER': 'SM_C', # 数据库已有用户名`,需要更改
|
|||
|
'PASSWORD': 'XXXXX', # 数据库已有用户密码,需要更改
|
|||
|
'NAME': 'container', # 要连接的 数据库名
|
|||
|
}
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
3. 启动Django框架
|
|||
|
|
|||
|
在终端执行此命令:
|
|||
|
|
|||
|
```shell
|
|||
|
cd ./Smart_container
|
|||
|
python manage.py runserver 0.0.0.0:8001
|
|||
|
```
|
|||
|
|
|||
|
## 模型服务化部署
|
|||
|
|
|||
|
1. 进入到工作目录
|
|||
|
|
|||
|
```shell
|
|||
|
cd ./Smart_container/PaddleClas/deploy/paddleserving/recognition
|
|||
|
```
|
|||
|
|
|||
|
2. 修改配置文件`config.yml`路径(**建议写成绝对路径**)
|
|||
|
|
|||
|
```
|
|||
|
op:
|
|||
|
rec:
|
|||
|
···
|
|||
|
#uci模型路径
|
|||
|
model_config: /你的项目路径/PaddleClas/deploy/inference_PPLCNet_serving
|
|||
|
|
|||
|
#计算硬件类型: 空缺时由devices决定(CPU/GPU),0=cpu, 1=gpu, 2=tensorRT, 3=arm cpu, 4=kunlun xpu
|
|||
|
device_type: 1
|
|||
|
|
|||
|
#计算硬件ID,当devices为""或不写时为CPU预测;当devices为"0", "0,1,2"时为GPU预测,表示使用的GPU卡
|
|||
|
devices: "0" # "0,1"
|
|||
|
|
|||
|
#client类型,包括brpc, grpc和local_predictor.local_predictor不启动Serving服务,进程内预测
|
|||
|
client_type: local_predictor
|
|||
|
|
|||
|
#Fetch结果列表,以client_config中fetch_var的alias_name为准
|
|||
|
fetch_list: ["features"]
|
|||
|
det:
|
|||
|
concurrency: 1
|
|||
|
local_service_conf:
|
|||
|
client_type: local_predictor
|
|||
|
device_type: 1
|
|||
|
devices: '0'
|
|||
|
fetch_list:
|
|||
|
- save_infer_model/scale_0.tmp_1
|
|||
|
model_config: /你的项目路径/PaddleClas/deploy/picodet_PPLCNet_x2_5_mainbody_lite_v1.0_serving
|
|||
|
```
|
|||
|
|
|||
|
3. 修改启动服务脚本`recognition_web_service.py` 这里主要修改服务所需的检索库地址(**建议写成绝对路径**)
|
|||
|
|
|||
|
```shell
|
|||
|
···
|
|||
|
index_dir = "/你的项目路径/dataset/index_update"
|
|||
|
|
|||
|
assert os.path.exists(os.path.join(
|
|||
|
index_dir, "vector.index")), "vector.index not found ..."
|
|||
|
assert os.path.exists(os.path.join(
|
|||
|
index_dir, "id_map.pkl")), "id_map.pkl not found ... "
|
|||
|
···
|
|||
|
```
|
|||
|
|
|||
|
|
|||
|
4. 启动/停止服务
|
|||
|
|
|||
|
* 进入到工作目录
|
|||
|
|
|||
|
```shell
|
|||
|
cd ./Smart_container/PaddleClas/deploy/paddleserving/recognition
|
|||
|
```
|
|||
|
|
|||
|
* 启动服务
|
|||
|
在终端执行此命令:
|
|||
|
|
|||
|
```python
|
|||
|
python recognition_web_service.py &>log.txt &
|
|||
|
```
|
|||
|
|
|||
|
启动服务后, 运行日志保存在 log.txt可查看是否正常运行.
|
|||
|
|
|||
|
* 停止服务
|
|||
|
在终端执行此命令:
|
|||
|
|
|||
|
```python
|
|||
|
python -m paddle_serving_server.serve stop
|
|||
|
```
|
|||
|
|
|||
|
## 客户端运行
|
|||
|
|
|||
|
进入client文件夹内, 执行以下代码即可运行:
|
|||
|
|
|||
|
```shell
|
|||
|
python client.py
|
|||
|
```
|
|||
|
|
|||
|
注: Linux下运行需要修改client.py文件, 注释掉win32相关代码
|
|||
|
|
|||
|
修改self.rate = (w, h)
|
|||
|
|
|||
|
```
|
|||
|
class Ui_MainWindow(QtWidgets.QWidget):
|
|||
|
|
|||
|
def __init__(self):
|
|||
|
# hDC = win32gui.GetDC(0)
|
|||
|
# # 横向分辨率
|
|||
|
# w = win32print.GetDeviceCaps(hDC, win32con.DESKTOPHORZRES)
|
|||
|
# # 纵向分辨率
|
|||
|
# h = win32print.GetDeviceCaps(hDC, win32con.DESKTOPVERTRES)
|
|||
|
|
|||
|
self.rate = (800,500)
|
|||
|
if self.rate != 1 and self.rate != 1.25 and self.rate != 1.5 and self.rate != 1.75 :
|
|||
|
self.rate = 1
|
|||
|
super(Ui_MainWindow, self).__init__()
|
|||
|
|
|||
|
```
|
|||
|
|
|||
|
修改请求地址
|
|||
|
res=requests.post('http://127.0.0.1:8001/reference_client/', data=req)
|
|||
|
|
|||
|
## 小程序端运行
|
|||
|
|
|||
|
打开微信开发者工具, 导入系统文件夹下AIContainer文件夹并运行, 即可运行小程序端.
|
|||
|
|
|||
|
需要修改Smart_container/AIContainer/miniprogram/app.js
|
|||
|
改为自己IP地址方可正常请求后台.
|
|||
|
|
|||
|
小程序商品图片显示问题修改
|
|||
|
|
|||
|
pages/main/revisepage/revise.js
|
|||
|
pages/main/main/revise.wxml
|
|||
|
|
|||
|
注: 上传商品前数据表t_container只留一条数据, 如果全部清空数据上传商品时会报错.
|