推送模式
2024.10.18 12:13:16
内容安全文本结果获取推送模式用于将文本异步检测或人工审核结果主动推送给客户,保证客户最快的获取结果。客户需要按照以下规范实现接收结果的接口。推送模式与轮询模式互斥,只能选取一种模式进行结果获取。
接口说明
结果主动推送模式以数据为维度,将人工审核结果或者异步机器检测结果推送给客户,需客户在调用检测接口时设置回调地址callbackUrl参数,客户方需保证回调接收接口的可用性和稳定性,确保能正常接收推送过来的结果数据。
鉴权说明
易盾内容安全服务使用签名方法对接口进行鉴权,所有接口每一次请求都需要包含签名信息(signature 参数),以验证用户身份,防止信息被恶意篡改。目前支持MD5,SHA1,SHA256,SM3几种加密算法,详细信息,请参见接口鉴权。
结果说明
- 协议说明:检测接口请求参数中指定了回调地址参数callbackUrl(即一个http(s)协议接口的URL)。主动推送接口需要支持http协议,支持POST方法,传输数据编码采用utf-8。
- 接口性能:推送结果接口默认超时时间为2s,为了保证顺利接收数据,客户需保证接收接口可用性和性能稳定。
- 失败重试:客户接口处理结果数据,并返回应答。如果客户接口请求异常,超时或收到的应答不符合规范,易盾会认为推送失败;我们将每隔10分钟推送一次,如果一直失败,持续一天后不再推送。
- 幂等性:结果推送时同样的结果可能会多次请求客户接口。客户接口需要保证幂等性,能够正确处理重复结果数据。
接口耗时
客户接收接口需保证接收接口可用性和性能稳定,易盾请求超时时间为2s,客户接口尽量保证在1s内返回应答,如有特殊要求,可联系易盾运营适当调整超时时间。
请求
请求地址
名称 | 值 |
---|---|
HTTP URL | 回调地址callbackUrl |
HTTP Method | POST |
请求头
名称 | 类型 | 描述 |
---|---|---|
Content-Type | String | 固定值:"application/x-www-form-urlencoded" |
请求参数
名称 | 类型 | 是否必填 | 最大长度 | 描述 |
---|---|---|---|---|
secretId | String | 是 | 32 | 产品密钥id,由易盾内容安全云服务分配,产品标识 |
businessId | String | 是 | 32 | 业务id ,由易盾内容安全云服务分配,业务标识 |
signature | String | 是 | 32 | 请求签名,用来验证此次请求的合法性,具体算法见接口鉴权 |
callbackData | String | 是 | - | 主动推送结果数据,格式为json字符串 |
请求体示例
signature=xxx&secretId=xxx&businessId=xxx&callbackData=xxxx
callbackData为json字符串格式,请自行解析或者反序列化成json对象使用
人工审核结果请求
resultType为2时表示人工审核结果推送请求,callbackData详细字段信息如下:
名称 | 类型 | 是否返回 | 描述 |
---|---|---|---|
callbackData | String | 是 | 回调数据 |
∟ antispam | Object | 是 | 文本内容安全检测结果 |
∟ taskId | String | 是 | 易盾侧机审数据唯一标识,能够根据该值定位到该条数据,如对检测结果有异议,可以发送该值给策略经理查询 |
∟ 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 | String | 是 | 细分类,详细编码请参考下方对应细分类编码对照表 |
人工审核结果请求示例
{
"antispam":{
"taskId":"3pk5pajkz8xhb52emuzp7cdg00109v5f",
"dataId":"1656991913371",
"suggestion":2,
"resultType":2,
"censorType":0,
"censorSource":1,
"censorRound":0,
"censorTime":1656991951761,
"censorLabels":[
{
"code":"1604386821661",
"name":"审核标签名称",
"customCode":"自定义标签编码",
"desc":""
}
],
"remark":"",
"isRelatedHit":false,
"labels":[
{
"label":100,
"level":2,
"subLabels":[
{
"subLabel":"100001"
}
]
}
]
}
}
异步检测结果请求
resultType为1时表示异步机器检测结果推送请求,callbackData详细字段信息如下:
名称 | 类型 | 是否返回 | 最低版本 | 描述 |
---|---|---|---|---|
callbackData | String | 是 | v5.1 | 回调数据 |
∟ antispam | Object | 是 | v5.1 | 文本内容安全检测结果 |
∟ taskId | String | 是 | v5.1 | 易盾侧机审数据唯一标识,能够根据该值定位到该条数据,如对检测结果有异议,可以发送该值给策略经理查询 |
∟ dataId | String | 是 | v5.1 | 上传数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给策略经理查询 |
∟ suggestion | Number | 是 | v5.1 | 建议动作,0:通过,1:嫌疑,2:不通过 |
∟ label | Number | 是 | v5.1 | 命中分类,分类信息,100:色情,200:广告,260:广告法,300:暴恐,400:违禁,500:涉政,600:谩骂,700:灌水,900:其他,1100:涉价值观 |
∟ secondLabel | String | 否 | v5.3 | 命中二级标签细分类 |
∟ thirdLabel | String | 否 | v5.3 | 命中三级标签细分类 |
∟ customAction | Number | 否 | v5.1 | 自定义动作,0:通过,2:不通过。customAction字段用于saas审核系统-机审标准集中的自定义调度功能,将易盾机器检测嫌疑结果通过配置映射为业务自己的自定义动作,可参考图片流程:https://nos.netease.com/yidun/bceb8815e1f50c2339899976e9a2ec28.png |
∟ suggestionLevel | Number | 否 | v5.2 | 嫌疑级别,针对部分定制策略支持命中嫌疑时返回,1:低嫌疑,2:高嫌疑,对通用策略、模型结果暂不支持,v5.2版本新增,默认不返回,如果需要返回请联系策略经理配置 |
∟ resultType | Number | 是 | v5.1 | 结果类型,1:机器结果,2:人审结果 |
∟ censorType | Number | 是 | v5.1 | 审核模式,0:纯机审,1:机审+部分人审,2:机审+全量人审 |
∟ callback | String | 是 | v5.1 | 产品调用文本异步检测或文本批量异步检测传递的callback字段数据。 |
∟ strategyVersions | Object[] | 否 | v5.1 | 策略版本号,策略更新时该参数会更新,可用于追溯策略调优效果 |
∟ label | Number | 是 | v5.1 | 分类信息,100:色情,200:广告,260:广告法,300:暴恐,400:违禁,500:涉政,600:谩骂,700:灌水,900:其他,1100:涉价值观 |
∟ version | String | 是 | v5.1 | 版本号 |
∟ isRelatedHit | Boolean | 是 | v5.1 | 是否命中关联检测,true:关联检测命中,false:原文命中 |
∟ labels | Object[] | 是 | v5.1 | 命中的分类信息,检测通过情况labels默认返回为空 |
∟ label | Number | 是 | v5.1 | 命中分类,分类信息,100:色情,200:广告,260:广告法,300:暴恐,400:违禁,500:涉政,600:谩骂,700:灌水,900:其他,1100:涉价值观 |
∟ rate | Number | 是 | v5.2 | 置信度分数,0-1之间取值,1为置信度最高,0为置信度最低 |
∟ level | Number | 是 | v5.1 | 命中级别,示例值:1:嫌疑,2:不通过,0:正常,特殊策略下可返回“level=0”的数据,如果需要返回可以找策略经理配置 |
∟ subLabels | Object[] | 否 | v5.1 | 细分类信息,可能包含多个 |
∟ subLabel | String | 是 | v5.1 | 末级标签,可能是二级或三级,层级见subLabelDepth,详细编码请参考标签对照表,请定期通过标签接口获取最新的标签信息,避免遗漏新标签风险 |
∟ subLabelDepth | Number | 是 | v5.3 | 末级标签的标签层级,目前支持的层级:2,3;v5.3及以上开始支持 |
∟ secondLabel | String | 是 | v5.3 | 命中二级标签细分类 |
∟ thirdLabel | String | 否 | v5.3 | 命中三级标签细分类 |
∟ rate | Number | 否 | v5.2 | 置信度分数,0-1之间取值,1为置信度最高,0为置信度最低 |
∟ details | Object | 否 | v5.1 | 命中的详细信息 |
∟ keywords | Object[] | 否 | v5.1 | 命中的敏感词信息 |
∟ word | String | 是 | v5.1 | 自定义敏感词内容 |
∟ libInfos | Object[] | 否 | v5.3 | 命中的自定义库信息 |
∟ type | Number | 是 | v5.3 | 库类型,1:自定义用户名单库,2:自定义ip名单库 |
∟ entity | String | 是 | v5.3 | 自定义用户名单信息,自定义ip名单信息 |
∟ releaseTime | Number | 是 | v5.3 | 名单解封时间,时间戳单位毫秒 |
∟ anticheat | Object | 否 | v5.1 | 命中的反作弊信息 |
∟ type | Number | 是 | v5.1 | 反作弊命中类型,详见hitType返回码及含义表 |
∟ rules | Object[] | 否 | v5.3 | 命中用户自定义的规则信息 |
∟ name | String | 是 | v5.3 | 规则名 |
∟ hitInfos | Object[] | 否 | v5.1 | 命中的线索信息 |
∟ value | String | 是 | v5.1 | 线索内容 |
∟ positions | Object[] | 是 | v5.1 | 线索位置,数据起始位置为0,如果返回线索信息中包含emoij表情,一般emoij表情占2位 |
∟ fieldName | String | 是 | v5.1 | 位置类型,content:正文,title:标题 |
∟ startPos | Number | 是 | v5.1 | 线索开始坐标 |
∟ endPos | Number | 是 | v5.1 | 线索结束坐标 |
∟ emotionAnalysis | Object | 否 | v5.1 | 文本情感分析检测结果,如有需要请联系您的专属商务,未开通状态下不返回 |
∟ taskId | String | 是 | v5.1 | 易盾侧机审数据唯一标识,能够根据该值定位到该条数据,如对检测结果有异议,可以发送该值给策略经理查询 |
∟ dataId | String | 是 | v5.1 | 上传数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给策略经理查询 |
∟ details | Object[] | 否 | v5.1 | 命中的详细信息 |
∟ positiveProb | Number | 是 | v5.1 | 正向情绪倾向,取值0-1,分数越高,正向情绪越高 |
∟ negativeProb | Number | 是 | v5.1 | 负向情绪倾向,取值0-1,分数越高,负向情绪越高 |
∟ sentiment | String | 是 | v5.1 | 情感类型,negative(负向情绪),neutral(中性情绪),positive(正向情绪),unknown(未知) |
∟ anticheat | Object | 否 | v5.1 | 文本反作弊检测结果,如有需要请联系您的专属商务,未开通状态下不返回 |
∟ taskId | String | 是 | v5.1 | 易盾侧机审数据唯一标识,能够根据该值定位到该条数据,如对检测结果有异议,可以发送该值给策略经理查询 |
∟ dataId | String | 是 | v5.1 | 上传数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给策略经理查询 |
∟ details | Object[] | 否 | v5.1 | 命中的详细信息 |
∟ suggestion | Number | 是 | v5.1 | 检测结果,0:通过,10:嫌疑,20:不通过 |
∟ hitInfos | Object[] | 是 | v5.1 | 命中信息 |
∟ hitType | Number | 是 | v5.1 | 反作弊命中类型,详见hitType返回码及含义表 |
∟ hitMsg | String | 是 | v5.1 | 反作弊命中详情,可定制返回值 |
∟ userRisk | Object | 否 | v5.1 | 文本用户画像检测结果,如有需要请联系您的专属商务,未开通状态下不返回 |
∟ taskId | String | 是 | v5.1 | 易盾侧机审数据唯一标识,能够根据该值定位到该条数据,如对检测结果有异议,可以发送该值给策略经理查询 |
∟ dataId | String | 是 | v5.1 | 上传数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给策略经理查询 |
∟ details | Object[] | 否 | v5.1 | 命中的详细信息 |
∟ account | String | 否 | v5.1 | 账号信息 |
∟ accountLevel | Number | 否 | v5.1 | 账号等级,0:低风险,1:中风险,2:高风险 |
∟ acDetails | Object[] | 否 | v5.1 | 风险详情,如果同时命中多个类型,则会返回所有风险信息 |
∟ riskType | String | 是 | v5.1 | yin_liu_hei_chan(引流黑产),qi_zha_xian_yi(欺诈嫌疑),she_jiao_la_ren(社交拉人) |
∟ riskLevel | Number | 是 | v5.1 | 账号等级,0:低风险,1:中风险,2:高风险 |
∟ riskScore | String | 是 | v5.1 | 风险分值 0-1 |
∟ language | Object | 否 | v5.1 | 文本语种检测结果,如有需要请联系您的专属商务,未开通状态下不返回 |
∟ taskId | String | 是 | v5.1 | 易盾侧机审数据唯一标识,能够根据该值定位到该条数据,如对检测结果有异议,可以发送该值给策略经理查询 |
∟ dataId | String | 是 | v5.1 | 上传数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给策略经理查询 |
∟ details | Object[] | 否 | v5.1 | 命中的详细信息 |
∟ type | String | 是 | v5.1 | 语种代码详见,语种代码表 |
∟ riskControl | Object | 否 | v5.5 | 智能风控检测结果,如有需要请联系您的专属商务,未开通状态下不返回(v5.5及以上版本支持) |
∟ taskId | String | 是 | v5.5 | 易盾侧机审数据唯一标识,能够根据该值定位到该条数据,如对检测结果有异议,可以发送该值给策略经理查询 |
∟ dataId | String | 是 | v5.5 | 上传数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给策略经理查询 |
∟ details | Object[] | 否 | v5.5 | 智能风控命中详情 |
∟ riskLevel | Number | 是 | v5.5 | 风险等级:0 正常,1 低风险,2 中风险,3 高风险,4 可信源。 风险等级只会返回一个,取本次命中的最高风险等级 |
∟ hitInfos | Object[] | 否 | v5.5 | 备注 |
∟ type | String | 是 | v5.5 | 命中的风险标签编号 |
∟ name | String | 是 | v5.5 | 命中的风险标签对应的名称,命中的标签的上下级名称采用‘-’进行拼接 |
∟ aigcPrompt | Object | 否 | v5.1 | aigc提示分析结果,如有需要请联系您的专属商务,未开通状态下不返回 |
∟ taskId | String | 是 | v5.1 | 易盾侧机审数据唯一标识,能够根据该值定位到该条数据,如对检测结果有异议,可以发送该值给策略经理查询 |
∟ dataId | String | 是 | v5.1 | 上传数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给策略经理查询 |
∟ details | Object[] | 是 | v5.1 | aigc提示分析详情 |
∟ type | Number | 是 | v5.1 | prompt分类的枚举值,1, "需拦截" 2, "需正向引导" 3, "准确回答" 4, "需拦截/正向引导" |
∟ answer | String | 否 | v5.1 | 回答 |
∟ source | Number | 否 | v5.1 | 标记对外输出内容由知识库结果还是大模型生成的结果(0代表知识库,1代表大模型,2代表自定义代答知识库) |
∟ libId | String | 否 | v5.1 | 代答知识库的唯一标识,能够根据该值定位到该条知识库信息,如果对数据结果有异议,可以发送改值给策略经理查询 |
∟ answerId | String | 否 | v5.1 | 代答知识库内每个答案的唯一标识,能够根据该值定位到该条答案信息,如果对数据结果有异议,可以发送改值给策略经理查询 |
异步检测结果请求示例
{
"antispam":{
"taskId":"fx6sxdcd89fvbvg4967b4787d78a",
"dataId":"dataId",
"suggestion":1,
"suggestionLevel":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",
"dataId":"dataIdvalue",
"details":[
{
"account":"account",
"accountLevel":1,
"acDetails":[
{
"riskType":"yin_liu_hei_chan",
"riskLevel":2,
"riskScore":0.4
}
]
}
]
},
"language":{
"taskId":"fx6sxdcd89fvbvg4967b4787d78a",
"dataId":"dataId",
"details":[
{
"type":"zh"
}
]
}
}
响应
响应结果
- 客户接口接收到我们回调的结果后,需要返回应答信息,接口响应HTTP状态码为200,当回调处理异常时,应答的HTTP状态码应为500,或者4xx。
- 目前推送方式默认连接超时(connect timeout)150ms,回调超时(socket timeout)为2s,建议收到推送检测结果后,优先返回response应答信息,异步处理检测结果,避免因为回调超时,易盾侧未收到响应重复推送结果。如业务侧对于超时配置有特殊要求,可联系易盾策略经理调整配置。
- 应答信息为JSON格式,字段定义如下:
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
code | Number | 是 | 应答code,易盾方解析code为200表示推送成功 |
msg | String | 否 | 具体描述信息 |
响应体示例
{
"code": 200,
"msg": "接收成功"
}