添加chatbot/cartoonize/openpose/face/yolo/wenet等推理服务示例

This commit is contained in:
pengluan 2022-07-17 18:38:49 +08:00
parent 25c9ab5811
commit 2ec63b8ebb
4 changed files with 143 additions and 4 deletions

View File

@ -53,7 +53,7 @@ def init():
project_user.user_id=1
db.session.add(project_user)
db.session.commit()
print('add project %s'%name)
except Exception as e:
db.session.rollback()
@ -96,6 +96,7 @@ def init():
images.repository_id=repository_id
db.session.add(images)
db.session.commit()
print('add images %s' % image_name)
except Exception as e:
db.session.rollback()
@ -121,6 +122,7 @@ def init():
job_template.args=json.dumps(job_template_args,indent=4,ensure_ascii=False) if job_template_args else '{}'
db.session.add(job_template)
db.session.commit()
print('add job_template %s' % job_template_name.replace('_','-'))
except Exception as e:
db.session.rollback()
else:
@ -138,6 +140,7 @@ def init():
job_template.env = job_template_env
job_template.args = json.dumps(job_template_args, indent=4,ensure_ascii=False) if job_template_args else '{}'
db.session.commit()
print('update job_template %s' % job_template_name.replace('_', '-'))
except Exception as e:
db.session.rollback()
@ -159,6 +162,7 @@ def init():
repository.changed_by_fk=1
db.session.add(repository)
db.session.commit()
print('add repository hubsecret')
except Exception as e:
db.session.rollback()
@ -174,7 +178,7 @@ def init():
# 添加demo 服务
def create_service(project_name,service_name,service_describe,image_name,command,env,resource_mem='2G',resource_cpu='2',ports='80'):
def create_service(project_name,service_name,service_describe,image_name,command,env,resource_mem='2G',resource_cpu='2',ports='80',volume_mount='kubeflow-user-workspace(pvc):/mnt'):
service = db.session.query(Service).filter_by(name=service_name).first()
project = db.session.query(Project).filter_by(name=project_name).filter_by(type='org').first()
if service is None and project:
@ -189,8 +193,10 @@ def init():
service.command = command
service.env='\n'.join([x.strip() for x in env.split('\n') if x.split()])
service.ports = ports
service.volume_mount=volume_mount
db.session.add(service)
db.session.commit()
print('add service %s'%service_name)
except Exception as e:
db.session.rollback()
@ -205,6 +211,46 @@ def init():
# 添加 demo 推理 服务
def create_inference(project_name,service_name,service_describe,image_name,command,env,model_name,model_version='',model_path='',service_type='serving',resource_memory='2G',resource_cpu='2',resource_gpu='0',ports='80',volume_mount='kubeflow-user-workspace(pvc):/mnt'):
service = db.session.query(InferenceService).filter_by(name=service_name).first()
project = db.session.query(Project).filter_by(name=project_name).filter_by(type='org').first()
if service is None and project:
try:
service = InferenceService()
service.name = service_name.replace('_','-')
service.label=service_describe
service.service_type=service_type,
service.model_name=model_name,
service.model_version=model_version if model_version else datetime.now().strftime('v%Y.%m.%d.1'),
service.model_path = model_path,
service.created_by_fk=1
service.changed_by_fk=1
service.project_id=project.id
service.images=image_name
service.resource_memory=resource_memory,
service.resource_cpu=resource_cpu,
service.resource_gpu = resource_gpu,
service.command = command
service.env='\n'.join([x.strip() for x in env.split('\n') if x.split()])
service.ports = ports
service.volume_mount=volume_mount
service.expand = "{}"
db.session.add(service)
db.session.commit()
print('add inference %s' % service_name)
except Exception as e:
db.session.rollback()
try:
inferences = json.load(open('myapp/init-inference.json',mode='r'))
for inference_name in inferences:
inference = inferences[inference_name]
create_inference(**inference)
except Exception as e:
print(e)
# 创建demo pipeline
def create_pipeline(tasks,pipeline):
@ -232,6 +278,7 @@ def init():
pipeline_model.parameter = json.dumps(pipeline.get('parameter',{}))
db.session.add(pipeline_model)
db.session.commit()
print('add pipeline %s' % pipeline['name'])
except Exception as e:
db.session.rollback()
else:
@ -241,6 +288,7 @@ def init():
pipeline_model.changed_by_fk = 1
pipeline_model.project_id = org_project.id
pipeline_model.parameter = json.dumps(pipeline.get('parameter', {}))
print('update pipeline %s' % pipeline['name'])
db.session.commit()
@ -264,6 +312,7 @@ def init():
task_model.job_template_id = job_template.id
db.session.add(task_model)
db.session.commit()
print('add task %s' % task['name'])
except Exception as e:
db.session.rollback()
else:
@ -280,6 +329,7 @@ def init():
task_model.changed_by_fk = 1
task_model.pipeline_id = pipeline_model.id
task_model.job_template_id = job_template.id
print('update task %s' % task['name'])
db.session.commit()
# 修正pipeline

77
myapp/init-inference.json Normal file
View File

@ -0,0 +1,77 @@
{
"wenet": {
"project_name":"public",
"service_name":"serving-wenet-20220701",
"service_describe":"语音识别",
"model_name": "wenet",
"model_version": "v2022.07.01",
"image_name":"ccr.ccs.tencentyun.com/cube-studio/wenet-mini:latest",
"command":"",
"resource_memory": "5G",
"env":"",
"ports":"80,10086"
},
"yolo": {
"project_name":"public",
"service_name":"serving-yolo-darknet-20220701",
"service_describe":"多目标识别",
"model_name": "yolo-darknet",
"model_version": "v2022.07.01",
"image_name":"ccr.ccs.tencentyun.com/cube-studio/target-detection",
"command":"",
"resource_memory": "5G",
"env":"",
"ports":"8080"
},
"face": {
"project_name":"public",
"service_name":"serving-face-20220701",
"service_describe":"人脸检测",
"model_name": "face",
"model_version": "v2022.07.01",
"image_name":"ccr.ccs.tencentyun.com/cube-studio/face:20220701",
"command":"",
"resource_memory": "5G",
"env":"",
"ports":"8080"
},
"openpose": {
"project_name":"public",
"service_name":"serving-openpose-20220701",
"service_describe":"人体检测",
"model_name": "openpose",
"model_version": "v2022.07.01",
"image_name":"ccr.ccs.tencentyun.com/cube-studio/openpose:gpu",
"command":"gunicorn --bind 0.0.0.0:8080 --workers 3 --timeout 300 server:app",
"resource_memory": "5G",
"resource_gpu": "1",
"env":"MODEL_POSE=COCO\nNET_RESOLUTION=64x64\nRENDER_POSE=-1\nPERIOD=100\nGPU=true",
"ports":"8080"
},
"cartoonize": {
"project_name":"public",
"service_name":"serving-cartoonize-20220701",
"service_describe":"卡通化",
"model_name": "cartoonize",
"model_version": "v2022.07.01",
"image_name":"ccr.ccs.tencentyun.com/cube-studio/cartoonize:latest",
"command":"",
"resource_memory": "5G",
"env":"",
"ports":"8080"
},
"chatbot": {
"project_name":"public",
"service_name":"serving-chatbot-20220701",
"service_describe":"聊天机器人",
"model_name": "chatbot",
"model_version": "v2022.07.01",
"image_name":"ccr.ccs.tencentyun.com/cube-studio/chatbot:base",
"command":"python /app/app.py",
"resource_memory": "5G",
"env":"",
"ports":"8080"
}
}

View File

@ -33,7 +33,9 @@
"image_name":"ccr.ccs.tencentyun.com/cube-studio/neo4j:4.4",
"command":"",
"env":"NEO4J_AUTH=neo4j/admin",
"ports":"7474,7687"
"ports":"7474,7687",
"volume_mount":"kubeflow-user-workspace(pvc):/mnt,/data/k8s/kubeflow/pipeline/workspace/admin/neo4j(hostpath):/var/lib/neo4j/data"
},
"jaeger": {
"project_name":"public",
@ -43,5 +45,15 @@
"command":"",
"env":"",
"ports":"5775,16686"
},
"label-studio": {
"project_name":"public",
"service_name":"label-studio",
"service_describe":"标注平台",
"image_name":"heartexlabs/label-studio:latest",
"command":"",
"env":"LOCAL_FILES_SERVING_ENABLED=true",
"ports":"8080",
"volume_mount":"kubeflow-user-workspace(pvc):/mnt,/data/k8s/kubeflow/pipeline/workspace/admin/label-studio(hostpath):/label-studio/data"
}
}

View File

@ -182,7 +182,7 @@ class InferenceService(Model,AuditMixinNullable,MyappModelBase,service_common):
resource_gpu= Column(String(100), default='0')
deploy_time = Column(String(100), nullable=True,default=datetime.datetime.now)
host = Column(String(200), default='') # 挂载
expand = Column(Text(65536), default='')
expand = Column(Text(65536), default='{}')
canary = Column(String(400), default='') # 分流
shadow = Column(String(400), default='') # 镜像