# 配置信息
例如:
APPID: xxxxxxxxxxxxxxx
TOKEN: xxxxxxxxxxxxxxx
EncodingAESKey: xxxxxxxxxxxxxxx
# 接口信息
文本敏感内容审核,自动审核是否包含违规内容,例如涉政、色情、辱骂
# 敏感内容检测接口(只签名不加密):
https://chatbot.weixin.qq.com/openapi/nlp/sensitive/TOKEN
接口类型:
POST请求
# 参数说明:
字段 | 类型 | 默认值 | 描述 |
---|---|---|---|
query | string | 使用JWT签名后的数据 |
query签名说明:
字段 | 类型 | 默认值 | 描述 |
---|---|---|---|
uid | string | 自动生成的随机标识 | 用户标识的唯一ID,比如:openid |
data | Object | {q: "输入文本", model(可选,模型选项): "cnn"(默认) 或 "bert" (效果更好但是速度较慢)} |
使用JSON Web Token的 HS256
算法对参数进行encode, 放入到query参数中
比如参数为
{
uid: "xjlsj33lasfaf", //能标识用户的唯一用户id,可以是openid
data: {
q: "楼主真垃圾,祝你早日死全家",
model: "cnnn"
}
}
使用 jwt 和 EncodingAESKey
对数据对象进行encode得到加密字符串
const signedData = jwths256.encode(EncodingAESKey, {
uid: "xjlsj33lasfaf", //能标识用户的唯一用户id,可以是openid
data: {
q: "楼主真垃圾,祝你早日死全家",
model: "cnnn"
}
}
)
# 调用开放平台语义接口
curl -XPOST -d "query=signedData" https://chatbot.weixin.qq.com/openapi/nlp/sensitive/TOKEN
Tips: 在 jsonwebtoken.io 网站上可以参考如下步骤手动生成signedData
# 返回结果
{
"error": null,
"result": [
[
"dirty_curse",
0.9999999900000001
],
[
"other",
9.9999999E-9
],
[
"dirty_politics",
0.0
],
[
"dirty_porno",
0.0
]
]
}
敏感内容类别说明:
类别 | 说明 |
---|---|
dirty_politics | 文本审核不通过,涉及政治敏感 |
dirty_porno | 文本审核不通过,涉及色情 |
dirty_curse | 文本审核不通过,涉及辱骂 |
other | 文本审核通过,不涉及政治、色情、辱骂 |
# 如何判断是否为敏感内容
dirty_politics
,dirty_porno
, dirty_curse
, other
4个字段相加为1,四个字段均为浮点类型数字
- 当
other == 1
为绝对安全, 但通过率较低 - 当
0.8 < other < 1
或0.9 < other < 1
为相对安全, 可根据业务使用情况自行控制