轮询模式

2023.09.28 10:42:28

    内容安全文本异步检测或人工审核的结果,客户可以通过轮询调用该接口获取数据,轮询模式与推送模式互斥,只能选取一种模式进行结果获取

    接口说明

    该接口返回文本经过人工审核的结果或者文本异步机器检测结果,需要客户通过该接口进行定时轮询获取,当提交检测接口参数callbackUrl为空时,表示结果通过该接口获取,结果可以根据提交检测时返回的taskId对应

    鉴权说明

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

    结果说明

    • 获取结果后,下次调用,不会再次返回之前获取过的结果
    • 接口一次最多返回200个结果,人工审核结果数据默认保留7天,7天不获取会失效,异步检测结果默认保留4小时,超过4小时不获取会失效
    • 接口请求频率建议1s一次,过快服务器会拒绝处理,客户可以根据业务需求进行适当调整
    • 异步检测一般10s内会检测完成,异步机器检测结果建议尽快获取

    接口耗时

    结果获取接口的响应很快,正常50ms内返回结果,业务方根据需求适当调整超时时间,建议为1s

    历史版本

    v4版本轮询模式文档请点此查看

    请求

    请求地址

    名称
    HTTP URL http://as.dun.163.com/v5/text/callback/results
    HTTP Method POST

    请求头

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

    请求参数

    请求参数

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

    公共参数

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

    业务参数

    名称 类型 是否必填 最大长度 描述
    version String 4 接口版本号,可选值v5.2
    yidunRequestId String 64 幂等参数说明

    请求体示例

    version=v5.2&signature=xxx&secretId=xxx&businessId=xxx&timestamp=1677207014000&nonce=1234
    

    响应

    该接口可以返回人工审核结果或异步机器检测结果,两类结果响应字段有一定区分,可根据resultType字段进行区分解析,为了方便阅读,下面响应结果分为:人工审核响应结果以及异步检测响应结果

    人工审核响应结果

    响应字段如下,响应通用字段已省略,详细见响应公共字段,resultType为2时表示人工审核结果,详细字段信息如下:

    名称 类型 是否返回 描述
    result Object[] 文本回调结果
     ∟ antispam Object 文本内容安全检测结果
      ∟ taskId String 检测任务ID,示例值:"fx6sxdcd89fvbvg4967b4787d78a"
      ∟ dataId String 上传数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给客户经理查询
      ∟ suggestion Number 建议动作,0:通过,2:不通过
      ∟ remark String 人审备注信息
      ∟ resultType Number 结果类型,1:机器结果,2:人审结果
      ∟ censorType Number 审核模式,0:纯机审,1:机审+部分人审,2:机审+全量人审
      ∟ callback String 产品调用文本同步检测文本批量同步检测传递的callback字段数据。
      ∟ censorLabels Object[] 审核标签信息
       ∟ code String 审核标签唯一编号
       ∟ desc String 选择标签填写的备注内容
       ∟ customCode String 自定义审核标签编号
       ∟ name String 审核标签的名称
      ∟ censorSource Number 审核来源,0:易盾人审,1:客户审核,2:易盾机审,3:用户质检,4:易盾质检
      ∟ censorRound Number 审核轮数,普通审核轮数为0,高级审核:1-第1轮人审,2-第2轮人审,以此类推,saas人工审核模板配置请参考人工审核模板设置说明文档。若您使用易盾人工审核服务,非必要情况下不要对该字段做解析依赖。人审团队为了您的审核质量,会自发的在某些高风险时段进行多轮审核来保证交付质量,所以该字段可能会在不通知到您的情况下变化,感谢您的配合,有任何问题可以随时联系我们
      ∟ censorTime Number 审核时间
      ∟ labels Object[] 命中的分类信息
       ∟ label Number 命中分类,分类信息,100:色情,200:广告,260:广告法,300:暴恐,400:违禁,500:涉政,600:谩骂,700:灌水,900:其他,1100:涉价值观
       ∟ level Number 命中级别,示例值:1:嫌疑,2:不通过,0:正常,特殊策略下可返回“level=0”的数据,如果需要返回可以找策略经理配置
       ∟ subLabels Object[] 细分类信息,可能包含多个
        ∟ subLabel Number 细分类,详细编码请参考下方对应细分类编码对照表

    人工审核响应体示例

    {
        "code":200,
        "msg":"ok",
        "result":[
            {
                "antispam":{
                    "taskId":"wet2h1hhoba8qbik9f3orljg00123rdh",
                    "dataId":"1185546433254492160",
                    "suggestion":2,
                    "remark":"人审备注内容,填写备注才会返回",
                    "resultType":2,
                    "callback":"",
                    "censorType":0,
                    "censorSource":1,
                    "censorRound":0,
                    "censorTime":1639374062208,
                    "censorLabels":[
                        {
                            "code":"1604386821661",
                            "customCode":"自定义标签编码",
                            "name":"审核标签名称",
                            "desc":""
                        },
                        {
                            "code":"1604386813202",
                            "customCode":"自定义标签编码",
                            "name":"审核标签名称",
                            "desc":""
                        }
                    ],
                    "isRelatedHit":false,
                    "labels":[
                        {
                            "label":100,
                            "level":2,
                            "subLabels":[
                                {
                                    "subLabel":"100001"
                                }
                            ]
                        }
                    ]
                }
            }
        ]
    }
    

    异步检测响应结果

    响应字段如下,响应通用字段已省略,详细见响应公共字段,resultType为1时表示异步机器检测结果,详细字段信息如下:

    名称 类型 是否返回 描述
    result Object[] 文本回调结果
     ∟ antispam Object 文本内容安全检测结果
      ∟ taskId String 检测任务ID,示例值:"fx6sxdcd89fvbvg4967b4787d78a"
      ∟ dataId String 上传数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给客户经理查询
      ∟ suggestion Number 建议动作,0:通过,1:嫌疑,2:不通过
      ∟ suggestionLevel Number 嫌疑级别,针对部分定制策略支持命中嫌疑时返回,1:低嫌疑,2:高嫌疑,对通用策略、模型结果暂不支持,v5.2版本新增,默认不返回,如果需要返回请联系运营经理配置
      ∟ resultType Number 结果类型,1:机器结果,2:人审结果
      ∟ censorType Number 审核模式,0:纯机审,1:机审+部分人审,2:机审+全量人审
      ∟ callback String 产品调用文本异步检测文本批量异步检测传递的callback字段数据。
      ∟ strategyVersions Object[] 策略版本号,策略更新时该参数会更新,可用于追溯策略调优效果
       ∟ label Number 分类信息,100:色情,200:广告,260:广告法,300:暴恐,400:违禁,500:涉政,600:谩骂,700:灌水,900:其他,1100:涉价值观
       ∟ version String 版本号
      ∟ isRelatedHit Boolean 是否命中关联检测,true:关联检测命中,false:原文命中
      ∟ 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 细分类,详细编码请参考下方对应细分类编码对照表
        ∟ details Object 命中的详细信息
         ∟ keywords Object[] 命中的敏感词信息
          ∟ word String 自定义敏感词内容
         ∟ libInfos Object[] 命中的自定义库信息
          ∟ type Number 库类型,1:自定义用户名单库,2:自定义ip名单库
          ∟ entity String 自定义用户名单信息,自定义ip名单信息
          ∟ releaseTime Number 名单解封时间,时间戳单位毫秒
         ∟ anticheat Object 命中的反作弊信息
          ∟ hitType Number 反作弊命中类型,详见hitType返回码及含义表
         ∟ hitInfos Object[] 命中的线索信息
          ∟ value String 线索内容
          ∟ positions Object[] 线索位置,数据起始位置为0,如果返回线索信息中包含emoij表情,一般emoij表情占2位
           ∟ fieldName String 位置类型,content:正文,title:标题
           ∟ startPos Number 线索开始坐标
           ∟ endPos Number 线索结束坐标
     ∟ emotionAnalysis Object 文本情感分析检测结果,如有需要请联系您的专属商务,未开通状态下不返回
      ∟ taskId String 检测任务ID,示例值:"fx6sxdcd89fvbvg4967b4787d78a"
      ∟ dataId String 上传数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给客户经理查询
      ∟ details Object[] 命中的详细信息
       ∟ positiveProb Number 正向情绪倾向,取值0-1,分数越高,正向情绪越高
       ∟ negativeProb Number 负向情绪倾向,取值0-1,分数越高,负向情绪越高
       ∟ sentiment String 情感类型,negative(负向情绪),neutral(中性情绪),positive(正向情绪),unknown(未知)
     ∟ anticheat Object 文本反作弊检测结果,如有需要请联系您的专属商务,未开通状态下不返回
      ∟ taskId String 检测任务ID,示例值:"fx6sxdcd89fvbvg4967b4787d78a"
      ∟ dataId String 上传数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给客户经理查询
      ∟ details Object[] 命中的详细信息
       ∟ suggesiton Number 检测结果,0:通过,10:嫌疑,20:不通过
       ∟ hitInfos Object[] 命中信息
        ∟ hitType Number 反作弊命中类型,详见hitType返回码及含义表
        ∟ hitMsg String 反作弊命中详情,可定制返回值
     ∟ userRisk Object 文本用户画像检测结果,如有需要请联系您的专属商务,未开通状态下不返回
      ∟ taskId String 检测任务ID,示例值:"fx6sxdcd89fvbvg4967b4787d78a"
      ∟ 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 检测任务ID,示例值:"fx6sxdcd89fvbvg4967b4787d78a"
      ∟ dataId String 上传数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给客户经理查询
      ∟ details Object[] 命中的详细信息
       ∟ type String 语种代码详见,语种代码表

    异步检测响应体示例

    {
        "code": 200,
        "msg": "ok",
        "result": [
            {
                "antispam": {
                    "taskId": "fx6sxdcd89fvbvg4967b4787d78a",
                    "dataId": "dataId",
                    "suggestion": 1,
    		"suggestionLevel":2,
                    "resultType": 1,
                    "censorType": 0,
                    "callback": "callback",
                    "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": "fx6sxdcd89fvbvg4967b4787d78a",
                    "dataId": "xxx",
                    "details": [
                        {
                            "account": "xxx",
                            "accountLevel": 2 
                        }
                    ]
                },
                "language": {
                    "taskId": "fx6sxdcd89fvbvg4967b4787d78a",
                    "dataId": "dataId",
                    "details": [
                        {
                            "type": "zh"
                        }
                    ]
                }
            }
        ]
    }
    

    接入示例代码

    开发工具集(SDK)接入

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

    • 准备工作

    准备步骤详见通用步骤

    • 使用方法

    该接口的使用方法可参考SDK demo

    API接入

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

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

    PHP示例代码
    Python示例代码
    go示例代码
    Nodejs示例代码
    C#示例代码
    JAVA示例代码

    Online Chat Tel:95163223 Free trial