主播资料违禁词校验
1. 核心目的
在主播注册和编辑资料时拦截含违禁内容的昵称、简介,降低违规资料进入供给侧后的治理成本,同时不暴露具体命中词和规则。
PS:本期只做主播端校验;后台词库管理与批量导入(第 4、5 章)为二期预留,一期词条由技术直接写库。
2. 范围与生效版本
| 项目 | 规则 |
|---|
| 校验字段 | 昵称、简介 |
| 入口 | 1.所有主播注册流程中的昵称填写页;2.我的 > 编辑资料 |
| 历史资料 | 不做离线扫描;主播下次提交修改时才校验 |
| 客户端范围 | 目标新版本生效;旧版本保持现有格式校验和保存链路 |
| 词库生效 | 词条启用、停用、删除或批量导入完成后立即生效 |
3. 主播端资料提交
3.1 提交流程
1. 主播填写昵称、简介并点击提交。
2. 客户端先执行现有格式校验。格式不通过时直接提示,不请求服务端违禁词校验。
3. 格式通过后,资料保存服务在写库前调用违禁词校验服务,分别校验昵称和简介。
4. 两个字段均通过时,才写入资料并返回保存成功。
5. 任一字段被拦截或校验服务不可用时,本次资料不写库,页面保留原输入内容。
提交期间按钮置为加载中且不可重复点击;网络中断、请求超时或应用切前后台后,客户端以服务端最终返回为准,不本地假设保存成功。
3.2 返回与前端展示
| 校验结果 | 是否写入资料 | 客户端处理 |
|---|
| 通过 | 是 | 保存成功 |
| 拦截 | 否 | 标记被拦截字段,展示 Nickname or bio contains prohibited content. Please try again. |
| 校验服务不可用 | 否 | 展示通用重试提示,保留输入内容 |
接口只返回被拦截的字段标识(昵称、简介)供客户端定位错误态,不返回命中词、词条分类、词库版本或匹配明细。若昵称和简介均命中,只返回统一拦截提示;客户端可在对应字段下展示通用错误态,但不显示具体原因。
3.3 匹配规则
校验入口为主播注册资料填写页和我的 > 编辑资料;注册流程仅校验昵称,我的 > 编辑资料分别校验昵称和简介。
第一版仅统一忽略大小写和首尾空格;不做其他文本标准化。
匹配方式为字面精确包含匹配。词条作为连续原文字符序列完整出现在字段内容中即命中,不要求字段内容与词条完全相等。
例如,词条为 telegram 时,Telegram、my telegram 均命中;tele gram、tele 1 gram、te1egr4m、telegrm 均不命中。
不做全半角归一、空格或符号折叠、数字替换、错拼容错、拼音、谐音、同义词或语义扩展匹配;不使用分词、词根或词边界推断。
去除首尾空格后为单字符的词条不允许配置或导入,避免包含匹配造成大面积误拦截。
同一字段命中多个词条时,资料保存仍只返回“拦截”;不向主播端返回命中数量或具体词条。
3.4 服务端校验与一致性
资料保存服务必须在同一提交链路内先校验、后写库;任意字段不通过或校验异常均不得部分写入。
同一主播资料并发提交时,只允许一个请求完成写入;其余请求返回该次最终结果,避免旧输入覆盖新输入。
校验超时、异常或服务不可用时,资料不保存,提示重试。
7. 数据埋点
仅新增一个服务端埋点:主播资料违禁词校验结果。
| 项目 | 规则 |
|---|
| 上报方 | 服务端 |
| 上报时机 | 违禁词校验完成并返回校验结果时 |
| 上报内容 | 校验结果 |
| 校验结果取值 | 通过;拦截 |
不上传昵称、简介原文、命中词或其他校验细节。