敏感词检测
一、接入前说明
1.1 功能简介
敏感词检测服务(以下简称“本服务”)面向游戏开发者提供统一的文本内容安全检测能力。开发者将用户产生的文本内容(如昵称、聊天、弹幕、评论、搜索词等)提交至本服务,服务将基于后台敏感词词库进行匹配,返回检测结论(放行 / 人工审核 / 拦截)及具体命中详情,帮助业务快速完成内容合规处理。
1.2 词库说明
后台词库每日定时更新,当前词库涵盖常规业务违禁词,直播/弹幕类通用违禁词,常规搜索场景违禁词。
1.3 敏感词分级(level)
| level | 风险等级 | 建议处置 |
|---|---|---|
| 1 | 严重违规 | 建议直接拦截 |
| 2 | 违规 | 建议直接拦截 |
| 3 | 疑似违规 | 建议转人工审核,不可直接过滤 |
| 4 | 疑似违规 | 建议转人工审核,不可直接过滤 |
二、接口定义
接口地址
GET https://mp-user.api.mgtv.com/api/v1/sensitiveWord/check
功能说明
用于检测用户输入的文本是否命中敏感词。根据业务场景选择不同的词库进行查询(即业务场景 scene):
| textType | 词库 |
|---|---|
| default | 常规业务词库 |
| live | 全平台直播弹幕通用词库 |
| search | 搜索业务词库 |
说明:
textType不传或传非法值时,默认使用default常规业务词库。
请求参数
| 参数名 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| text | string | 是 | 待检测的文本内容 |
| textType | string | 否 | 词库类型(即业务场景 scene),取值:default / live / search,详见上方功能说明 |
请求示例
curl -X GET 'https://mp-user.api.mgtv.com/api/v1/sensitiveWord/check?text=测试文本&textType=live'
响应结果
公共字段
| 字段 | 类型 | 说明 |
|---|---|---|
| code | number | 状态码,固定为 200 表示 HTTP 请求成功 |
| msg | string | 状态描述 |
| data | object | 业务数据,详见下方 data |
data
| 字段 | 类型 | 说明 |
|---|---|---|
| code | number | 业务码,固定为 0 |
| action | string | 处置动作:pass(放行)/ review(人工审核)/ block(拦截)。只要存在任一 1 或 2 级命中,action 即为 block |
| hits | array | 命中的敏感词列表,未命中时为空数组,返回全部命中的词及对应分级 |
data.hits[]
| 字段 | 类型 | 说明 |
|---|---|---|
| word | string | 命中的敏感词 |
| level | number | 敏感词分级,取值 1~4,含义见 1.3 敏感词分级 |
返回示例
命中敏感词,处置动作为 review(需人工审核):
{
"code": 200,
"msg": "OK",
"data": {
"code": 0,
"action": "review",
"hits": [
{
"word": "嘴很欠",
"level": 3
}
]
}
}
未命中敏感词,处置动作为 pass(放行):
{
"code": 200,
"msg": "OK",
"data": {
"code": 0,
"action": "pass",
"hits": []
}
}
命中多个敏感词,处置动作为 review:
{
"code": 200,
"msg": "OK",
"data": {
"code": 0,
"action": "review",
"hits": [
{
"word": "蜈蚣精",
"level": 3
},
{
"word": "111",
"level": 3
},
{
"word": "222",
"level": 3
}
]
}
}
命中敏感词,处置动作为 block(拦截):
{
"code": 200,
"msg": "OK",
"data": {
"code": 0,
"action": "block",
"hits": [
{
"word": "假",
"level": 2
},
{
"word": "假婆婆想去母留子,我把家搅散了",
"level": 3
}
]
}
}
状态码
| 状态码 | 说明 |
|---|---|
| 200 | 请求成功 |
| 其他 | 请求失败,详见 msg |
四、接入步骤
在开放平台创建应用,并在开放功能中申请敏感词检测服务开放能力。通过审核后方可调用此能力; 阅读本档,按接口定义发起调用; 根据接口返回的 action 结果自行处理业务逻辑:
pass→ 无风险内容,可正常展示内容;review→ 风险内容,自行决策是否发布/展示;block→ 明确风险内容,请勿发布/展示;
五、注意事项
- 建议异步/旁路调用:内容先入队列再检测的场景(如弹幕),可根据
action决定是否下发,避免阻塞主流程; - level 3/4 不可直接过滤:
review仅表示疑似违规,需人工判断,避免误伤正常内容; - 词库每日更新:词库由平台侧维护并每日定时同步,开发者无需本地缓存词库,以接口实时返回为准;
- 调用频率:默认 QPS 限制请联系运营确认,超限将返回 ???;
- 数据合规:请勿提交与内容安全检测无关的数据,用户文本传输请走 HTTPS。
六、常见问题
Q1:同一文本命中多个词,hits 会全部返回吗? 会,hits 返回全部命中的词及对应分级。
Q2:命中同时包含 1 级和 3 级词,action 是什么? 只要存在任一 1 或 2 级命中,action 即为 block,hits 中仍会包含 3 级命中词。
Q3:scene 会影响检测结果吗? 除指定 scene 外,目前绝大部分 scene 均会查询全部词库(如搜索场景会启用搜索业务词库),请按实际业务场景传参,以获得最准确的检测结果。
Q4:接口超时如何处理? 建议超时时间设置为 1 秒,超时时可按业务策略默认放行并异步重试,或默认拦截(视业务风险偏好而定)。
如有接入问题,请联系开放平台技术支持。