轮询模式
文档解决方案结果获取的轮询模式用于获取文档异步检测结果或人工审核结果,客户可以通过轮询调用该接口获取数据。轮询模式与推送模式互斥,只能选取一种模式进行结果获取。
接口说明
该接口返回文档异步检测结果或人工审核结果,需要客户通过该接口进行定时轮询获取,当提交检测接口参数callbackUrl为空时,表示结果通过该接口获取,结果可以根据提交检测时返回的taskId对应。
鉴权说明
易盾内容安全服务使用签名方法对接口进行鉴权,所有接口每一次请求都需要包含签名信息(signature 参数),以验证用户身份,防止信息被恶意篡改。目前支持MD5,SHA1,SHA256,SM3几种加密算法,详细信息,请参见接口鉴权
结果说明
- 获取结果后,下次调用,不会再次返回之前获取过的结果
- 接口一次最多返回200个结果,结果数据默认保留7天,7天不获取会失效
- 接口请求频率应小于10s/20次,过快服务器会拒绝处理,客户可以根据业务需求进行适当调整
接口耗时
结果获取接口的响应很快,正常50ms内返回结果,业务方根据需求适当调整超时时间,建议为1s
历史版本
请求
请求地址
名称 | 值 |
---|---|
HTTP URL | https://as.dun.163.com/v2/file/callback/results |
HTTP Method | POST |
请求头
名称 | 类型 | 描述 |
---|---|---|
Content-Type | String | 固定值:"application/x-www-form-urlencoded" |
请求参数
请求参数由公共参数和业务参数两部分组成
公共参数
公共参数包含密钥信息和参数签名信息,公共参数详细见请求公共参数
业务参数
名称 | 类型 | 是否必填 | 最大长度 | 描述 |
---|---|---|---|---|
version | String | 是 | 4 | 接口版本,当前版本为v2.0 |
yidunRequestId | String | 否 | 64 | 幂等参数说明 |
请求体示例
version=v2&signature=xxx&secretId=xxx&nonce=xxxx&timrstamp=1659673551000
响应
该接口可以返回人工审核结果或异步机器检测结果,两类结果响应字段有一定区分,可根据resultType字段进行区分解析,为了方便阅读,下面响应结果分为:人工审核响应结果以及异步检测相应结果
异步检测结果
响应字段如下,响应公共字段已省略,详细见响应公共字段,resultType为1时表示机器检测结果,详细字段信息如下:
名称 | 类型 | 是否返回 | 描述 |
---|---|---|---|
result | Object[] | 是 | 文档机器审核结果 |
∟ antispam | Object | 是 | 文档内容安全检测结果 |
∟ taskId | String | 是 | 检测任务ID,示例值:"fx6sxdcd89fvbvg4967b4787d78a" |
∟ dataId | String | 否 | 上传数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给客户经理查询 |
∟ suggestion | Number | 是 | 建议动作,0:通过,1:嫌疑,2:不通过 |
∟ resultType | Number | 是 | 结果类型,1:机器结果,2:人审结果 |
∟ failureReason | Number | 否 | 检测失败原因: 1000:文档大小超过上限,1001:文档格式不支持,1002:文档下载失败,1004:文件数超限,2000:文档内容提取失败,2001:文档内容提取超时,2002:内容加密,3000:文档检测失败,3001:文档文本检测失败,3002:文档图片检测失败,3003:检测超时 |
∟ label | Number | 是 | 整体垃圾分类,0:正常,100:色情,200:广告,260:广告法,300:暴恐,400:违禁,500:涉政,600:谩骂,700:灌水,900:其他,1100:涉价值观 |
∟ evidences | Object | 否 | 机审证据信息 |
∟ texts | Object[] | 否 | 文本证据信息 |
∟ taskId | String | 是 | 当前分段检测数据标识 |
∟ sequence | Number | 是 | 当前文本在原始文档中的分段(5000字符/段)序号 |
∟ startText | String | 是 | 每段文本的起始20个字符 |
∟ endText | String | 是 | 每段文本的结尾20个字符 |
∟ suggestion | Nunber | 是 | 建议动作,0:通过,1:嫌疑,2:不通过 |
∟ page | Nunber | 是 | 证据文本所在文档页码,目前仅对pdf格式生效,返回pdf文档对应页码 |
∟ labels | Object[] | 是 | 命中的分类信息 |
∟ label | Nunber | 是 | 命中分类,分类信息,100:色情,200:广告,260:广告法,300:暴恐,400:违禁,500:涉政,600:谩骂,700:灌水,900:其他,1100:涉价值观 |
∟ level | Nunber | 是 | 命中级别,示例值:1:嫌疑,2:不通过 |
∟ subLabels | Object[] | 否 | 细分类信息,可能包含多个,具体数据结构如下 |
∟ subLabel | String | 是 | 细分类,详细编码请参考下方对应细分类编码对照表 |
∟ details | Object | 否 | 命中的详细信息 |
∟ keywords | Object[] | 否 | 命中的敏感词信息 |
∟ word | String | 是 | 敏感词内容 |
∟ libInfos | Object[] | 否 | 命中的自定义库信息 |
∟ type | Number | 是 | 库类型,1:自定义用户名单库,2:自定义ip名单库 |
∟ entity | String | 是 | 自定义库实体 |
∟ hitInfos | Object[] | 否 | 命中的线索信息 |
∟ value | String | 是 | 线索内容 |
∟ positions | Object[] | 是 | 线索位置 |
∟ fieldName | String | 是 | 位置类型,content:正文,title:标题 |
∟ startPos | Number | 是 | 线索开始坐标 |
∟ endPos | Number | 是 | 线索结束坐标 |
∟ images | Object[] | 否 | 图片证据信息 |
∟ taskId | String | 是 | 当前图片检测数据标识 |
∟ sequence | Number | 是 | 当前图片在原始文档中的序号 |
∟ imageUrl | String | 是 | 图片下载地址 |
∟ suggestion | Number | 是 | 分类级别,0:正常,1:不确定,2:确定 |
∟ page | Nunber | 是 | 证据图片所在文档页码,目前仅对pdf格式生效,返回pdf文档对应页码 |
∟ labels | Object[] | 是 | 命中的分类信息 |
∟ label | Nunber | 是 | 分类信息,100:色情,110:性感低俗,200:广告,210:二维码,260:广告法,300:暴恐,400:违禁,500:涉政,800:恶心类,900:其他,1100:涉价值观 |
∟ level | Nunber | 是 | 分类级别,0:正常,1:不确定,2:确定 |
∟ rate | Nunber | 是 | 置信度分数,0-1之间取值,1为置信度最高,0为置信度最低。若level为正常,置信度越大,说明正常的可能性越高。若level为不确定或确定,置信度越大,说明垃圾的可能性越高 |
∟ subLabels | Object[] | 否 | 细分类信息,可能包含多个,具体数据结构如下 |
∟ subLabel | String | 是 | 细分类,细分类编码 对照表 |
∟ rate | Number | 是 | 置信度分数,0-1之间取值,1为置信度最高,0为置信度最低 |
∟ details | Object | 否 | 命中的详细对象信息 |
∟ keywords | Object[] | 否 | 命中的自定义敏感词信息 |
∟ word | string | 是 | 敏感词内容 |
∟ x1 | Number | 否 | 位置信息,对应目标矩形左上角横坐标相对坐标 |
∟ y1 | Number | 否 | 位置信息,对应目标矩形左上角纵坐标相对坐标 |
∟ x2 | Number | 否 | 位置信息,对应目标矩形右下角横坐标相对坐标 |
∟ y2 | Number | 否 | 位置信息,对应目标矩形右下角纵坐标相对坐标 |
∟ libInfos | Object[] | 是 | 命中的自定义图片名单信息 |
∟ entity | String | 是 | 该图片命中自定义图片名单对应原始添加的根源图片url |
∟ hitCount | String | 是 | 历史针对该数据源图片命中所有次数 |
∟ value | String | 否 | 图片中包含的可识别内容 |
∟ group | String | 否 | value对应的分组名称,用于对value的解释 |
∟ hitInfos | Object[] | 是 | 命中的线索信息 |
∟ value | String | 是 | 图片中包含的可识别内容 |
∟ group | String | 否 | value对应的分组名称,用于对value的解释 |
∟ x1 | Number | 否 | 位置信息,对应目标矩形左上角横坐标相对坐标 |
∟ y1 | Number | 否 | 位置信息,对应目标矩形左上角纵坐标相对坐标 |
∟ x2 | Number | 否 | 位置信息,对应目标矩形右下角横坐标相对坐标 |
∟ y2 | Number | 否 | 位置信息,对应目标矩形右下角纵坐标相对坐标 |
∟ anticheat | Object | 否 | 命中的反作弊信息 |
∟ hitType | Number | 是 | 反作弊命中类型,详见hitType返回码及含义表 |
∟ audios | Object[] | 否 | 音频检测结果 |
∟ taskId | String | 是 | 检测任务 ID,示例值:"38e08da8d2574df4bd2eca9b5153df72" |
∟ sequence | Number | 是 | 当前音频在原始文档中的序号 |
∟ audioUrl | String | 是 | 音频Url地址 |
∟ level | Nunber | 是 | 命中级别,示例值:1:嫌疑,2:不通过 |
∟ segments | Object[] | 是 | 音频数据所在断句详细信息 |
∟ startTime | Number | 是 | 断句开始时间点,单位秒 |
∟ endTime | Number | 是 | 断句结束时间点,单位秒 |
∟ type | Number | 是 | 断句类型,0:语音识别,1:声纹检测 |
∟ leaderName | String | 否 | 领导人名,若命中领导人声纹,返回对应的领导人名 |
∟ content | String | 是 | 音频数据所在断句语音识别原文内容,支持返回异常数据所在断句内容或全部原文内容 |
∟ labels | Object[] | 是 | 分类信息 |
∟ label | Number | 是 | 分类信息,分类信息,100:色情,200:广告,260:广告法,300:暴恐,400:违禁,500:涉政,600:谩骂,1100:涉价值观 |
∟ level | Number | 是 | 分类级别,0:通过,1:嫌疑,2:不通过 |
∟ subLabels | Object[] | 否 | 命中细分类信息 |
∟ subLabel | String | 是 | 细分类,详细编码请参考细分类编码对应表 |
∟ details | Object | 是 | 其他信息 |
∟ hitInfos | Object[] | 是 | 证据信息 |
∟ value | String | 是 | 命中的敏感词或者声纹检测的分值 |
∟ songName | String | 否 | 命中的涉政歌曲名称 |
∟ keywords | Object[] | 否 | 自定义敏感词线索分类信息 |
∟ word | String | 是 | 自定义添加敏感词 |
∟ libInfos | Object[] | 否 | 自定义名单线索分类信息 |
∟ listType | Number | 是 | 名单类型 |
∟ entity | String | 是 | 名单内容 |
∟ videos | Object[] | 否 | 视频检测结果 |
∟ taskId | String | 是 | 检测任务 ID,示例值:"38e08da8d2574df4bd2eca9b5153df72" |
∟ status | Number | 是 | 检测状态,2:检测成功,3:检测失败 |
∟ sequence | Number | 是 | 当前视频在原始文档中的序号 |
∟ videoUrl | String | 是 | 视频Url地址 |
∟ level | Nunber | 是 | 命中级别,示例值:1:嫌疑,2:不通过 |
∟ pictures | Object[] | 否 | 截图证据信息 |
∟ type | Number | 是 | 截图类型,1:图片,2:视频 |
∟ url | String | 是 | 截图下载地址 |
∟ startTime | Number | 是 | 证据开始相对时间,单位为毫秒,调用方获取后可自行格式化为可视化时间,如:149000 转换为"00:02:29" |
∟ endTime | Number | 是 | 证据结束相对时间,单位为毫秒,调用方获取后可自行格式化为可视化时间,如:149000 转换为"00:02:29" |
∟ frontPics | Object[] | 否 | 关联信息-命中前截图信息 |
∟ url | String | 是 | 命中前截图下载地址 |
∟ backPics | Object[] | 否 | 关联信息-命中后截图信息 |
∟ url | String | 是 | 命中前截图下载地址 |
∟ labels | Object[] | 是 | 命中的分类信息 |
∟ label | Number | 是 | 分类信息,100:色情,110:性感低俗,200:广告,210:二维码,260:广告法,300:暴恐,400:违禁,500:涉政,800:恶心类,900:其他,1100:涉价值观 |
∟ level | Number | 是 | 分类级别,0:正常,1:不确定,2:确定 |
∟ rate | Number | 是 | 置信度分数,0-1之间取值,1为置信度最高,0为置信度最低。若level为正常,置信度越大,说明正常的可能性越高。若level为不确定或确定,置信度越大,说明垃圾的可能性越高 |
∟ subLabels | Object[] | 是 | 细分类信息,可能包含多个 |
∟ subLabel | String | 是 | 细分类,详细编码请参考下方对应细分类编码 对照表 |
∟ rate | Number | 是 | 置信度分数,0-1之间取值,1为置信度最高,0为置信度最低 |
∟ details | Object | 否 | 命中的详细对象信息 |
∟ keywords | Object[] | 否 | 命中的自定义敏感词信息 |
∟ word | String | 是 | 敏感词内容 |
∟ x1 | Number | 否 | 位置信息,对应目标矩形左上角横坐标相对坐标 |
∟ y1 | Number | 否 | 位置信息,对应目标矩形左上角纵坐标相对坐标 |
∟ x2 | Number | 否 | 位置信息,对应目标矩形右下角横坐标相对坐标 |
∟ y2 | Number | 否 | 位置信息,对应目标矩形右下角纵坐标相对坐标 |
∟ libInfos | Object[] | 是 | 命中的自定义图片名单信息 |
∟ entity | String | 是 | 该图片命中自定义图片名单对应原始添加的根源图片url |
∟ hitCount | Number | 是 | 历史针对该数据源图片命中所有次数 |
∟ value | String | 否 | 图片中包含的可识别内容 |
∟ group | String | 否 | value对应的分组名称,用于对value的解释 |
∟ hintInfos | Object[] | 是 | 命中的线索信息 |
∟ value | String | 是 | 图片中包含的可识别内容 |
∟ group | String | 否 | value对应的分组名称,用于对value的解释 |
∟ x1 | Number | 否 | 位置信息,对应目标矩形左上角横坐标相对坐标 |
∟ y1 | Number | 否 | 位置信息,对应目标矩形左上角纵坐标相对坐标 |
∟ x2 | Number | 否 | 位置信息,对应目标矩形右下角横坐标相对坐标 |
∟ y2 | Number | 否 | 位置信息,对应目标矩形右下角纵坐标相对坐标 |
人工审核响应结果
响应字段如下,响应公共字段已省略,详细见响应公共字段,resultType为2时表示人工审核结果,详细字段信息如下:
名称 | 类型 | 是否返回 | 描述 |
---|---|---|---|
result | Object[] | 是 | 文档人工审核结果 |
∟ antispam | Object | 是 | 文档内容安全检测结果 |
∟ taskId | String | 是 | 检测任务ID,示例值:"fx6sxdcd89fvbvg4967b4787d78a" |
∟ dataId | String | 否 | 上传数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给客户经理查询 |
∟ suggestion | Number | 是 | 建议动作,0:通过,1:嫌疑,2:不通过 |
∟ resultType | Number | 是 | 结果类型,1:机器结果,2:人审结果 |
∟ censorLabels | Object[] | 否 | 审核标签信息 |
∟ code | String | 是 | 标签标识 |
∟ desc | String | 是 | 标签描述 |
∟ customCode | String | 是 | 自定义标签code |
∟ name | String | 是 | 审核标签名称 |
∟ reviewEvidences | Object | 否 | 人审证据信息 |
∟ reason | String | 否 | 原因 |
∟ remark | String | 否 | 备注 |
∟ detail | Object | 否 | 详情 |
∟ text | Object[] | 否 | 文本证据信息 |
∟ text | String | 否 | 文本证据 |
∟ reason | String | 否 | 文本判定原因 |
∟ image | Object[] | 否 | 图片证据信息 |
∟ url | String | 否 | 图片url地址 |
∟ reason | String | 否 | 图片判定原因 |
∟ audios | object[] | 否 | 音频证据信息 |
∟ url | String | 否 | 音频证据地址 |
∟ originUrl | String | 否 | 音频原始地址 |
∟ startTime | String | 否 | 断句开始时间点,单位秒 |
∟ endTime | String | 否 | 断句结束时间点,单位秒 |
∟ reason | String | 否 | 音频判定原因 |
∟ videos | object[] | 否 | 音视频证据信息 |
∟ url | String | 否 | 视频截图地址 |
∟ hitId | String | 是 | taskId值 |
∟ audios | object[] | 是 | 音频证据信息 |
∟ url | String | 是 | 音频断句url地址 |
∟ startTime | String | 否 | 音频断句开始时间点,单位秒 |
∟ endTime | String | 否 | 音频断句结束时间点,单位秒 |
∟ reason | String | 否 | 音频判定原因 |
∟ videos | object[] | 否 | 视频证据信息 |
∟ url | String | 是 | 视频截图地址 |
∟ startTime | String | 否 | 视频截图开始时间点,单位秒 |
∟ endTime | String | 否 | 视频截图结束时间点,单位秒 |
∟ reason | String | 否 | 视频判定原因 |
∟ censorSource | Number | 是 | 审核来源,0:易盾人审,1:客户审核,2:易盾机审,3:用户质检,4:易盾质检 |
∟ censorRound | Number | 否 | 审核轮数,普通审核审核轮数为0,高级审核:1-第1轮人审,2-第2轮人审,以此类推,saas人工审核模板配置请参考人工审核模板设置说明文档 |
∟ censorTime | Number | 是 | 审核时间 |
响应示例
异步检测结果响应示例
{
"code": 200,
"msg": "ok",
"result": [
{
"antispam": {
"dataId": "1631624661543",
"taskId": "9183116cf3e6445aa1fe62596689785d",
"resultType": 1,
"suggestion": 0,
"evidences": {
"texts": [
{
"taskId": "80594e188cb1476faf7e9af0d5674cea",
"sequence": 0,
"startText": "哈哈",
"endText": "嗯嗯",
"suggestion": 0,
"labels": [],
"page": 2
},
{
"taskId": "658b05b4d17b49b9a68bead9780cd80a",
"sequence": 1,
"startText": "n",
"endText": "n",
"suggestion": 0,
"labels": [
{
"label": 500,
"level": 2,
"subLabels": [
{
"subLabel": "500013",
"details": {
"hitInfos": [
{
"positions": [
{
"fieldName": "content",
"startPos": 388,
"endPos": 391
}
],
"value": "xxx"
}
]
}
}
]
}
],
"page": 3
}
],
"images": [
{
"taskId": "57a2ecf017b94f4592b5f82659e40e0b",
"sequence": 0,
"imageUrl": "https://iamge-url",
"suggestion": 0,
"labels": [
{
"label": 500,
"level": 0,
"rate": 1.0
},
{
"label": 300,
"level": 0,
"rate": 1.0,
"labels": [
{
"label": 400,
"level": 1,
"rate": 0.9804,
"subLabels": [
{
"subLabel": "40009",
"rate": 0.9643,
"details": {
"hitInfos": [
{
"value": "fire",
"group": "违禁"
}
]
}
},
{
"subLabel": "40010",
"rate": 0.9964,
"details": {
"hitInfos": [
{
"value": "skull",
"group": "违禁"
}
]
}
}
]
}
]
},
{
"label": 100,
"level": 0,
"rate": 0.9999
},
{
"label": 400,
"level": 0,
"rate": 1.0
},
{
"label": 200,
"level": 0,
"rate": 1.0
}
],
"page": 3
}
]
}
}
}
]
}
人工审核结果响应示例
{
"code":200,
"msg":"ok",
"result":[
{
"antispam":{
"dataId":"1631625592988",
"taskId":"a20f4815fb624f0ba9b02463f5715cb9",
"reviewEvidences":{
"remark":"",
"detail":{
"text":[
{
"text":"xxxx",
"reason":"好"
}
],
"image":[
{
"url":"https://immage-url",
"reason":"图片标注"
}
]
}
},
"censorLabels":[
{
"code":"1600762076926",
"customCode":"自定义标签编码",
"name":"审核标签名称",
"desc":""
},
{
"code":"1600759147543",
"customCode":"自定义标签编码",
"name":"审核标签名称",
"desc":""
}
],
"censorTime":1631625622490,
"resultType":2,
"censorSource":1,
"censorRound":0,
"suggestion":0,
"evidences":{
}
}
}
]
}
接入示例代码
开发工具集(SDK)接入
为方便 JAVA 开发者调试和接入API,我们提供了配套的开发工具集(SDK),用于简化API接入流程。SDK中各接口调用方式基本相同,接入方式统一,并提供了一些接口调用过程中常见的异常处理方案。以下介绍了SDK的使用流程,以及使用SDK的简单示例。
- 准备工作
准备步骤详见通用步骤
- 使用方法
该接口的使用方法可参考SDK demo
API接入
如果您选择非SDK接入,使用API方式接入,请参考各开发语言汇总示例代码
该接口的使用方法具体示例如下: