配置信息

例如:

APPID: xxxxxxxxxxxxxxx

TOKEN: xxxxxxxxxxxxxxx

EncodingAESKey: xxxxxxxxxxxxxxx

接口信息

文本敏感内容审核,自动审核是否包含违规内容,例如涉政、色情、辱骂

敏感内容检测接口(只签名不加密):

https://openai.weixin.qq.com/openapi/nlp/sensitive/TOKEN

接口类型:

POST请求

参数说明:

字段 类型 默认值 描述
query string 使用JWT签名后的数据

query签名说明:

字段 类型 默认值 描述
uid string 自动生成的随机标识 用户标识的唯一ID,比如:openid
data Object {q: "输入文本", model(可选,模型选项): "cnn"(默认) 或 "bert" (效果更好但是速度较慢)}

使用JSON Web TokenHS256 算法对参数进行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://openai.weixin.qq.com/openapi/nlp/sensitive/TOKEN

https://www.jsonwebtoken.io/

Tips: 在 jsonwebtoken.io 网站上可以参考如下步骤手动生成signedData 手动生成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,四个字段均为浮点类型数字

  1. other == 1 为绝对安全, 但通过率较低
  2. 0.8 < other < 10.9 < other < 1 为相对安全, 可根据业务使用情况自行控制