反垃圾(内容审核)
更新时间: 2024/05/27 11:30:06
目前云信支持三类内容反垃圾功能,分别为客户端本地反垃圾、安全通和第三方反垃圾。您可按需开通和配置上述反垃圾功能,满足您的业务内容安全审核需求,避免内容违规导致的业务风险。
客户端本地反垃圾
功能介绍
客户端本地反垃圾是指在发送消息前,由客户端先对内容进行审查,并根据审查结果,决定是否投递、替换消息。
客户端本地反垃圾可用于对单聊、群聊和聊天室的文本消息进行内容安全检测。如需检测图片、音视频等其他类型的消息,请使用安全通。
实现流程
准备阶段
-
在控制台首页应用管理中选择应用,然后单击 IM 即时通讯下的功能配置按钮进入功能配置页。
-
顶部选择全局功能页签,开通客户端反垃圾功能。
-
阅读并确认信息后,单击确认。
-
开通后,单击子功能配置配置反垃圾词库。
替换/拦截规则 说明 本地拦截库 客户端检测到文本消息存在敏感词汇后,直接拦截违规文本消息。发送者将收到对应的警告或提示,一般对应等级最高的违规,如消息存在涉政、反动内容。 本地替换库 客户端将检测到的敏感词汇替换成指定的文本,再将替换后的消息发送给服务器。 服务端拦截库 检测到敏感词汇后,云信服务器拦截涉及的违规消息。违规消息仅对发送者可见,接收方无法收到违规消息。一般对应消息存在广告等违规场景。 -
完成配置后单击发布词库将反垃圾词库下发到客户端 SDK。
运行阶段
步骤1:获取反垃圾词库
初始化完成后,调用 getClientAntispamLexicon
方法获取反垃圾词库。
初始化相关说明请参见初始化。
调用示例如下:
javascript // 获取反垃圾词库
nim.getClientAntispamLexicon({
done: function(error, file) {
console.log(error, file)
}
});
示例中的回调函数第一个参数表示该方法是否存在错误,第二个参数表示词库对象,词库加载后会自动保存在内存中,您可以手动传入或者直接使用。
步骤2:审查待发送内容
调用filterClientAntispam
方法判断某文本消息是否存在违规内容。
示例代码如下:
/**
* 在发送文本前,调用 filterClientAntiSpam 检查文本,并根据结果决定如何发送
*/
function sendTextAfterAntiSpam(option) {
// 检查文本
const ret = nim.filterClientAntispam({
content: option.text
})
switch (ret.type) {
case 0:
// 未命中词库,可以安全发送
nim.sendText(option)
break
case 1:
// 命中本地替换词库。替换后文本为 ret.result
option.text = ret.result
nim.sendText(option)
break
case 2:
// 命中拦截词库。请勿发送文本
showHint('此消息无法发送')
break
case 3:
// 命中服务端拦截库。建议发送消息,并设置 clientAntiSpam: true。发送后,消息会在本地显示发送成功,但实际上不会发送给其它用户
// 服务端拦截库适合于防止灌水
nim.sendText({
...option,
clientAntiSpam: true
})
break
}
}
安全通
功能介绍
安全通(又称“易盾反垃圾”)是网易云信提供的内容安全增值业务,为您提供全方位的内容安全检测服务。开通安全通功能并配置安全通检测规则后,指定类型的消息都会先经由安全通进行内容安全检测,之后才会转发给接收端的应用用户。安全通目前支持单聊、群聊、聊天室的文本消息、图片消息、自定义消息以及用户头像和用户资料等类型的内容安全检测。
更多 IM 安全通的功能介绍,请参见安全通概述。
技术原理
若您需要云信服务器将审核结果抄送到您的应用服务器,即上图中的流程 6,请先开通易盾异步反垃圾抄送。
实现流程
准备阶段
前往云信控制台开通安全通。
运行阶段
开通安全通服务后,调用相关方法发送消息时,传入下列参数可实现消息内容过安全通审核。匹配消息体命中敏感词,会返回审核结果yidunAntiSpamRes
。yidunAntiSpamRes
为 JSON 字符串格式,请自行解析或者反转成 JSON 对象使用。
- 内容审核入参说明
参数 |
是否必传 |
类型 |
说明 |
---|---|---|---|
antiSpamUsingYidun | 否 | boolean | 是否使用安全通对当前消息进行内容安全检测,默认 true |
yidunEnable | 否 | boolean | 是否需要对自定义消息的指定内容(antiSpamContent)进行安全检测,默认 false |
antiSpamContent | 否 | String | 自定义消息中需额外进行审核的内容,yidunEnable 开启后才能配置该参数,且仅对自定义消息有效。必须传递 JSON 格式字符串,长度不超过 5,000 字节 格式如下:{"type": 1, "data": "custom content"} 字段说明:
|
antiSpamBusinessId | 否 | String | 安全通自定义业务 ID,传入此参数则消息通过安全通自定义业务进行安全审核;如需新增安全通自定义业务,请联系商务经理进行相关配置,然后前往云信控制台的安全通配置界面获取该业务 ID。 |
- 内容审核结果 yidunAntiSpamRes 字段说明
名称 | 类型 | 说明 |
---|---|---|
code | Integer | 状态码:
|
type | String | 内容审核类型
|
version | String | 易盾内容审核的接口版本 |
taskId | String | 审核任务的 ID |
suggestion | Integer | 建议处理方式
|
status | Integer | 内容审核请求结果 |
ext | String | 内容审核结果,对应易盾的 result 字段,result 字段详情参见易盾文档(注:本链接仅以“单次同步文本检测的 result 字段说明”为例) |
- 示例代码
jsnim.sendText({
// ... 省略其他字段
yidunEnable: true,
antiSpamContent: JSON.stringify({
"type": 1, // 1:文本,2:图片,3视频
"data": "" // 文本内容or图片地址or视频地址
}),
})
参考文档
易盾反垃圾文档: |
考虑到易盾反垃圾相关字段后续的扩展性(一般为新增属性),请注意做好解析兼容。具体请参见易盾的反垃圾含圈组版用户可扩展参数。
第三方反垃圾
如果您的应用已接入第三方内容安全审核服务(第三方反垃圾服务),您可通过云信服务端的第三方回调服务来实现发送方发送消息后先过第三方内容安全审核服务再判断是否投递至接收方。