同步批量检测
更新时间:
参数规范
- 请求 URL:
https://tsafe.ilivedata.com/api/v1/text/batchCheck
- HTTP 请求Header:
Header
值
是否必需
描述
Content-Type
application/json;charset=UTF-8
必需
请求体类型
Accept
application/json;charset=UTF-8
必需
接受的返回类型
X-AppId
必需
项目的唯一标识,此值是 <控制台-服务配置>中的项目编号
X-TimeStamp
必需
请求的UTC时间戳。需要把时间戳按W3C标准格式化,例如: 2010-01-31T23:59:59Z. (http://www.w3.org/TR/xmlschema-2/#dateTime)。
Authorization
必需
签名值
-
请求方法:
POST
-
请求体JSON:
参数
是否必需
类型
描述
contents
必需
JSON数组
批量审核请求内容, 数量不超过100
- Content
参数
是否必需
类型
描述
id
可选
String
数据ID
content
必需
String
检测文本
strategyId
可选
String
策略编号
country
可选
String
国家代码
userId
可选
String
唯一的终端用户ID。 用户ID应当不超过64个字符。
userName
可选
String
用户名、昵称。 用户名应当不超过32个字符。
userLevel
可选
Number
用户等级
userIp
可选
String
用户IP地址
sessionId
可选
String
用户会话ID。 会话ID应当不超过64个字符。
receiverId
可选
String
接收者ID。 接收者ID应当不超过64个字符。
totalPay
可选
Number
用户充值金额。 最多支持小数点后2位。
registrationDate
可选
Number
用户注册时间。 10位数时间戳。
msgCount
可选
Number
消息发送次数
msgType
可选
String
消息类型
pkgChannel
可选
String
安装包渠道
did
可选
String
用户设备ID
dtype
可选
String
用户设备类型:1:iPhone 2:android 3: ipad 4:wphone 5: pc 6:web 7:wap
extra
可选
map类型
其他内容,可以传多个key和value。比如传游戏服务器和游戏版本两个参数,传入方式:“extra” : {“server”: “123”,“version”:“456”}
checkTags
可选
数组类型
检测的类别,支持传入一级类别,100:涉政,110:暴恐,120:违禁,130:色情,150:广告,160:辱骂,170:仇恨言论,180:未成年保护,190:敏感热点,220:私人交易,410: 违规表情,420:昵称相关,999:自定义
- 请求体示例:
{
"contents": [
{
"id": "1",
"content": "测试语句1",
"strategyId": "DEFAULT"
},
{
"id": "2",
"content": "测试语句2",
"strategyId": "DEFAULT"
}
]
}
- 请求签名:
当用户请求Text Batch Check API时,使用appId和secretKey对请求做签名,当服务端收到带签名信息的请求之后,将使用相同的算法验证签名,如果发现签名不一致,API将会返回401给用户。
如果API验证签名一致,且appId对应的用户有权限操作请求的资源,则请求成功,否则API返回401。
- 通过 HTTP 请求 Header 发送签名
方法: 在请求中加入名为 Authorization 的 Header,值为签名值。如下:
Authorization: ****
- 签名计算方法 规范化
- 构造规范化的请求字符串(Canonicalized Query String)::
将请求体JSON字符串以UTF-8字符编码做sha256编码后转换为16进制字符串(注意不是Base64)
CanonicalizedQueryString = hex(sha256(jsonBody))
-
构造被签名字符串 StringToSign ("\n" 代表ASCII里的换行符)
StringToSign = HTTPMethod + “\n” +
HostHeaderInLowercase + “\n” +
HTTPRequestURI + “\n” +
CanonicalizedQueryString <从上一步得到> + “\n” +
“X-AppId:” + SAME_APPID_IN_HEADER + “\n” +
“X-TimeStamp:” + SAME_TIMESTAMP_IN_HEADER
HTTPRequestURI是请求URI的绝对路径,不包含请求串。如果HTTPRequestURI为空,也要保留一个正斜杠 ( / )
使用 HMAC-SHA256 协议创建基于哈希的消息身份验证代码 (HMAC),然后计算签名。
-
StringToSign作为签名字符串,secretKey作为秘钥,SHA256作为哈希算法
有关 HMAC 的更多信息,请参阅 https://tools.ietf.org/html/rfc2104。
-
将上一步的结果转换为BASE64串
-
将BASE64串放入HTTP请求Header的Authorization
HTTP 响应
Content-Type: application/json;charset=UTF-8
结果为JSON格式,请参考以下示例。
- HTTP响应示例:
返回数据为JSON数组, 数组字段说明:
字段名
类型
描述
id
String
返回请求中的id,请求中不传id参数则此处为空
errorCode
Number
错误码,0表示成功
textSpam
JSON对象
结果信息
taskId
String
区分不同次调用的唯一标识
language
String
语种
startTime
Number
时间戳,代表检测文本调用时间
endTime
Number
时间戳,代表检测文本结果返回时间
textSpam:
字段名
类型
描述
content
String
检测完成后,如果含有敏感词,敏感词会变星,其他内容正常返回;
result
Number
0:通过,1:建议审核,2:不通过
tags
json数组
分类信息
wordList
字符串数组
敏感词列表
tags:
字段名
类型
描述
tag
Number
一级分类信息代码
100:涉政;110:暴恐;120:违禁;130:色情;150:广告;160:辱骂;170:仇恨言论;180:未成年保护;190:敏感热点;410:违规表情;420:昵称;300:广告法;220:私人交易;900:其他;999:用户自定义类
tagName
String
检测文本命中的一级类型名称
tagNameEn
String
检测文本命中的一级类型名称(英文)
level
Number
分类级别,0:正常,1:疑似,2:异常
confidence
Number
置信度,0~100之间的值,数值越大,表示检测文本为广告的可能性越大。(仅tag为150时,返回该字段)
subTags
json数组
敏感信息的二级分类
subTags:
字段名
类型
描述
subTag
Number
二级分类详细编码请参考 分类编码对照表
subTagName
String
检测文本命中的二级类型名称
subTagNameEn
String
检测文本命中的二级类型名称(英文)
wordList
字符串数组
命中详情
- 响应示例
[
{
"errorCode": 0,
"textSpam": {
"content": "fuck",
"result": 0
},
"taskId": "367ef301-c627-4ae7-b23f-93d8219ade23",
"language": "en",
"startTime": 1699265265989,
"endTime": 1699265268714,
"id": "1"
},
{
"errorCode": 0,
"textSpam": {
"content": "caonima",
"result": 1,
"tags": [
{
"tag": 999,
"tagName": "用户自定义 ",
"level": 1,
"subTags": [
{
"subTag": 999001,
"subTagName": "用户自定义敏感词一类",
"wordList": [
"caonima"
]
}
]
}
],
"wordList": [
"caonima"
]
},
"taskId": "4967e9d1-f4ca-47de-aa52-6e6b0372ddcc",
"language": "Italian",
"companyId": "1",
"startTime": 1699265269127,
"endTime": 1699265269138,
"adRisk": 1,
"id": "2"
}
]
错误码
见文本检测错误码
参数规范
- 请求 URL:
https://tsafe.ilivedata.com/api/v1/text/batchCheck
- HTTP 请求Header:
Header | 值 | 是否必需 | 描述 |
---|---|---|---|
Content-Type | application/json;charset=UTF-8 | 必需 | 请求体类型 |
Accept | application/json;charset=UTF-8 | 必需 | 接受的返回类型 |
X-AppId | 必需 | 项目的唯一标识,此值是 <控制台-服务配置>中的项目编号 | |
X-TimeStamp | 必需 | 请求的UTC时间戳。需要把时间戳按W3C标准格式化,例如: 2010-01-31T23:59:59Z. (http://www.w3.org/TR/xmlschema-2/#dateTime)。 | |
Authorization | 必需 | 签名值 |
-
请求方法: POST
-
请求体JSON:
参数 | 是否必需 | 类型 | 描述 |
---|---|---|---|
contents | 必需 | JSON数组 | 批量审核请求内容, 数量不超过100 |
- Content
参数 | 是否必需 | 类型 | 描述 |
---|---|---|---|
id | 可选 | String | 数据ID |
content | 必需 | String | 检测文本 |
strategyId | 可选 | String | 策略编号 |
country | 可选 | String | 国家代码 |
userId | 可选 | String | 唯一的终端用户ID。 用户ID应当不超过64个字符。 |
userName | 可选 | String | 用户名、昵称。 用户名应当不超过32个字符。 |
userLevel | 可选 | Number | 用户等级 |
userIp | 可选 | String | 用户IP地址 |
sessionId | 可选 | String | 用户会话ID。 会话ID应当不超过64个字符。 |
receiverId | 可选 | String | 接收者ID。 接收者ID应当不超过64个字符。 |
totalPay | 可选 | Number | 用户充值金额。 最多支持小数点后2位。 |
registrationDate | 可选 | Number | 用户注册时间。 10位数时间戳。 |
msgCount | 可选 | Number | 消息发送次数 |
msgType | 可选 | String | 消息类型 |
pkgChannel | 可选 | String | 安装包渠道 |
did | 可选 | String | 用户设备ID |
dtype | 可选 | String | 用户设备类型:1:iPhone 2:android 3: ipad 4:wphone 5: pc 6:web 7:wap |
extra | 可选 | map类型 | 其他内容,可以传多个key和value。比如传游戏服务器和游戏版本两个参数,传入方式:“extra” : {“server”: “123”,“version”:“456”} |
checkTags | 可选 | 数组类型 | 检测的类别,支持传入一级类别,100:涉政,110:暴恐,120:违禁,130:色情,150:广告,160:辱骂,170:仇恨言论,180:未成年保护,190:敏感热点,220:私人交易,410: 违规表情,420:昵称相关,999:自定义 |
- 请求体示例:
{
"contents": [
{
"id": "1",
"content": "测试语句1",
"strategyId": "DEFAULT"
},
{
"id": "2",
"content": "测试语句2",
"strategyId": "DEFAULT"
}
]
}
- 请求签名:
当用户请求Text Batch Check API时,使用appId和secretKey对请求做签名,当服务端收到带签名信息的请求之后,将使用相同的算法验证签名,如果发现签名不一致,API将会返回401给用户。
如果API验证签名一致,且appId对应的用户有权限操作请求的资源,则请求成功,否则API返回401。
- 通过 HTTP 请求 Header 发送签名
方法: 在请求中加入名为 Authorization 的 Header,值为签名值。如下:
Authorization: ****
- 签名计算方法 规范化
- 构造规范化的请求字符串(Canonicalized Query String)::
将请求体JSON字符串以UTF-8字符编码做sha256编码后转换为16进制字符串(注意不是Base64)
CanonicalizedQueryString = hex(sha256(jsonBody))
-
构造被签名字符串 StringToSign ("\n" 代表ASCII里的换行符)
StringToSign = HTTPMethod + “\n” + HostHeaderInLowercase + “\n” + HTTPRequestURI + “\n” + CanonicalizedQueryString <从上一步得到> + “\n” + “X-AppId:” + SAME_APPID_IN_HEADER + “\n” + “X-TimeStamp:” + SAME_TIMESTAMP_IN_HEADER
HTTPRequestURI是请求URI的绝对路径,不包含请求串。如果HTTPRequestURI为空,也要保留一个正斜杠 ( / )
使用 HMAC-SHA256 协议创建基于哈希的消息身份验证代码 (HMAC),然后计算签名。
-
StringToSign作为签名字符串,secretKey作为秘钥,SHA256作为哈希算法
有关 HMAC 的更多信息,请参阅 https://tools.ietf.org/html/rfc2104。
-
将上一步的结果转换为BASE64串
-
将BASE64串放入HTTP请求Header的Authorization
HTTP 响应
Content-Type: application/json;charset=UTF-8
结果为JSON格式,请参考以下示例。
- HTTP响应示例:
返回数据为JSON数组, 数组字段说明:
字段名 | 类型 | 描述 |
---|---|---|
id | String | 返回请求中的id,请求中不传id参数则此处为空 |
errorCode | Number | 错误码,0表示成功 |
textSpam | JSON对象 | 结果信息 |
taskId | String | 区分不同次调用的唯一标识 |
language | String | 语种 |
startTime | Number | 时间戳,代表检测文本调用时间 |
endTime | Number | 时间戳,代表检测文本结果返回时间 |
textSpam:
字段名 | 类型 | 描述 |
---|---|---|
content | String | 检测完成后,如果含有敏感词,敏感词会变星,其他内容正常返回; |
result | Number | 0:通过,1:建议审核,2:不通过 |
tags | json数组 | 分类信息 |
wordList | 字符串数组 | 敏感词列表 |
tags:
字段名 | 类型 | 描述 |
---|---|---|
tag | Number | 一级分类信息代码 100:涉政;110:暴恐;120:违禁;130:色情;150:广告;160:辱骂;170:仇恨言论;180:未成年保护;190:敏感热点;410:违规表情;420:昵称;300:广告法;220:私人交易;900:其他;999:用户自定义类 |
tagName | String | 检测文本命中的一级类型名称 |
tagNameEn | String | 检测文本命中的一级类型名称(英文) |
level | Number | 分类级别,0:正常,1:疑似,2:异常 |
confidence | Number | 置信度,0~100之间的值,数值越大,表示检测文本为广告的可能性越大。(仅tag为150时,返回该字段) |
subTags | json数组 | 敏感信息的二级分类 |
subTags:
字段名 | 类型 | 描述 |
---|---|---|
subTag | Number | 二级分类详细编码请参考 分类编码对照表 |
subTagName | String | 检测文本命中的二级类型名称 |
subTagNameEn | String | 检测文本命中的二级类型名称(英文) |
wordList | 字符串数组 | 命中详情 |
- 响应示例
[
{
"errorCode": 0,
"textSpam": {
"content": "fuck",
"result": 0
},
"taskId": "367ef301-c627-4ae7-b23f-93d8219ade23",
"language": "en",
"startTime": 1699265265989,
"endTime": 1699265268714,
"id": "1"
},
{
"errorCode": 0,
"textSpam": {
"content": "caonima",
"result": 1,
"tags": [
{
"tag": 999,
"tagName": "用户自定义 ",
"level": 1,
"subTags": [
{
"subTag": 999001,
"subTagName": "用户自定义敏感词一类",
"wordList": [
"caonima"
]
}
]
}
],
"wordList": [
"caonima"
]
},
"taskId": "4967e9d1-f4ca-47de-aa52-6e6b0372ddcc",
"language": "Italian",
"companyId": "1",
"startTime": 1699265269127,
"endTime": 1699265269138,
"adRisk": 1,
"id": "2"
}
]
错误码
见文本检测错误码