资讯 社区 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

调用API

本文档主要说明定制化模型本地部署后,如何使用本地API。如还未训练模型,请先前往EasyDL 文本分类-单标签 进行训练。

如有疑问可以通过以下方式联系我们:

  • 在百度云控制台内提交工单
  • 进入EasyDL社区交流 ,与其他开发者进行互动
  • 加入EasyDL官方QQ群(群号:868826008)联系群管

部署包使用说明

部署方法

EasyDL定制化文本分类模型的本地部署通过EasyPack实现,目前提供单机一键部署的方式。

在EasyDL申请、下载部署包后,在本地服务器新建目录(建议目录命名规则:easyDL_服务名称_模型版本号), 将软件包上传至该目录。请参考EasyPack-单机一键部署 使用python2 版本来部署,部署成功后,启动服务,即可调用与在线API功能类似的接口。

运维检查

EasyDL服务器API部署应用健康检查(或故障排查)脚本:trouble_shooting.tar

脚本能力:鉴权服务健康检测、容器状态检查、端口探活、网络联通性测试、容器关键报错日志输出等

使用方法: 将脚本上传至服务器任意目录(或在服务器直接下载),并解压后运行。

# 解压
tar vxf trouble_shooting.tar
# 执行
bash trouble_shooting.sh

授权说明

本地部署包根据服务器硬件(CPU单机或GPU单卡)进行授权,只能在申请时提交的硬件指纹所属的硬件上使用。

部署包测试期为1个月,如需购买永久授权,可提交工单咨询

API参考

请求说明

请求示例

HTTP 方法:POST

请求URL:请首先在EasyDL进行自定义模型训练,完成训练后申请本地部署,本地部署成功后拼接url。

请求URL: http://{IP}:{PORT}/{DEPLOY_NAME}/TextClassification

  • IP:服务本地部署所在机器的ip地址
  • PORT:服务部署后获取的端口
  • DEPLOY_NAME:申请时填写的本地服务名称

Header如下:

参数
Content-Type application/json

Body请求示例:

{
    "text": "<UTF-8编码数据>",
    "top_num": 5
}

Body中放置请求参数,参数详情如下:

请求参数

参数 是否必选 类型 可选值范围 说明
text string - 文本数据,UTF-8编码。最大长度4096汉字
top_num number - 返回分类数量,默认为6个

返回说明

返回参数

字段 是否必选 类型 说明
log_id number 唯一的log id,用于问题定位
results array(object) 分类结果数组
+name string 分类名称
+score number 置信度

错误码

若请求错误,服务器将返回的JSON文本包含以下参数:

  • error_code:错误码。
  • error_msg:错误描述信息,帮助理解和解决发生的错误。

例如缺少必要出入参时返回:

{
  "error_code": 336001,
  "error_msg": "Invalid Argument"
}
错误码 错误信息 描述
336000 Internal error 服务器内部错误,请再次请求, 如果持续出现此类错误,请通过QQ群(868826008)或工单联系技术支持团队
336001 Invalid Argument 入参格式有误,比如缺少必要参数、文本的编码UTF-8等问题。有疑问请通过QQ群(868826008)或工单联系技术支持团队
336002 JSON不合法 入参格式或调用方式有误,比如缺少必要参数代码格式是否有误。有疑问请通过QQ群(868826008)或工单联系技术支持团队
336003 Base64解码失败 图片/音频/文本格式有误或base64编码有误,请根据接口文档检查格式,base64编码请求时注意要去掉头部。有疑问请通过QQ群(868826008)或工单联系技术支持团队
336004 输入文件大小不合法 文本大小不合法,目前支持文本文件类型为支持txt,文本文件大小限制长度最大1024 UTF-8字符。有疑问请通过QQ群(868826008)或工单联系技术支持团队
336005 解码失败 文本编码错误(不是utf-8),目前支持文本文件类型为支持txt。如果遇到请重试,如反复失败,请在百度云控制台内提交工单反馈
336006 缺失必要参数 未上传文本文件
336100 model temporarily unavailable 遇到该错误码请等待1分钟后再次请求,可恢复正常,若反复重试依然报错或有疑问请通过QQ群(868826008)或工单联系技术支持团队
337000 Auth check failed 离线鉴权调用失败

模型更新/回滚操作说明

模型更新

1、在EasyDL-纯离线服务发布页面,找到您的服务器API发布记录,点击【更新版本】,选择「更新包」或「完整包」来发布。 两者区别:

包类型 描述
更新包 仅包含最新的模型应用,需执行download.sh脚本下载所需镜像等依赖文件
完整包 包含模型应用和其他鉴权服务,需执行download.sh脚本下载所需完整依赖文件

2、(CPU模型可忽略)如果您训练的模型为GPU版本,系统会生成多份下载链接。请在GPU服务器执行 nvidia-smi命令,根据返回的Cuda Version来选择对应的部署包链接下载。

3、在服务器新建目录(建议标记对应模型的版本号,便于区分不同模型版本),如easydl_${DEPLOY_NAME}_v2

${DEPLOY_NAME} :申请时填写的服务名称

以如下场景举例说明:模型版本从V1升级至V2

##### 1.新模型准备
# 创建指定版本的目录
mkdir easedl_${DEPLOY_NAME}_v2
cd easedl_${DEPLOY_NAME}_v2
# 将部署包上传至服务器该目录并解压
tar zvxf xx.tar.gz
# 解压后,进入指定目录执行download脚本下载模型所依赖文件
cd original && bash download.sh 
##### 2.旧模型备份
# 历史模型备份
cp -r /home/baidu/work/${DEPLOY_NAME}  /home/baidu/work/${DEPLOY_NAME}_V1
# 记录当前模型的端口号
docker ps -a |grep ${DEPLOY_NAME} 
##### 3.模型升级
cd package/Install
# 卸载当前已安装的旧的easyDL服务:${DEPLOY_NAME} ,前面已备份
python2 install.py remove ${DEPLOY_NAME} 
# 安装当前部署包内新的EasyDL服务:${DEPLOY_NAME} 
python2 install.py install ${DEPLOY_NAME} 
# (可选操作) 更新证书
python2 install.py lu

模型回滚

以如下场景举例说明:模型版本从V2回滚至V1

方法一:

## 重命名当前v2模型目录名称
mv /home/baidu/work/${DEPLOY_NAME}  /home/baidu/work/${DEPLOY_NAME}_V2
# 使用V1版本
cp -r /home/baidu/work/${DEPLOY_NAME}_V1 /home/baidu/work/${DEPLOY_NAME}
# 停止当前模型容器
docker ps -a |grep ${DEPLOY_NAME}
docker rm -f ${容器名}
# 创建新的容器
cd /home/baidu/work/${DEPLOY_NAME} && bash start/start-1.sh 
# (可选操作)进入V1版本部署包所在目录执行license更新操作,假如部署包在/opt目录下,以您实际目录为准
cd /opt/easydl_${DEPLOY_NAME}_V1/original/package/Install && python2 install.py lu 

方法二:

进入模型V1所在目录,参考上述【模型更新】步骤,执行模型升级操作(即先卸载v2,后升级为v1)

上一篇
发布API
下一篇
发布API