批量同步检测

2024.01.31 10:16:45

    易盾内容安全文本批量同步检测接口可以根据发布的多条内容、发布者、ip、设备等信息来检测是否为需拦截内容。当前设计为检测前会统一对所有的文本参数做合法性校验,校验失败则此次提交失败,参数校验通过后,批量文本检测,最终每个文本会有对应的检测结果,可以根据dataId获取到每个文本的检测结果,所以批量接口中各个内容的dataId不能重复,否则调用方无确定对应文本的检测结果

    接口说明

    该接口批量同步返回文本检测结果,建议http协议接口调用,该接口返回的文本结果状态分以下三种:

    • 不通过:表示是确认内容非法,产品可对数据做删除隐藏处理
    • 嫌疑:表示该内容疑似非法,需内容安全云服务离线检测模块进一步确认处理,确认结果需产品自行定期调用文本结果获取接口-轮询模式文本结果获取接口-推送模式获取,产品对嫌疑数据可以做特殊策略处理,如本人可见等
    • 通过:表示云安全内容安全云服务实时内容安全引擎未识别为非法内容,产品对该类数据可以直接放过,发表成功。云安全内容安全云服务离线检测模块也会对这些数据做进一步分析处理,分析结果需产品自行定期调用文本结果获取接口-轮询模式文本结果获取接口-推送模式获取

    鉴权说明

    易盾内容安全服务使用签名方法对接口进行鉴权,所有接口每一次请求都需要包含签名信息(signature 参数),以验证用户身份,防止信息被恶意篡改。目前支持MD5,SHA1,SHA256,SM3几种加密算法,详细信息,请参见接口鉴权

    文本要求

    • 文本限制:单次批量提交1-100条,单条≤1万字符,字段长度超过1万字符,需要您自行截取前面1万字符再进行检测和存储

    检测耗时

    文本检测接口的响应时间依赖文本的长度和批量提交的数量,根据不同提交数量和文本长度建议适当调整接口超时时间,建议1-10s

    历史版本

    v4版本同步批量检测接口文档请点此查看

    请求

    请求地址

    名称
    HTTP URL http://as.dun.163.com/v5/text/batch-check
    HTTP Method POST

    请求头

    名称 类型 描述
    Content-Type String 固定值:"application/x-www-form-urlencoded"

    请求参数

    请求参数由公共参数和业务参数两部分组成

    公共参数

    公共参数包含密钥信息和参数签名信息,公共参数详细见请求公共参数

    业务参数

    名称 类型 是否必填 最大长度 描述
    version String 4 接口版本号,可选值v5.3
    checkLabels String 512 业务自定义过检分类,请谨慎写入,并与策略经理充分沟通,以免引起漏判,如果没有勾选分类提交返回参数错误,您可指定多个垃圾类别进行机器检测,多个垃圾类别以逗号分隔("100,200"),指定后业务配置过检分类即失效,过检分类列表,100:色情,200:广告,260:广告法,300:暴恐,400:违禁,500:涉政,600:谩骂,700:灌水,900:其他,1100:涉价值观
    texts String 1-100条文本数据 文本数据,json格式对象数组
     ∟ dataId String 128 上传数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给策略经理查询
     ∟ content String 10000 用户发表内容,建议对内容中json、表情符、HTML标签、UBB标签等做过滤,只传递纯文本,以减少误判概率。不能为空,如果为空会返回参数错误。
     ∟ title String 512 内容标题,适用于帖子、博客的文章标题等场景,建议抄送,辅助机审策略精准调优
     ∟ dataType Number 4 子数据类型,用于区分过滤标注完全一致的不同模块数据,与易盾内容安全服务约定即可
     ∟ callback String 2^16-1 数据回调参数,调用方根据业务情况自行设计,当调用文本结果获取接口-轮询模式文本结果获取接口-推送模式时,该接口会原样返回该字段,详细见文本离线检测结果获取。作为数据处理标识,因此该字段应该设计为能唯一定位到该次请求的数据结构,如对用户的昵称进行检测,dataId可设为用户标识(用户ID),用户修改多次,每次请求数据的dataId可能一致,但是callback参数可以设计成定位该次请求的数据结构,比如callback字段设计成json,包含dataId和请求的时间戳等信息,当然如果不想做区分,也可以直接把callback设置成dataId的值
     ∟ publishTime Number 13 发表时间,UNIX 时间戳(毫秒值)
     ∟ callbackUrl String 256 人工审核结果回调通知到客户的URL。主动回调数据接口超时时间设置为2s,为了保证顺利接收数据,需保证接收接口性能稳定并且保证幂等性
     ∟ censorExt String 1024 人审标签扩展字段,可传入任意标签内容,用于在人审模板(审核模板配置请参考人工审核模板高级配置)时指定数据并配置特殊审核逻辑。一次传入支持多个标签,标签间使用英文逗号","隔开,不支持大写英文字母,请全部使用小写
     ∟ category String 128 来源,用于展示渠道名称,应用名称等
     ∟ subProduct String 32 业务结算id(自定义),业务方传入参数,用于资源账单统计,如需开启请联系易盾策略经理。开启之后资源账单按套餐结算sheet增加subProduct维度的数据请求量、检测量、消耗金额的统计
     ∟riskControlToken String 15000 来自易盾智能风控SDK返回的token,接入SDK必传,接入流程请参考智能风控融合版说明文档 ,建议客户端获取token后30分钟内及时提交检测。
     ∟riskControlBusinessId String 256 调用易盾智能风控getToken时使用智能风控业务id,接入流程请参考智能风控融合版说明文档
     ∟业务扩展参数字段 与具体字段类型一致 256 建议您将发布内容的用户信息、设备信息、场景信息同步传入,易盾将结合用户风险画像、设备风险画像、场景化策略全方位检测内容风险,检测结果更精准。请参见业务扩展参数
    token String 256 内容安全与反作弊融合版专属字段,来自易盾反作弊SDK返回的token,接入SDK必传,请联系您的专属策略经理获取相关开发文档

    请求体示例

    version=v5.2&texts="[{dataId:123,content:nihao}]"&signature=xxx&secretId=xxx&businessId=xxx&timestamp=1646984669446&nonce=12353
    

    响应

    响应结果

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

    名称 类型 是否返回 描述
    result Object[] 文本回调结果
     ∟ antispam Object 文本内容安全检测结果
      ∟ taskId String 易盾侧机审数据唯一标识,能够根据该值定位到该条数据,如对检测结果有异议,可以发送该值给策略经理查询
      ∟ dataId String 上传数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给策略经理查询
      ∟ suggestion Number 建议动作,0:通过,1:嫌疑,2:不通过
      ∟ customAction Number 自定义动作,0:通过,2:不通过。customAction字段用于saas审核系统-机审标准集中的自定义调度功能,将易盾机器检测嫌疑结果通过配置映射为业务自己的自定义动作,可参考图片流程:https://nos.netease.com/yidun/bceb8815e1f50c2339899976e9a2ec28.png
      ∟ suggestionLevel Number 嫌疑级别,针对部分定制策略支持命中嫌疑时返回,1:低嫌疑,2:高嫌疑,对通用策略、模型结果暂不支持,v5.2版本新增,默认不返回,如果需要返回请联系策略经理配置
      ∟ resultType Number 结果类型,1:机器结果,2:人审结果
      ∟ censorType Number 审核模式,0:纯机审,1:机审+部分人审,2:机审+全量人审
      ∟ strategyVersions Object[] 策略版本号,策略更新时该参数会更新,可用于追溯策略调优效果
       ∟ label Number 示例值:100,分类信息,100:色情,200:广告,260:广告法,300:暴恐,400:违禁,500:涉政,600:谩骂,700:灌水,900:其他,1100:涉价值观
       ∟ version String 版本号
      ∟ isRelatedHit Boolean 是否命中关联检测,true:关联检测命中,false:原文命中
      ∟ filteredContent String 过滤后文本内容,当命中信息中包含敏感词时,将敏感词内容用*代替后返回,*号数量与敏感词字数相同;若未命中敏感词,则不返回
      ∟ mergeHints String[]
      ∟ labels Object[] 命中的分类信息,检测通过情况labels默认返回为空
       ∟ label Number 命中分类,分类信息,100:色情,200:广告,260:广告法,300:暴恐,400:违禁,500:涉政,600:谩骂,700:灌水,900:其他,1100:涉价值观
       ∟ rate Number 置信度分数,0-1之间取值,1为置信度最高,0为置信度最低
       ∟ level Number 命中级别,示例值:1:嫌疑,2:不通过,0:正常,特殊策略下可返回“level=0”的数据,如果需要返回可以找策略经理配置
       ∟ subLabels Object[] 细分类信息,可能包含多个
        ∟ subLabel String 末级标签,可能是二级或三级,层级见subLabelDepth,详细编码请参考标签对照表,请定期通过标签接口获取最新的标签信息,避免遗漏新标签风险
        ∟ subLabelDepth Number 末级标签的标签层级,目前支持的层级:2,3
        ∟ secondLabel String 命中二级标签细分类
        ∟ thirdLabel String 命中三级标签细分类
        ∟ rate Number 置信度分数,0-1之间取值,1为置信度最高,0为置信度最低
        ∟ details Object 命中的详细信息
         ∟ keywords Object[] 命中的敏感词信息
          ∟ word String 自定义敏感词内容
         ∟ libInfos Object[] 命中的自定义库信息
          ∟ type Number 库类型,1:自定义用户名单库,2:自定义ip名单库
          ∟ entity String 自定义用户名单信息,自定义ip名单信息
          ∟ releaseTime Number 名单解封时间,时间戳单位毫秒
         ∟ anticheat Object 命中的反作弊信息
          ∟ hitType Number 反作弊命中类型,详见hitType返回码及含义表
         ∟ rules Object[] 命中用户自定义的规则信息
          ∟ name String 规则名
         ∟ hitInfos Object[] 命中的线索信息
          ∟ value String 线索内容
          ∟ positions Object[] 线索位置,数据起始位置为0,如果返回线索信息中包含emoij表情,一般emoij表情占2位
           ∟ fieldName String 位置类型,content:正文,title:标题
           ∟ startPos Number 线索开始坐标
           ∟ endPos Number 线索结束坐标
     ∟ emotionAnalysis Object 文本情感分析检测结果,如有需要请联系您的专属商务,未开通状态下不返回
      ∟ taskId String 易盾侧机审数据唯一标识,能够根据该值定位到该条数据,如对检测结果有异议,可以发送该值给策略经理查询
      ∟ dataId String 上传数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给策略经理查询
      ∟ details Object[] 命中的详细信息
       ∟ positiveProb Number 正向情绪倾向,取值0-1,分数越高,正向情绪越高
       ∟ negativeProb Number 负向情绪倾向,取值0-1,分数越高,负向情绪越高
       ∟ sentiment String 情感类型,negative(负向情绪),neutral(中性情绪),positive(正向情绪),unknown(未知)
     ∟ anticheat Object 文本反作弊检测结果,如有需要请联系您的专属商务,未开通状态下不返回
      ∟ taskId String 易盾侧机审数据唯一标识,能够根据该值定位到该条数据,如对检测结果有异议,可以发送该值给策略经理查询
      ∟ dataId String 上传数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给策略经理查询
      ∟ details Object[] 命中的详细信息
       ∟ suggestion Number 检测结果,0:通过,10:嫌疑,20:不通过
       ∟ hitInfos Object[] 命中信息
        ∟ hitType Number 反作弊命中类型,详见hitType返回码及含义表
        ∟ hitMsg String 反作弊命中详情,可定制返回值
     ∟ userRisk Object 文本用户画像检测结果,如有需要请联系您的专属商务,未开通状态下不返回
      ∟ taskId String 易盾侧机审数据唯一标识,能够根据该值定位到该条数据,如对检测结果有异议,可以发送该值给策略经理查询
      ∟ dataId String 上传数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给策略经理查询
      ∟ account String 账号信息
      ∟ details Object[] 命中的详细信息
       ∟riskType String yin_liu_hei_chan(引流黑产),qi_zha_xian_yi(欺诈嫌疑),she_jiao_la_ren(社交拉人)
       ∟riskLevel Number 账号等级,0:低风险,1:中风险,2:高风险
       ∟riskScore String 风险分值:0-1
     ∟ language Object 文本语种检测结果,如有需要请联系您的专属商务,未开通状态下不返回
      ∟ taskId String 易盾侧机审数据唯一标识,能够根据该值定位到该条数据,如对检测结果有异议,可以发送该值给策略经理查询
      ∟ dataId String 上传数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给策略经理查询
      ∟ details Object[] 命中的详细信息
       ∟ type String 语种代码详见,语种代码表
     ∟ riskControl Object 智能风控检测结果,如有需要请联系您的专属商务,未开通状态下不返回
      ∟ taskId String 易盾侧机审数据唯一标识,能够根据该值定位到该条数据,如对检测结果有异议,可以发送该值给策略经理查询
      ∟ dataId String 上传数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给策略经理查询
      ∟ details Object[] 智能风控命中详情
       ∟ riskLevel Number 风险等级:0 正常,1 低风险,2 中风险,3 高风险,4 可信源。 风险等级只会返回一个,取本次命中的最高风险等级
       ∟ hitInfos Object[] 备注
        ∟ type String 命中的风险标签编号
        ∟ name String 命中的风险标签对应的名称,命中的标签的上下级名称采用‘-’进行拼接
     ∟ aigcPrompt Object aigc提示分析结果,如有需要请联系您的专属商务,未开通状态下不返回
      ∟ taskId String 易盾侧机审数据唯一标识,能够根据该值定位到该条数据,如对检测结果有异议,可以发送该值给策略经理查询
      ∟ dataId String 上传数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给策略经理查询
      ∟ details Object[] aigc提示分析详情
       ∟ type Number prompt分类的枚举值,1, "需拦截" 2, "需正向引导" 3, "准确回答" 4, "需拦截/正向引导" 5, "正常问题"
       ∟ answer String 回答

    响应体示例

    {
        "code":200,
        "msg":"ok",
        "result":[
            {
                "antispam":{
                    "taskId":"fx6sxdcd89fvbvg4967b4787d78a",
                    "dataId":"dataId",
                    "suggestion":2,
                    "customAction":2,
                    "resultType":1,
                    "censorType":0,
                    "strategyVersions":[
                        {
                            "label":100,
                            "version":"v1.0"
                        }
                    ],
                    "isRelatedHit":false,
                    "labels":[
                        {
                            "label":100,
                            "rate":1,
                            "level":1,
                            "subLabels":[
                                {
                                    "subLabel":"100001",
                                    "details":{
                                        "keywords":[
                                            {
                                                "word":"xxx"
                                            }
                                        ],
                                        "libInfos":[
                                            {
                                                "type":1,
                                                "entity":"xxx"
                                            }
                                        ],
                                        "anticheat":{
                                            "hitType":5
                                        },
                                        "hitInfos":[
                                            {
                                                "value":"xxx",
                                                "positions":[
                                                    {
                                                        "fieldName":"title",
                                                        "startPos":0,
                                                        "endPos":1
                                                    }
                                                ]
                                            }
                                        ]
                                    }
                                }
                            ]
                        }
                    ]
                },
                "emotionAnalysis":{
                    "taskId":"fx6sxdcd89fvbvg4967b4787d78a",
                    "dataId":"dataId",
                    "details":[
                        {
                            "positiveProb":0.5,
                            "negativeProb":0,
                            "sentiment":"positive"
                        }
                    ]
                },
                "anticheat":{
                    "taskId":"fx6sxdcd89fvbvg4967b4787d78a",
                    "dataId":"dataId",
                    "details":[
                        {
                            "suggestion":20,
                            "hitInfos":[
                                {
                                    "hitType":5,
                                    "hitMsg":"无SDK数据"
                                }
                            ]
                        }
                    ]
                },
                "userRisk":{
                    "taskId":"hfy5g22yezojhvd8t8kb66qg00309r8q",
                    "name":"test",
                    "dataId":"dataIdvalue",
                    "account":"123456",
                    "details":[
                        {
                            "riskType":"qi_zha_xian_yi",
                            "riskLevel":1,
                            "riskScore":0.6
                        },
                        {
                            "riskType":"yin_liu_hei_chan",
                            "riskLevel":2,
                            "riskScore":0.4
                        }
                    ]
                },
                "language":{
                    "taskId":"fx6sxdcd89fvbvg4967b4787d78a",
                    "dataId":"dataId",
                    "details":[
                        {
                            "type":"zh"
                        }
                    ]
                }
            }
        ]
    }
    

    响应返回码

    响应返回码见:响应返回码

    接入示例代码

    开发工具集(SDK)接入

    为方便开发者调试和接入API,我们提供了配套的开发工具集(SDK),用于简化API接入流程。SDK中各接口调用方式基本相同,接入方式统一,并提供了一些接口调用过程中常见的异常处理方案。以下介绍了SDK的使用流程,以及使用SDK的简单示例。

    • 准备工作

    准备步骤详见通用步骤

    • 使用方法

    该接口的使用方法可参考以下SDK demo:
    Github地址
    Java SDK demo
    Golang SDK demo
    Gitee地址(Github无法访问时选择)
    Java SDK demo
    Golang SDK demo

    API接入

    如果您选择非SDK接入,使用API方式接入,请参考各开发语言汇总示例代码

    该接口的使用方法具体示例如下:

    • Github地址

    PHP示例代码
    Python示例代码
    Golang示例代码
    Node.js示例代码
    C#示例代码
    Java示例代码

    • Gitee地址(Github无法访问时选择)

    PHP示例代码
    Python示例代码
    Golang示例代码
    Node.js示例代码
    C#示例代码
    Java示例代码

    Online Chat Tel:95163223 Free trial