推送模式
2024.10.15 18:18:14
内容安全点播音频结果获取推送模式用于将点播音频异步检测或人工审核结果主动推送给客户,保证客户最快的获取结果。客户需要按照以下规范实现接收结果的接口。推送模式与轮询模式互斥,只能选取一种模式进行结果获取。
接口说明
结果主动推送模式以数据为维度,将人工审核结果或者异步机器检测结果推送给客户,需客户在调用检测接口时设置回调地址callbackUrl参数,客户方需保证回调接收接口的可用性和稳定性,确保能正常接收推送过来的结果数据。
鉴权说明
客户接口可以通过业务开通时易盾分配的密钥信息字段进行接口鉴权,鉴权粒度是否要精确到业务级别,用户可以根据需要自行决定,请参见接口鉴权
接入说明
- 协议说明:检测接口请求参数中指定了回调地址参数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字符串,详细见下表callbackData结构 |
名称 | 类型 | 必须返回 | 描述 |
---|---|---|---|
callbackData | String | 是 | 音频检测结果 |
∟ antispam | Object | 是 | 内容安全检测结果 |
∟ taskId | String | 是 | 易盾侧机审数据唯一标识,能够根据该值定位到该条数据,如对检测结果有异议,可以发送该值给策略经理查询 |
∟ status | Number | 是 | 检测状态,2-检测成功,3-检测失败 |
∟ label | Number | 是 | 整体分类信息,0:正常,100:色情,200:广告,260:广告法,300:暴恐,400:违禁,500:涉政,600:谩骂,1100:涉价值观,1050:噪音 |
∟ secondLabel | String | 否 | 命中二级标签细分类 |
∟ thirdLabel | 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-人审结果 |
∟ dataId | String | 否 | 上传数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给客户经理查询 |
∟ failureReason | Number | 否 | 检测失败原因,当检测失败时返回,1:文件格式错误,2:文件下载失败,3:解析失败,4:音频流不存在 |
∟ callback | String | 否 | 提交时传递的callback |
∟ censorSource | Number | 是 | 审核来源,0:易盾人审,1:客户人审,2:易盾机审,3:用户质检,4:易盾质检 |
∟ remark | String | 否 | 人审备注信息 |
∟ censorTime | Number | 否 | 审核完成时间,毫秒单位时间戳(13位) |
∟ duration | Number | 是 | 音频时长字段,单位s |
∟ durationMs | Number | 是 | 音频时长字段,单位ms |
∟ customAction | Number | 否 | 客户自定义建议结果 0-通过 2-删除 |
∟ strategySource | Number | 否 | 策略来源,0:易盾策略来源,1:客户策略来源 |
∟ censorLabels | Object[] | 否 | 支持在智能审核系统自定义标签分类信息 |
∟ code | String | 是 | 在智能系统配置自定义便签之后会生成一个唯一的标签ID |
∟ name | String | 是 | 在智能审核系统配置自定义标签名称 |
∟ desc | String | 是 | 在智能审核系统配置自定义标签备注 |
∟ customCode | String | 否 | 在智能审核系统配置自定义标签ID |
∟ segments | Object[] | 否 | 音频数据所在断句详细信息 |
∟ startTime | Number | 是 | 断句开始时间点,单位秒 |
∟ endTime | Number | 是 | 断句结束时间点,单位秒 |
∟ startTimeMillis | Number | 是 | 断句开始时间点,单位毫秒 |
∟ endTimeMillis | Number | 是 | 断句结束时间点,单位毫秒 |
∟ type | Number | 是 | 断句类型,0-语音识别,1-声纹检测 |
∟ leaderName | String | 否 | 领导人名,若命中领导人声纹,返回对应的领导人名 |
∟ content | String | 是 | 音频数据所在断句语音识别原文内容,支持返回异常数据所在断句内容 |
∟ url | String | 否 | 风险片段对应语音片段的临时访问地址,地址有效期为7天,如需开启请联系易盾策略经理 |
∟ labels | Object[] | 是 | 分类信息 |
∟ label | Number | 是 | 分类信息,分类信息,100:色情,200:广告,260:广告法,300:暴恐,400:违禁,500:涉政,600:谩骂,1100:涉价值观,1050:噪音 |
∟ level | Number | 是 | 命中级别,示例值:1:嫌疑,2:不通过,0:正常,特殊策略下可返回“level=0”的数据,如果需要返回可以找策略经理配置 |
∟ rate | Number | 是 | 置信度分数,0-1之间取值,1为置信度最高,0为置信度最低。 |
∟ subLabels | Object[] | 否 | 命中细分类信息 |
∟ subLabel | String | 是 | 细分类,详细编码请参考下方对应细分类编码对应表 |
∟ subLabelDepth | Number | 是 | 命中的标签层级,目前支持的层级:2,3 |
∟ secondLabel | String | 是 | 命中二级标签细分类 |
∟ thirdLabel | String | 否 | 命中三级标签细分类 |
∟ rate | Number | 是 | 置信度分数,0-1之间取值,1为置信度最高,0为置信度最低。 |
∟ details | Object | 是 | 其他信息 |
∟ hitInfos | Object[] | 是 | 证据信息 |
∟ value | String | 是 | 命中的敏感词或者声纹检测的分值 |
∟ songName | String | 否 | 命中的涉政歌曲名称 |
∟ keywords | Object[] | 否 | 自定义敏感词线索分类信息 |
∟ word | String | 是 | 自定义添加敏感词 |
∟ libInfos | Object[] | 否 | 自定义名单线索分类信息 |
∟ listType | Number | 是 | 名单类型,1:自定义用户名单,2:自定义IP名单,3:自定义设备名单 |
∟ entity | String | 是 | 名单内容 |
∟ rules | Object[] | 否 | 命中用户自定义的规则信息 |
∟ name | String | 是 | 规则名 |
∟ language | Object | 否 | 语种检测结果,如有需要请联系您的专属商务,未开通状态下不返回 |
∟ taskId | String | 是 | 易盾侧机审数据唯一标识,能够根据该值定位到该条数据,如对检测结果有异议,可以发送该值给策略经理查询 |
∟ dataId | String | 否 | 上传数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给客户经理查询 |
∟ callback | String | 否 | 提交时传递的callback |
∟ details | Object[] | 是 | 语种检测详情 |
∟ type | String | 是 | 语种类型,支持检测语种类型请参考语种代码表 |
∟ segments | Object[] | 是 | 识别语种检测的音频断句 |
∟ startTime | Number | 是 | 最近开始时间点,单位秒 |
∟ endTime | Number | 是 | 最近结束时间点,单位秒 |
∟ startTimeMillis | Number | 是 | 最近开始时间点,单位毫秒 |
∟ endTimeMillis | Number | 是 | 最近结束时间点,单位毫秒 |
∟ asr | Object | 否 | 语音识别检测结果,如有需要请联系您的专属商务,未开通状态下不返回 |
∟ taskId | String | 是 | 易盾侧机审数据唯一标识,能够根据该值定位到该条数据,如对检测结果有异议,可以发送该值给策略经理查询 |
∟ dataId | String | 否 | 上传数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给客户经理查询 |
∟ callback | String | 否 | 提交时传递的callback |
∟ details | Object[] | 是 | 语音识别详情 |
∟ startTime | Number | 是 | 断句开始时间点,单位秒 |
∟ endTime | Number | 是 | 断句结束时间点,单位秒 |
∟ startTimeMillis | Number | 是 | 断句开始时间点,单位毫秒 |
∟ endTimeMillis | Number | 是 | 断句结束时间点,单位毫秒 |
∟ content | String | 是 | 语音识别内容 |
∟ voice | Object | 否 | 人声属性检测结果,如有需要请联系您的专属商务,未开通状态下不返回 |
∟ taskId | String | 是 | 易盾侧机审数据唯一标识,能够根据该值定位到该条数据,如对检测结果有异议,可以发送该值给策略经理查询 |
∟ dataId | String | 否 | 上传数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给客户经理查询 |
∟ callback | String | 否 | 提交时传递的callback |
∟ detail | Object | 是 | 人声属性详情 |
∟ mainGender | String | 是 | 音频性别建议值,male/female |
∟ mainAgeGroup | String | 是 | 识别人声年龄建议值,underage(0~18岁),adult(18岁以上) |
∟mainAgeGroupRate | Number | 是 | 置信度分数,0-1之间取值,1为置信度最高,0为置信度最低 |
∟deepfake | Number | 否 | 音频深度伪造检测值,1-伪造,0-真实 |
∟ quality | Object | 否 | 质量检测结果,如有需要请联系您的专属商务,未开通状态下不返回 |
∟ taskId | String | 是 | 易盾侧机审数据唯一标识,能够根据该值定位到该条数据,如对检测结果有异议,可以发送该值给策略经理查询 |
∟ dataId | String | 否 | 上传数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给客户经理查询 |
∟ callback | String | 否 | 提交时传递的callback |
∟ silentSegments | Object[] | 是 | 无声断句检测结果详情 |
∟ startTime | Number | 是 | 断句开始时间点,单位秒 |
∟ endTime | Number | 是 | 断句结束时间点,单位秒 |
∟ startTimeMillis | Number | 是 | 断句开始时间点,单位毫秒 |
∟ endTimeMillis | Number | 是 | 断句结束时间点,单位毫秒 |
请求体示例
callbackData=***&signature=xxx&secretId=xxx&businessId=xxx
请求体 callbackData 格式如下,callbackData 为 JSON 字符串格式,请自行解析或者反转成 JSON 对象使用。
{
"antispam":{
"taskId":"nyp3inlbbkmuvn77hmmmtjxg00609uht",
"dataId":"154037476208541705",
"status":2,
"suggestion":1,
"label":600,
"remark":"",
"resultType":1,
"censorSource":2,
"censorTime":1653931797254,
"segments":[
{
"startTime":0,
"endTime":9,
"content":"当时他在找你妈的,这什么呀?",
"type":0,
"labels":[
{
"label":600,
"level":1,
"subLabels":[
{
"subLabel":"600383",
"details":{
"hitInfos":[
{
"value":"妈的"
}
]
}
}
]
}
]
}
],
"duration":10
},
"language":{
"taskId":"38e08da8d2574df4bd2eca9b5153df72",
"dataId":"",
"callback":"",
"details":[
{
"type":"en-GB",
"segments":[
{
"startTime":35,
"endTime":40
},
{
"startTime":160,
"endTime":165
}
]
}
]
},
"asr":{
"taskId":"38e08da8d2574df4bd2eca9b5153df72",
"dataId":"",
"callback":"",
"details":[
{
"startTime":0,
"endTime":20,
"content":"加我"
}
]
},
"voice":{
"taskId":"7f03cdeaf4cf4c748a4edbe97833a9ee",
"dataId":"",
"callback":"",
"detail":{
"mainGender":"male",
"mainAgeGroup": "adult",
"mainAgeGroupRate": 0.9973,
}
}
}
响应
响应结果
- 客户接口接收到我们回调的结果后,需要返回应答信息,接口响应HTTP状态码为200,当回调处理异常时,应答的HTTP状态码应为500,或者4xx;
- 目前推送方式默认连接超时(connect timeout)150ms,回调超时(socket timeout)为2s,建议收到推送检测结果后,优先返回response应答信息,异步处理检测结果,避免因为回调超时,易盾侧未收到响应重复推送结果。如业务侧对于超时配置有特殊要求,可联系易盾策略经理调整配置。
- 应答信息为JSON格式,字段定义如下:
名称 | 类型 | 必须返回 | 描述 |
---|---|---|---|
code | Number | 是 | 应答code,易盾方解析code为200表示推送成功 |
msg | String | 否 | 具体描述信息 |
响应体示例
{
"code": 200,
"msg": "接收成功"
}