即时通信 IM 支持内容审核(反垃圾信息)功能,可针对不安全、不适宜的内容进行自动识别、处理,为您的产品体验和业务安全保驾护航。已支持以下两种内容审核方式:
云端审核功能:在服务端检测由单聊、群聊、资料场景中产生的文本、图片、音频、视频内容,支持针对不同场景的不同内容分别配置审核策略,并对识别出的不安全内容进行拦截。
本地审核功能:在客户端本地检测由即时通信 SDK 发送的文本内容,支持对已配置的敏感词进行拦截或者替换处理。此功能通过在 IM 开启服务并配置词库的方式实现。
云端审核功能
功能介绍
云端审核功能,是一款在云端(服务端)进行内容智能识别和拦截的服务。
支持对文本、图片内容同步审核,对音频、视频内容异步审核;
支持分别针对单聊、群聊、资料三大场景中产生的不同类型内容进行策略配置;
支持配置特定终端用户产生/接收的消息不送审,支持对返回审核结果进行配置;
支持查看审核用量抵扣明细、审核结果明细、审核识别统计等数据;
能够精准识别可能令人反感、不安全或不适宜的内容,有效降低内容违规风险与有害信息识别成本。
接入流程
步骤1:购买云端审核资源包
注意


步骤2:查看默认场景及策略配置
注意
开通服务后,默认为您开启图文审核场景,并配置默认审核策略(默认识别并拦截包含高风险敏感事件/人物、高风险色情/辱骂/暴恐/违禁等内容,如果您需要更严格/更宽松的审核策略,或者您需要增加中、低风险内容审核策略,请参见 审核策略配置 进行操作),您可通过点击对应模块的编辑按钮,分别更改审核场景和审核策略。
步骤3:自定义审核配置
1. 审核场景配置
打开云端审核服务开关后,默认为您开启了单聊的文本和图片审核、群聊的文本和图片审核、用户资料/群资料/群成员资料/关系链资料的文本审核。如果需要开启音频/视频审核,或者关闭图文审核开关,请点击对应场景模块右上角的管理配置。

在弹窗中勾选/取消勾选对应审核项,单击确定即可。



注意
单聊、群聊场景下,将音视/视频异步审核开启后,所有音频/视频都将正常送审并计费,但仅对存储在腾讯云即时通信 IM 的内容生效审核结果。如有自定义存储的音频/视频内容,请谨慎开启!如需审核自定义存储的音频/视频内容,请通过监听音频/视频审核结果的方式,进行拦载或撒回操作,详情请参见 返回审核结果。
自定义消息检测
开启云端审核后,单聊、群聊的自定义消息默认当作文本送审。如果自定义消息结构为json,只希望送审自定义消息的部分内容,可以参考如下方式。
{"To_Account":"lumotuwe5","MsgRandom":121212,"MsgBody":[{"MsgType":"TIMCustomElem","MsgContent":{"Data":"{\\"key1\\":\\"value1\\",\\"message\\":\\"hello\\",\\"IMAuditContentType\\":\\"Text\\",\\"IMAuditContent\\":\\"hello\\"}","Desc":"hello","Ext":"www.qq.com","Sound":"dingdong.aiff"}}]}
参数说明:
字段 | 类型 | 说明 |
IMAuditContentType | String | 指定送审的内容类型:Text/Image/Audio/Video |
IMAuditContent | String | 指定送审的内容,如果类型为 Image/Audio/Video,该字段填文件 URL |
说明
指定的字段,需要放置在自定义消息 json 结构体的第一层kv元素里面。当送审的内容为音视频的文件,需要开启审核结果回调,App 后台收到违规的审核结果通知,去封禁或者撤回违规消息。
2. 审核策略配置
每个审核场景及内容类型均已配置默认审核策略,默认识别并拦截包含高风险敏感事件/人物、高风险色情/辱骂/暴恐/违禁等内容,如果您需要更严格/更宽松的审核策略,或者您需要增加中、低风险内容审核策略,请按照下方指引操作。
如果需要编辑审核策略,请点击对应场景及内容类型右侧的编辑策略。


文本/图片策略配置:可以修改通用识别策略配置与自定义库信息。
通用识别策略配置:勾选需要识别的风险类型
自定义库信息:勾选需要关联的自定义词库(最多可支持设置5个自定义词库)


音频策略配置:可以修改通用识别策略配置、截帧策略配置与自定义库信息。
通用识别策略配置:勾选需要识别的风险类型
截帧策略配置:音频切片时长配置,支持滑动设定或填写整数,范围[1,60]
自定义库信息:勾选需要关联的自定义词库(最多可支持设置5个自定义词库)


视频策略配置:可以修改通用识别策略配置、截帧策略配置与自定义库信息。
通用识别策略配置:勾选需要识别的风险类型,包括对图片和音频的识别
截帧策略配置:审核内容配置,支持仅审核视频画面、仅审核音频和全部审核;图片截帧间隔,支持滑动设定或填写整数,范围[1,60];音频切片时长配置,支持滑动设定或填写整数,范围[1,60]
自定义库信息:勾选需要关联的自定义词库(最多可支持设置5个自定义词库)


复制策略:图文音视的编辑策略时,单击复制策略,可以将本策略复制到下拉选择的其他场景。


3. 终端用户审核白名单配置
如果您不需要审核特定终端用户发送/接收的消息内容,您可以通过终端用户审核白名单模块进行配置。具体操作如下:
单击终端用户审核白名单配置模块的添加。

在弹窗中选择审核方式,并填入终端用户 ID,单击确定。
支持对已添加的终端用户 ID 编辑不送审方式、删除/批量删除添加白名单记录。

步骤4:审核结果配置
1. 返回审核结果
审核结果可以通过配置基础回调的方式,将结果转发给 App 后台。具体操作如下:
返回审核结果开关默认关闭,如果需要打开,点击审核结果配置模块右上角的编辑,打开返回审核结果开关,单击确定。

审核结果将使用后回调发送至您在基础配置中配置的 URL 地址,如果您在开启返回审核结果开关前未配置基础回调 URL,请在打开开关时弹出的弹窗中填写基础回调 URL,详情请参见 基础回调配置。

开关开启后,内容回调的结果将通过基础回调抄送到 App 后台,支持拦截、所有结果的配置选项。


注意
App 后台在收到回调请求之后,务必校验请求 URL 中的参数 SDKAppID 是否是自己的 SDKAppID。
接口说明
请求 URL 示例
以下示例中 App 配置的回调 URL 为
https://www.example.com
。
示例:https://www.example.com?SdkAppid=$SDKAppID&CallbackCommand=$CallbackCommand&contenttype=json
请求参数说明
参数 | 说明 |
https | 请求协议为 HTTPS,请求方式为 POST |
www.example.com | 回调 URL |
SdkAppid | 创建应用时在即时通信 IM 控制台分配的 SDKAppID |
CallbackCommand | 固定为:ContentCallback.ResultNotify |
contenttype | 请求包体固定为 JSON |
请求包示例
{"Scene":"C2C","SdkAppId":1234567890,"From_Account":"jared","ContactItem":{"ContactType":1,"To_Account":"Jonh"},"ContentType":"Text","TextContent":["aaabbbccc","1234567"],"MsgID":"1434460578_4137340972_1661156666","CtxcbResult":1,"CtxcbRequestId":"241ed925-4c56-4357-95dd-1e6e7798xxxx","CtxcbKeywords":["aaabbbccc","1234567"],"CtxcbSuggestion":"Review","CtxcbLabel":"Sexy"}
请求包字段说明
字段 | 类型 | 说明 |
Scene | String | 送审场景: 单聊 = C2C。 单聊自定义消息 = C2CCustom。 群聊 = Group。 群聊自定义消息 = GroupCustom。 群资料 = GroupInfo。 群成员资料 = GroupMemberInfo。 关系链 = RelationChain。 用户资料 = UserInfo。 |
From_Account | String | 送审内容的发起者 UserID |
ContactItem | Object | 消息送审时,表示消息接收对象 |
ContactType | Integer | 消息送审时,区分接受对象为群组或单聊。 ContactType = 1表示单聊。 ContactType = 2表示群聊。 |
To_Account | String | ContactType = 1时,表示消息接收方 UserID |
ToGroupId | String | ContactType = 2时,表示消息接收方 GroupID |
ContentType | String | 表示送审的内容类型: 文本 = Text。 图片 = Image。 音频 = Audio。 视频 = Video。 |
TextContent | String | 当 ContentType 为 Text 时,表示送审的文本内容 |
FileURL | String | 当 ContentType 为 Image/Audio/Video 时,表示送审的文件 URL |
MsgID | String | 单聊送审,MsgID 为单聊消息 MsgKey;群聊送审,MsgID 为群聊消息 MsgSeq。 |
CtxcbResult | Integer | IM 处置策略: 1:表示拦截 0:表示放过 |
CtxcbRequestId | String | 第三方内容服务审核标示 |
CtxcbKeywords | Array | 文本命中的敏感词 |
CtxcbSuggestion | Array | 第三方内容审核服务审核建议:Block/Review/Normal |
CtxcbLabel | String | 审核命中的违规分类: Normal/Illegal/Abuse/Polity/Ad/Porn/Sexy/Terror/Composite |
应答包示例
{"ActionStatus": "OK","ErrorInfo": "","ErrorCode": 0 // 0为回调成功,1为回调出错}
应答包字段说明
字段 | 类型 | 属性 | 说明 |
ActionStatus | String | 必填 | 请求处理的结果: OK:表示处理成功 FAIL:表示失败 |
ErrorCode | Integer | 必填 | 错误码 |
2. 拦截策略设置
默认仅拦截被识别为“违规”的内容,如果您需要“拦截疑似和违规”,或者设置均不拦截,请单击编辑进行操作。单击确认,2分钟后生效。
注意
拦截策略与送审策略互不影响。
3. 下发拦截错误码
针对图文同步审核,默认下发拦截错误码,即消息发送方会收到消息被拦截的错误码提示。
如果需要发送方对被消息拦截无感知,即发送方不需要收到消息下发失败的提示,可通过关闭“下发拦截错误码”开关实现。具体操作如下:
单击审核结果配置模块右上角的编辑,关闭“下发拦截错误码”开关,单击确定。
注意
步骤5:查看审核明细和抵扣明细
1. 查看审核明细
在审核用量中可查看今日审核用量数据。


注意
用量明细数据仅供参考,审核用量的计费数据以抵扣明细数据为准。
单击模块右上角的查看审核明细,可查看历史审核的明细数据。

单击模块右上角的查看识别统计,可查看历史审核的统计数据。



2. 查看抵扣明细
单击按钮查看抵扣明细。

支持筛选、查看特定日期内审核产生用量的具体抵扣数据(每小时更新)。



本地审核功能
功能介绍
本地审核功能,全称“客户端本地文本审核”,通过在客户端本地完成敏感词的拦截或者替换,实现过滤敏感词的效果。可用于拦截/替换在发送文本消息、修改昵称/备注/群公告等操作中产生的、不希望被发送的文本敏感词。
注意
该功能仅支持终端 SDK 增强版 6.8 、Web SDK 2.24.0 及以上版本。
本地审核词库是由开发者在控制台配置的,分为拦截词库和替换词库,支持关键词和正则表达式两种检测方式,IMSDK 在登录后会自动获取词库。
IMSDK 在发送文本内容时,如果文本内容命中了拦截词库的敏感词,则该文本不会发送至服务端;如果命中了替换词库的敏感词,则会把文本中的敏感词替换成控制台配置的指定字符再发送至服务端。
接入流程
步骤1:开通本地审核功能
步骤2:配置词库
注意
词库分为拦截词词库和替换词词库,两个词库总上限10000词,其中正则表达式不超过200个。
1. 添加拦截词词条:单击 添加拦截词 后,选择需要添加的词条格式。


关键词格式的词条,可以通过手动输入或者文件上传的方式添加。手动输入,单次最多添加50个词;文件上传仅支持 .txt 格式的文本,不限制单次添加个数,但添加词条总数应小于词库上限,否则添加失败。
正则表达式格式的词条,仅支持手动输入。
注意
因正则表达式对性能影响较高,请您务必在添加正则表达式前进行耗时测试,避免影响您业务可用性。

2. 添加替换词词条:单击 添加替换词 后,选择需要添加的词条格式。


关键词格式的词条,可以通过手动输入或者文件上传的方式添加。手动输入,单次最多添加50个词;文件上传仅支持 .txt 格式的文本,不限制单次添加个数,但添加词条总数应小于词库上限,否则添加失败。正则表达式格式的词条,仅支持手动输入。
注意
因正则表达式对性能影响较高,请您务必在添加正则表达式前进行耗时测试,避免影响您业务可用性。
同时,输入需要全部替换为的内容,默认是“*”,支持自定义内容。

3. 可根据业务实际需要,搜索、逐个删除、批量删除拦截词词库或者替换词词库中的词条。
步骤3:选择审核场景
默认为您全部勾选审核场景,您可通过单击编辑,在审核场景配置弹窗中操作勾选/取消勾选并确定。
步骤4:IMSDK 更新词库
词库添加完成之后,IMSDK 需要重新登录才能更新词库。
以发送文本消息为例:
1. 当内容中包含拦截词库中的敏感词时,消息发送失败,终端 SDK 回调的错误码为 7015,Web SDK 回调的错误码为 3123;
2. 当内容中包含替换词库中的敏感词时,敏感词会被替换成控制台配置的指定字符,再将替换后的内容发送至服务端。
常见问题
怎么控制通过调用 REST API 接口发送的单聊/群聊消息不送审?
根据您的业务需要,在单聊 REST API 接口或者群聊 REST API 接口的 SendMsgControl 字段中指定 “NoMsgCheck” 控制字段,即可。
怎么控制通过调用终端接口发送的单聊/群聊消息不送审?
根据您的业务需要, Android / iOS & Mac 端在创建消息的时候设置消息的
isExcludedFromContentModeration
控制字段、 Web&小程序&uniapp 端在发送消息时将 messageControlInfo
的 excludedFromContentModeration
控制字段设置为 true
即可。如果发送的图片、音频或者视频消息内容在异步审核时被拦截,有什么标记?
文本和图片默认同步审核,音频和视频默认异步审核,当图片审核超过2秒时也会走异步审核。Android&iOS&Windows&Mac 端被拦截后会触发
onRecvMessageModified
(Android&iOS&Mac&Windows)回调,回调里的 message 对象hasRiskContent
字段值为true
;Web&小程序&uniapp 端被拦截后会触发 MESSAGE_MODIFIED 回调,回调里的message
对象该字段值为true
。如果做信息导入,哪些内容会被送审?
您导入的内容都会默认送审,包括单聊/群聊消息、账号、群资料、群成员资料。
怎么能快速为同一个 sdkappid 的不同内容配置相同的审核策略?
图文音视的编辑策略时,单击策略配置下方的复制策略,可以将本策略复制到下拉选择的其他场景。


内容回调和云端审核有什么区别?
内容回调配置方案,需要客户分别在IM和内容安全控制台自行完成配置,针对不同类型内容只能生效同一种审核策略,配置流程较长、审核策略配置不够灵活。并且,内容回调服务将于23年下线(下线时间未定,会提前通知),建议您直接接入云端审核功能。
云端审核方案,支持在 IM 控制台一键开通审核服务,并且提供了默认审核策略(默认识别并拦截包含高风险敏感事件/人物、高风险色情/辱骂/暴恐/违禁等内容,如果您需要更严格/更宽松的审核策略,或者您需要增加中、低风险内容审核策略,请参见 审核策略配置 进行操作)。同时支持针对单聊、群聊、资料三大场景中产生的不同类型内容分别进行策略配置。
本地审核和云端审核有什么区别?
本地审核,是在客户端本地进行的文本审核服务,不提供默认审核词库,支持自定义敏感词,支持进行拦截或替换。
云端审核,是在服务端进行的文本、图片、音频、视频审核服务,提供默认审核策略且支持修改,支持对已识别的不安全内容进行拦截操作。
两种审核功能可以同时开通使用。
接入云端审核,相比接入其他第三方内容安全服务有什么优势?
如果接入的是其他第三方内容安全服务,就需要通过调用 IM 服务端提供的 第三方回调 来自行实现内容审核,内容流转如下图所示,通过第三方回调将内容发送至第三方内容审核服务,后再判断是否投递至接收方,整个过程流程较长且容易有时延。
如果接入云端审核,则云端审核发生在消息前回调之前,且不用经历下图所示的红框步骤,大大提升了用户使用体验。

