AIGC 内容检测解决方案目前适用于对 AI 大模型流式输出的文字进行自动拼接后审核。同步检测接口用于提交待检测数据,并同步返回易盾内容安全服务的实时检测结果。
接口说明
该接口是 AIGC 内容检测解决方案中的数据提交接口,需要使用 HTTP 协议进行调用。该接口会同步返回检测结果。
鉴权说明
易盾内容安全服务使用签名方法对接口进行鉴权。接口请求需要包含签名信息(signature 参数)以验证用户身份,防止信息被恶意篡改。目前支持 MD5、SHA1、SHA256、SM3 等几种加密算法,鉴权流程详见 接口鉴权 。
接口限制
文本限制:
单文本切片:切片长度 < 50 字
自动拼接文本:拼接长度 < 200 字
检测耗时
检测接口的响应时间与拼接长度相关,根据不同长度建议适当调整接口超时时间,200 字以内建议 200ms 即可
请求
请求地址
名称
值
HTTP URL
http://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 输出文本中,默认最大长度为 50。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
否
命中二级标签细分类
∟ riskdescription
String
是
风险描述,拼接 label|secondlabel|thirdlabel 的中文实时示意,注意分隔使用「|」,将上层对应一级分类带入,若存在二级/三级透出拼装,若无可不显示
∟ 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
否
命中三级标签细分类
∟ riskdescription
String
是
风险描述,拼接 label|secondlabel|thirdlabel 的中文实时示意,注意分隔使用「|」,将上层对应一级分类带入,若存在二级/三级透出拼装,若无可不显示
∟ 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 接入指引 了解更多。
Github Demo 地址
Java SDK Demo
Golang SDK Demo
Gitee Demo 地址(Github 无法访问时选择)
Java SDK Demo
Golang SDK Demo
HTTP API 接入
Github Demo 地址
Java Demo