同步检测接口
AIGC 内容检测解决方案目前适用于对 AI 大模型流式输出的文字进行自动拼接后审核。同步检测接口用于提交待检测数据,并同步返回易盾内容安全服务的实时检测结果。
接口说明
该接口是 AIGC 内容检测解决方案中的数据提交接口,需要使用 HTTP 协议进行调用。该接口会同步返回检测结果。
鉴权说明
易盾内容安全服务使用签名方法对接口进行鉴权。接口请求需要包含签名信息(signature
参数)以验证用户身份,防止信息被恶意篡改。目前支持 MD5
、SHA1
、SHA256
、SM3
等几种加密算法,鉴权流程详见 接口鉴权 。
接口限制
文本限制:
- 单文本切片:切片长度 < 10 字
- 自动拼接文本:拼接长度 < 200 字
检测耗时
检测接口的响应时间与拼接长度相关,根据不同长度建议适当调整接口超时时间,200 字以内建议 200ms 即可
请求
请求地址
名称 | 值 |
---|---|
HTTP URL | https://as.dun.163.com/v1/stream/push |
HTTP Method | POST |
请求头
名称 | 类型 | 描述 |
---|---|---|
Content-Type | String | 固定值:"application/x-www-form-urlencoded" |
请求参数
请求参数由公共参数和业务参数两部分组成
公共参数
公共参数包含密钥信息和参数签名信息,公共参数详细见 请求公共参数 。
业务参数
名称 | 类型 | 是否必填 | 最大长度 | 描述 |
---|---|---|---|---|
sessionId | String | 是 | 128 | 业务侧会话 ID,用于关联整个流式检测会话,标记当前请求内容片段所属的流式内容; |
type | Number | 否 | - | 推送的事件类型,事件类型有 1:流式输出检测、2:输入检测、3:会话结束,默认值为:1 |
content | String | 见描述 | 见描述 | type = 1:content 必传,表示流式检测内容片段,可对应 AIGC 场景中的流式输出 tokens。检测片段传入 AIGC 输出文本中,最大长度为 200。 type = 2:content 必传,表示流式检测场景下的输入内容。建议对内容中的 JSON、表情符、HTML 标签、UBB 标签等进行过滤,只传递纯文本,以减少误判概率。对应传入 AIGC 输入文本中,最大长度为 10000。 type = 3:会话结束时,content 非必填。如果传入 content,会按照 type = 2 的逻辑处理输入片段,并关闭当前活跃会话。 |
version | String | 是 | 4 | 接口版本号,可选值 v1.0 |
publishTime | Number | 否 | 13 | 时间戳用于标识数据片段生成的时间,建议客户侧生成并传递,拼接的内容将基于时间戳进行排序。时间戳应为 UNIX 时间戳(毫秒值)。 |
dataId | String | 否 | 128 | 业务侧数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给策略经理查询,建议提供该参数。 |
callback | String | 否 | 2^16-1 | 数据回调参数,业务侧可根据业务场景需要自定义,易盾调用回调接口(callbackUrl )时,会原样返回该参数的值 |
callbackUrl | String | 否 | 256 | 业务侧回调接口 URL,用于异步通知业务侧异步及离线策略检测结果。接口调用超时时间为 2s,需业务侧确保接口的稳定性和幂等性 |
checkLabels | String | 否 | 512 | 业务自定义过检分类,请谨慎写入,并与策略经理充分沟通,以免引起漏判,如果没有勾选分类提交返回参数错误,可指定多个垃圾类别进行机器检测,多个垃圾类别以逗号分隔(如 100,200 ),指定后业务配置过检分类即失效,支持的过检分类列表,100:色情,200:广告,260:广告法,300:暴恐,400:违禁,500:涉政,600:谩骂,700:灌水,900:其他,1100:涉价值观 |
业务扩展参数
建议将检测内容的用户信息、设备信息、场景信息同步传入,易盾将结合用户风险画像、设备风险画像、场景化策略全方位检测内容风险,检测结果更精准。
参数名称 | 类型 | 是否必填 | 最大长度 | 描述 |
---|---|---|---|---|
account | String | 否 | 128 | 用户唯一标识,与易盾账号画像库匹配,建议抄送,辅助机审策略精准调优,如业务方同时接入易盾反外挂,则此账号传值需要与反外挂接入中的 roleAccount (Android 端),或 user_account (iOS 端)保持一致 |
ip | String | 否 | 128 | 用户 IP 地址,建议抄送,辅助机审策略精准调优 |
deviceId | String | 否 | 128 | 用户设备 ID,与易盾设备画像库匹配,明文请转大写传入;MD5 加密请明文转大写后 MD5 计算,再转大写传入,建议抄送 |
extStr1 | String | 否 | 128 | 自定义扩展参数 |
extStr2 | String | 否 | 128 | 自定义扩展参数 |
extLon1 | Number | 否 | 2^63-1 | 自定义扩展参数 |
extLon2 | Number | 否 | 2^63-1 | 自定义扩展参数 |
extension | Json | 否 | 30000 | 更多自定义扩展参数,JSON 字符串格式。如:{"keyName1":"value1","keyName2":"value2"} |
请求体示例
content=token1&version=v1.0&dataId=163&signature=xxx&secretId=xxx×tamp=1646984669446&nonce=12353
响应
响应结果
响应字段如下,响应通用字段已省略,详细见响应公字段:响应公共字段
字段名称 | 类型 | 是否必返 | 描述 |
---|---|---|---|
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"
}
}
有结果时:
{
"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"
}
]
}
}
}
示例代码
服务端 SDK 接入
推荐使用我们提供的服务端 SDK 进行接入(目前支持 Java 和 Go 两种语言),不但可以节省接入成本,实现更快速的集成,并享有灵活的请求配置选项,同时 SDK 内置了错误重试、熔断降级等功能,提升服务可用性。点击 服务端 SDK 接入指引 了解更多。