文本批量检测

接口地址

http://as.dun.163.com/v3/text/batch-check

接口描述

批量文本检测接口当前设计为检测前会统一对所有的文本参数做合法性校验,校验失败则此次提交失败,参数校验通过后,批量文本检测,最终每个文本会有对应的检测结果(该结果是业务性的错误,如文本检测超时、服务异常等),调用方可以根据dataId获取到每个文本的检测结果,所以批量接口中各个内容的dataId不能重复,否则调用方无确定对应文本的检测结果,目前接口侧没有做校验,需要调用方自己保证,为了保证通用性,接口数据返回顺序和提交顺序保持一致。

文本限制

单次批量提交 1-100条,每条 < 5000字符

请求参数

公共参数已省略,详细见 请求公共参数,其他参数如下:

基本参数

参数名称数据类型是否必填取值范围描述
versionStringYv3.1接口版本号,可选值 v3.1
textsString(json数组)Y1-100条文本数据json格式对象数组

texts结构如下:

参数名称数据类型是否必填取值范围描述
dataIdStringY128数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给客户经理查询
contentStringY2^24-1用户发表内容,建议对内容中JSON、表情符、HTML标签、UBB标签等做过滤,只传递纯文本,以减少误判概率。请注意为了检测效果和性能,如果该字段长度超过5000字符,会截取前面5000字符进行检测和存储。该字段不能为空,如果为空会返回参数错误。
titleStringN512内容标题,适用于贴子、博客的文章标题等场景,建议抄送,辅助机审策略精准调优
dataTypeIntegerN4子数据类型,与易盾内容安全服务约定即可
callbackStringN2^16-1数据回调参数,调用方根据业务情况自行设计,当调用文本离线结果获取接口时,该接口会原样返回该字段,详细见文本离线检测结果获取。作为数据处理标识,因此该字段应该设计为能唯一定位到该次请求的数据结构,如对用户的昵称进行检测,dataId可设为用户标识(用户ID),用户修改多次,每次请求数据的dataId可能一致,但是callback参数可以设计成定位该次请求的数据结构,比如callback字段设计成json,包含dataId和请求的时间戳等信息,当然如果不想做区分,也可以直接把callback设置成dataId的值
publishTimeLongN13用户发表时间,UNIX 时间戳(毫秒值)
callbackUrlStringN256人工审核结果回调通知到客户的URL。主动回调数据接口超时时间设置为2s,为了保证顺利接收数据,需保证接收接口性能稳定并且保证幂等性
checkLabelsStringN512String数组,可指定多个垃圾类别进行机器检测,多个垃圾类别以逗号分隔("100,200")

业务扩展参数

参数名称数据类型是否必填取值范围描述
ipStringN32用户IP地址
accountStringN128用户唯一标识,如果无需登录则为空
nicknameStringN128用户昵称,建议抄送,辅助机审策略精准调优
deviceTypeIntegerN4用户设备类型,1:web, 2:wap, 3:android, 4:iphone, 5:ipad, 6:pc, 7:wp
deviceIdStringN128用户设备 id
extStr1StringN128自定义扩展参数
extStr2StringN128自定义扩展参数
extLon1LongN2^63-1自定义扩展参数
extLon2LongN2^63-1自定义扩展参数

响应结果

响应字段如下,响应通用字段已省略,详细见响应通用字段

result 数据结构:

参数名称数据类型是否必填描述
resultListY返回具体的检测结果数据

TextBatchCheckResult数据结构如下:

参数名称数据类型描述
dataIdString数据唯一标识,能够根据该值定位到该条数据
taskIdString本次请求数据标识,可以根据该标识查询数据最新结果
statusInteger文本检测状态码,定义为:0:检测成功,1:检测失败
censonrTypeNumber审核模式,0:纯机审,1:机审+部分人审,2:机审+全量人审
actionInteger检测结果,0:通过,1:嫌疑,2:不通过
labelsjson数组分类信息

labels数据结构如下:

参数名称数据类型描述
labelInteger分类信息,100:色情,200:广告,260:广告法,400:违禁,500:涉政,600:谩骂,700:灌水,900:其他
levelInteger分类级别,1:不确定,2:确定
detailsjson对象其他信息
subLabelsList二级细分类

subLabels数据结构如下:

参数名称数据类型描述
subLabelString细分类,详细编码请参考下方对应细分类编码对照表

自定义细分类

易盾支持subLabel自定义细分类过检并返回,如有需求,可联系您的专属安全策略经理添加。

details数据结构如下:

参数名称数据类型描述
hintjson数组线索信息,用于定位文本中有问题的部分,辅助人工审核
hitInfosList命中信息(目前只返回命中用户自定义的)

HitInfo数据结构如下:

参数名称数据类型描述
hitTypeInteger命中类型

请求示例

Request: {
    "businessId": "30e92b6c84c274abf01e949729077034",
    "nonce": 478525692,
    "secretId": "deec28356fe8596d18fa8364a8cfbfd0",
    "timestamp": " 1546925205000",
    "version": "v3.1",
    "signature": "294407a232cc7d417d70e4f785eb7377",
    "texts": [{
        "dataId": "123",
        "content": "文本检测",
        "dataType": 1,
        "ip": "127.0.0.1",
        "account": "baijw",
        "deviceType": 1,
        "deviceId": "yneeeooooo-xl",
        "callback": "124",
        "publishTime": 1546925205001
    },{
        "dataId": "456",
        "content": "文本检测2",
        "dataType": 2,
        "ip": "127.0.0.1",
        "account": "baijw",
        "deviceType": 1,
        "deviceId": "yneeeooooo-xl2",
        "callback": "456",
        "publishTime": 1546925205001
    }]
}

响应示例

Response: {
  "code": 200,
	"msg": "ok",
	"result": [
        {
            "dataId": "123",
            "taskId": "079560a6c9f34783bdce47e168510038",
            "status": 0,
            "action": 2,
            "labels": [{
                "label": 100,
                "level": 2,
                "details": {
                    "hint": [
                        "xxx","ooo"
                    ],
                    "hitInfos": [{
                        "hitType": 10
                    }]
                },
                "subLabels": [{
                    "subLabel": "21000"
                }]
            }]
        }, {
            "dataId": "456",
            "taskId": "079560a6c9f34783bdce47e168510066",
            "status": 0,
            "action": 1,
            "labels": [{
                "label": 200,
                "level": 2,
                "details": {
                    "hint": [
                        "xxx","ooo"
                    ],
                    "hitInfos": [{
                        "hitType": 10
                    }]
                },
                "subLabels": [{
                    "subLabel": "21000"
                }]
            }]      
        }
    ]
}