轮询模式
2024.08.29 10:07:34
AIGC 内容检测解决方案的结果获取支持轮询模式
,用于获取 会话自动关闭时未过检片段的机器检测结果 和人工审核结果,轮询模式
与推送模式
是互斥的,业务侧只能选择其中一种模式进行结果获取。
接口说明
该接口返回 AIGC 内容检测解决方案的机审结果和人工审核结果,客户需要通过定时轮询该接口来获取结果。当提交检测接口的参数 callbackUrl
为空时,表示结果需要使用轮询方式
获取。结果可以根据提交检测时返回的 sessionTaskId
或 sessionId
获取。
鉴权说明
易盾内容安全服务使用签名方法对接口进行鉴权。接口请求需要包含签名信息(signature
参数)以验证用户身份,防止信息被恶意篡改。目前支持 MD5
、SHA1
、SHA256
、SM3
等几种加密算法,鉴权流程详见 接口鉴权 。
接口限制
- 获取结果后,下次调用时不会再次返回之前已获取过的结果。
- 接口一次性最多返回 20 个结果。结果数据默认保留 7 天,超过 7 天未获取的会失效。
- 接口请求 QPS 建议不超过 2,过快的请求会被服务器拒绝处理。若有特殊需求,可联系专属商务
接口耗时
接口正常情况下 50ms 内会返回结果,业务侧可根据自身需求适当调整超时时间,建议为 1s。
请求
请求地址
名称 | 值 |
---|---|
HTTP URL | https://as.dun.163.com/v1/stream/callback/results |
HTTP Method | POST |
请求头
名称 | 类型 | 描述 |
---|---|---|
Content-Type | String | 固定值:"application/x-www-form-urlencoded" |
请求参数
请求参数由公共参数和业务参数两部分组成
公共参数
公共参数包含密钥信息和参数签名信息,公共参数详细见 请求公共参数
业务参数
名称 | 类型 | 是否必填 | 最大长度 | 描述 |
---|---|---|---|---|
version | String | 是 | 4 | 接口版本号,可选值 v1.0 |
yidunRequestId | String | 否 | 64 | 幂等参数说明 |
请求体示例
version=v1.0&signature=xxx&secretId=xxx×tamp=1677207014000&nonce=123
响应
结果有人工审核结果
和机器审核结果
两种类型,不同类型的结果返回的 callbackData
的结构不同,可根据结果中的 resultType
区分, 1:机器审核结果、2:人工审核结果
详细结果字段如下,通用字段已省略,详见响应公共字段:响应公共字段
机器审核结果
字段名称 | 类型 | 是否必返 | 描述 |
---|---|---|---|
result | Object[] | 是 | 文本回调结果 |
∟sessionTaskId | String | 是 | 当前流式检测活跃会话的主数据 sessionTaskId,能够根据该值定位到该条数据,如对检测结果有异议,可以发送该值给策略经理查询。 |
∟sessionId | String | 是 | 当前流式检测活跃会话的会话 ID |
∟ antispam | Object | 否 | 文本内容安全检测结果 |
∟ taskId | String | 是 | 当前实际过检片段的检测任务 ID,易盾侧机审数据唯一标识,能够根据该值定位到该条数据,如对检测结果有异议,可以发送该值给策略经理查询 |
∟ dataId | String | 是 | 上传数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给策略经理查询 |
∟ suggestion | Number | 是 | 建议动作,0:通过、1:嫌疑、2:不通过 |
∟ label | Number | 是 | 命中分类信息,100:色情、200:广告、260:广告法、300:暴恐、400:违禁、500:涉政、600:谩骂、700:灌水、900:其他、1100:涉价值观 |
∟ secondLabel | String | 否 | 命中二级标签细分类 |
∟ thirdLabel | String | 否 | 命中三级标签细分类 |
∟ customAction | Number | 否 | 自定义动作,0:通过、2:不通过。字段用于智能审核系统-机审标准集 中的自定义调度功能,可以将机器检测嫌疑结果通过配置映射为业务自己的自定义动作,可参考流程: |
∟ suggestionLevel | Number | 否 | 嫌疑级别,针对部分定制策略支持命中嫌疑时返回,1:低嫌疑、2:高嫌疑。对通用策略、模型结果暂不支持 |
∟ resultType | Number | 是 | 结果类型,1:机器结果、2:人审结果 |
∟ censorType | Number | 是 | 审核模式,0:纯机审、1:机审+部分人审、2:机审+全量人审 |
∟ strategyVersions | Object[] | 否 | 策略版本号,策略更新时该参数会更新,可用于追溯策略调优效果 |
∟ label | Number | 是 | 分类信息,100:色情、200:广告、260:广告法、300:暴恐、400:违禁、500:涉政、600:谩骂、700:灌水、900:其他、1100:涉价值观 |
∟ version | String | 是 | 版本号 |
∟ isRelatedHit | Boolean | 是 | 是否命中关联检测,true:关联检测命中、false:关联检测未命中 |
∟ filteredContent | String | 否 | 过滤后文本内容,当命中信息中包含敏感词时,将敏感词内容用*代替后返回,*号数量与敏感词字数相同;若未命中敏感词,则不返回 |
∟ mergeHints | String[] | 否 | 文本命中线索内容,若文本多个位置内容存在风险,会将所有线索内容合并在一起返回 |
∟ labels | Object[] | 是 | 命中的分类信息,未命中时返回为空 |
∟ label | Number | 是 | 命中分类信息,100:色情、200:广告、260:广告法、300:暴恐、400:违禁、500:涉政、600:谩骂、700:灌水、900:其他、1100:涉价值观 |
∟ rate | Number | 是 | 置信度分数,0-1 之间取值,1 为置信度最高,0 为置信度最低 |
∟ level | Number | 是 | 命中级别,1:嫌疑、2:不通过、0:正常 |
∟ subLabels | Object[] | 否 | 细分类信息,可能包含多个 |
∟ subLabel | String | 是 | 末级标签,可能是二级或三级,层级见 subLabelDepth ,详细编码请参考 标签对照表 ,请定期通过 标签接口 获取最新的标签信息,避免遗漏新标签风险 |
∟ subLabelDepth | Number | 是 | 末级标签的标签层级,2:二级标签、3:三级标签 |
∟ secondLabel | String | 是 | 命中二级标签细分类 |
∟ thirdLabel | String | 否 | 命中三级标签细分类 |
∟ rate | Number | 否 | 置信度分数,0-1 之间取值,1 为置信度最高,0 为置信度最低 |
∟ politicalSentiment | Number | 否 | 涉政正负向属性,0:正向、1:负向、2:中性。如有需要请您的联系专属商务,未开通状态下不返回 |
∟ 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 | 是 | 线索结束坐标 |
∟ language | Object | 否 | 文本语种检测结果,如有需要请联系您的专属商务,未开通状态下不返回 |
∟ taskId | String | 是 | 当前实际过检片段的检测任务ID,易盾侧机审数据唯一标识,能够根据该值定位到该条数据,如对检测结果有异议,可以发送该值给策略经理查询 |
∟ dataId | String | 是 | 上传数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给策略经理查询 |
∟ details | Object[] | 否 | 命中的详细信息 |
∟ type | String | 是 | 语种代码详见,语种代码表 |
∟ aigcPrompt | Object | 否 | aigc提示分析结果,如有需要请联系您的专属商务,未开通状态下不返回 |
∟ taskId | String | 是 | 当前实际过检片段的检测任务 ID,易盾侧机审数据唯一标识,能够根据该值定位到该条数据,如对检测结果有异议,可以发送该值给策略经理查询 |
∟ dataId | String | 是 | 上传数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给策略经理查询 |
∟ details | Object[] | 是 | aigc 提示分析详情 |
∟ source | Number | 是 | 标记对外输出内容由知识库结果还是大模型生成的结果,0:知识库输出结果、1:大模型生成结果) |
∟ type | Number | 是 | prompt 分类的枚举值,1:需拦截、2:需正向引导、3:准确回答、4:需拦截/正向引导 |
∟ answer | String | 否 | 代答内容 |
机器审核结果示例
{
"code": 200,
"msg": "ok",
"result": [
{
"sessionTaskId": "fx6sxdcd89fvbvg4967b4787d73a",
"sessionId": "74fb17f1-1404-4230-9b23-8e8157e50bf3",
"antispam": {
"dataId": "1678256782070",
"suggestion": 1,
"customAction": 0,
"censorType": 0,
"isRelatedHit": false,
"censorTime": 1678256782119,
"resultType": 1,
"taskId": "fx6sxdcd89fvbvg4967b4787d78a",
"labels": [
{
"subLabels": [
{
"subLabel": "200009",
"subLabelDepth": 2,
"details": {
"hitInfos": [
{
"positions": [
{
"fieldName": "content",
"startPos": 0,
"endPos": 3
}
],
"value": "加微信"
}
]
},
"secondLabel": "200009"
}
],
"level": 1,
"rate": 0.5,
"label": 200
}
]
},
"language": {
"taskId": "fx6sxdcd89fvbvg4967b4787d78a",
"dataId": "dataId",
"details": [
{
"type": "zh"
}
]
},
"aigcPrompt": {
"dataId": "1678256782070",
"taskId": "fx6sxdcd89fvbvg4967b4787d78a",
"details": [
{
"source": 0,
"type": 1,
"answer": "aa"
}
]
}
}
]
}
人工审核结果
名称 | 类型 | 是否返回 | 描述 |
---|---|---|---|
result | Object[] | 是 | 文本回调结果 |
∟sessionTaskId | String | 是 | 当前流式检测活跃会话的主数据 sessionTaskId ,能够根据该值定位到该条数据,如对检测结果有异议,可以发送该值给策略经理查询。 |
∟sessionId | String | 是 | 当前流式检测活跃会话的会话 ID |
∟ antispam | Object | 是 | 文本内容安全检测结果 |
∟ taskId | String | 是 | 当前实际过检片段的检测任务 ID,易盾侧机审数据唯一标识,能够根据该值定位到该条数据,如对检测结果有异议,可以发送该值给策略经理查询 |
∟dataId | String | 是 | 上传数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给策略经理查询 |
∟suggestion | Number | 是 | 建议动作,0:通过、2:不通过 |
∟remark | String | 否 | 人审备注信息 |
∟resultType | Number | 是 | 结果类型,1:机器结果、2:人审结果 |
∟censorType | Number | 是 | 审核模式,0:纯机审、1:机审+部分人审、2:机审+全量人审 |
∟callback | String | 是 | 调用 AIGC 内容检测提交接口时传递的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 轮人审,以此类推,智能审核系统人工审核模板配置请参考 人工审核模板设置说明文档。若您使用易盾人工审核服务,非必要情况下不要对该字段做解析依赖。人审团队为了您的审核质量,会自发的在某些高风险时段进行多轮审核来保证交付质量,所以该字段可能会在不通知到您的情况下变化,感谢您的配合,有任何问题可以随时联系我们 |
∟censorTime | Number | 否 | 审核时间 |
∟ labels | Object[] | 是 | 命中的分类信息 |
∟ label | Number | 是 | 命中分类信息,100:色情、200:广告、260:广告法、300:暴恐、400:违禁、500:涉政、600:谩骂、700:灌水、900:其他、1100:涉价值观 |
∟ level | Number | 是 | 命中级别,1:嫌疑、2:不通过、0:正常 |
∟ subLabels | Object[] | 否 | 细分类信息,可能包含多个 |
∟ subLabel | String | 是 | 细分类,详细编码请参考下方对应细分类编码 对照表 |
人工审核结果示例
{
"sessionTaskId": "fx6sxdcd89fvbvg4967b4787d73a",
"sessionId": "74fb17f1-1404-4230-9b23-8e8157e50bf3",
"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"
}
]
}
]
}
}
示例代码
服务端 SDK 接入
推荐使用我们提供的服务端 SDK 进行接入(目前支持 Java 和 Go 两种语言),不但可以节省接入成本,实现更快速的集成,并享有灵活的请求配置选项,同时 SDK 内置了错误重试、熔断降级等功能,提升服务可用性。点击 服务端 SDK 接入指引 了解更多。