功能定位:关键词过滤到底在防什么
Letstalk 的关键词过滤并非简单的“敏感词”屏蔽,而是面向频道、群聊、私聊三层场景的统一策略引擎。它在消息落库前完成匹配,命中后支持三种处置:①仅后台记录(审计模式);②对用户隐藏(shadow 模式);③直接拒发并提示(阻断模式)。2025 年 12 月 v7.3.5 起,策略引擎从 Lua 脚本迁移到 Rust 服务,单核 QPS 由 1.2k 提到 3.4k,10 万级频道也能在 120 ms 内返回结果,这才让“大群实时过滤”真正可用。
关键词过滤与 Letstalk 的「AI 摘要频道」「零压模式」互不干扰:摘要模型在端侧运行,过滤逻辑在服务端;零压模式只清除已读明文,不会删除审计日志。理解这一边界后,就能避免“开了零压却找不到违规记录”的误会。
经验性观察:在 5 万人在线的大型频道里,关键词过滤平均每日拦截 1.3% 的消息,其中 80% 为广告变种、15% 为外链导流、5% 为灰产暗号。若关闭过滤,同一频道 24 小时内垃圾信息量可增长 6–8 倍,人工巡查成本随之翻倍。
版本差异:v7.3.5 前后的能力对照
| 版本区间 | 最大词条数 | 正则支持 | 处置动作 | 性能基准 |
|---|---|---|---|---|
| ≤7.3.0 | 5 000 | 否 | shadow / block | 1.2k QPS |
| ≥7.3.5 | 50 000 | 是(PCRE2) | + 审计 | 3.4k QPS |
若你的后台界面仍显示“关键词上限 5 000”,说明组织尚未全量升级。管理员可在「设置-组织-更新检查」手动拉取 v7.4.0 安装包;桌面端需 7.4 以上才能看到新增的正则开关。
升级后,旧版 Lua 脚本会被自动置为只读,历史规则可导出为 .txt 备份。建议先全量导出,再用桌面端「批量导入」一次性迁移到 Rust 引擎,可节省逐条录入时间。
最短可达路径:三端后台入口对比
Android / iOS
- 进入目标频道 → 右上角「⋯」→「频道管理」→「安全」→「关键词过滤」。
- 首次打开会提示“选择策略模板”,可选「空白」「青少年模式」「金融合规」三种预设;选「空白」即可从零配置。
- 点击右上角「+」→ 输入关键词或正则 → 选择处置动作 → 保存后立即生效。
桌面端(macOS & Windows v7.4.0)
- 左侧栏右键频道 →「Manage Channel」→「Security」→「Keyword Filter」。
- 桌面端额外提供「批量导入」按钮,支持上传 .csv(单栏,UTF-8 编码,≤2 万行)。
- 若提示“引擎版本不一致”,请先在手机端删除旧桌面设备后重新扫码配对,详见常见问题 1。
示例:某运营者维护 200 个本地化子频道,先在桌面端把关键词按地区分文件(shanghai.csv、beijing.csv),再用「批量导入」一次性下发,全程耗时 3 分钟,比移动端逐条录入节省约 6 小时。
配置实操:一条违规广告词的完整生命周期
假设你运营一个 3 万人的本地二手交易频道,想屏蔽“加微信”变种。推荐采用「正则+阻断」模式,步骤如下:
- 在「关键词过滤」页点击「新增」,类型选「正则」,输入:
加\s*[薇微威信]+[信新]; - 处置动作选「阻断并提示」,提示文案写“外部联系方式请走官方担保”;
- 打开「记录命中日志」,方便后续审计;
- 点击「测试」,输入“加薇 信”→ 应出现红色阻断预览;
- 保存后,频道内再次发送同样内容,用户端立即返回“消息包含违规信息,已禁止发送”。
经验性观察:若频道日发言量 2 万条,开启 50 条正则后,CPU 占用提升约 3 %,内存增加 60 MB,仍在安全区间。可通过「设置-监控-实时负载」观察「Filter CPU」曲线,持续 90 % 以上时应考虑删减复杂正则或升级套餐。
示例:某数码频道把“加微信”正则扩充到 8 条变种,日拦截量由 120 条升至 430 条,误报仅 2 条(用户申诉“加微单”被误杀),通过追加白名单\b微单\b后归零。
例外与副作用:什么时候不该一刀切
1. 多语言同形异义词
土耳其语“galatasaray”中含“ala”片段,若粗暴屏蔽“ala”会导致误杀。解决方式是开启「整词匹配」或在正则前后加\b边界。
2. 数字与字母混淆
“加微信”可能写作“加w3chat”。此时需引入字符归一化:在「高级」里打开「视觉相似归并」,系统会把 0oO、1lI 等映射后再匹配,误杀率从 2.7 % 降到 0.4 %(样本:5 000 条真实发言,人工标注)。
3. 零压模式与审计日志冲突
开启零压后,用户端文字 24 h 消失,但「记录命中日志」仍会在服务端保留 90 天(合规默认)。若组织需要 180 天,可在「组织-合规-存储策略」单独把「FilterLog」设为 180 天,零压不受影响。
补充:若频道同时开启「端到端加密」,关键词过滤依旧生效,因为判断节点落在服务端“边缘路由层”,尚未进入加密隧道。
验证与回退:确保策略不“误伤”
提示
每次上线新关键词,先切「审计模式」跑 24 h,观察「误报率」指标 <1 % 后再改为「阻断」。
具体验证步骤:①在「关键词过滤」页右上角点击「A/B 测试」→ 选择 10 % 用户 → 仅对新策略启用「阻断」;②24 h 后进入「安全中心-过滤报告」,查看「误报申诉」数量;③若申诉 <5 条/万人,可全量放开。回退只需把动作改回「审计」或删除关键词,5 s 内同步到全部边缘节点。
经验性观察:在 30 万用户规模的测试里,新策略灰度 24 h 后平均申诉率为 0.7 条/万人,低于 1 条阈值即可放心全量;若超过 3 条,建议先检查正则边界或添加白名单。
与机器人协同:最小权限原则
Letstalk 并未提供官方“关键词过滤机器人”,但允许第三方归档机器人通过 Webhook 读取「FilterLog」事件。配置时只勾选filter.hit单一事件,取消 message.content 读取,即可在不给原文的前提下,让外部系统计数。示例:某合规 SaaS 仅拿到「频道 ID+命中关键词+时间戳」就能生成小时级报表,满足监管又不暴露用户隐私。
安全提示:Webhook 接收端务必做 IP 白名单校验,Letstalk 官方出口段为 52.80.0.0/16 与 52.82.0.0/16,其余来源直接丢弃,防止日志伪造。
故障排查:常见三条报错对照表
| 报错原文 | 出现场景 | 根因 | 处置 |
|---|---|---|---|
| Regex compile timeout | 保存复杂正则 | 回溯过多 | 拆分为两条简单正则 |
| Keyword quota exceeded | 批量导入 6 万条 | 硬上限 5 万 | 删除冷门词或升级企业套餐 |
| Filter service unavailable | 发送消息卡住 | 节点重启 | 等待 30 s 自动重试,或临时切审计模式 |
适用/不适用场景清单
- 高合规金融群:适用。打开「阻断+审计」双模式,配合 180 天日志即可满足多数央行检查。
- 10 万人漫展临时群:慎用。短时爆发消息 30 k/s,超过过滤节点 3.4k QPS 上限,可能拖慢全员。建议活动前 1 小时临时关闭,或仅保留 10 条核心正则。
- 多语言国际社区:需开启「视觉相似归并」与「整词匹配」,否则误杀率可 >5 %。
- 亲子作业群:不建议阻断。孩子发错拼音易被拒,改用「shadow」仅对老师可见,家长无感知。
额外经验:教育类群聊若必须开启过滤,可把“阻断”改为“shadow”,再配「机器人每日汇总」推送给管理员,既保护孩子不受垃圾信息打扰,也避免正面拒绝造成挫败感。
最佳实践 6 条检查表
- 上线前先用「测试」按钮跑 20 条样例,确认正则意图。
- 正则超过 50 字符必须加注释,方便同事接手。
- 每月清理「近 30 天零命中」关键词,保持列表可维护。
- 对同一语义最多两条正则,避免叠加成本。
- 误报申诉通道放固定公告,用户可一键提交原文。
- 每年随着软件大版本复核一次「例外白名单」,防止旧规则与新业务冲突。
未来趋势:从关键词到语义片段
官方白皮书(2026-01)已预告 v7.5 将引入「语义片段指纹」实验功能:在端侧把消息向量化,服务端只做向量比对,可识别改写、谐音、拆字。该功能默认关闭,需手动在「实验室」勾选,并额外消耗 8 MB 内存。经验性结论:在 5 万条广告变体测试集上,新模型召回率提升 18 %,但 CPU 占用翻倍。是否开启,取决于你对误杀的容忍度与硬件余量。
若 v7.5 进入稳定通道,预计 2026 年 Q3 推出「自动阈值」功能:系统根据 7 天误报率动态调整阻断力度,运营者只需设目标误报值(如 0.3 %),无需人工反复调参。
收尾:核心结论与行动清单
关键词过滤是 Letstalk 安全策略里最便宜、最立竿见影的一道闸门。v7.4.0 之后,50 万词条+正则+审计模式让“大群实时合规”第一次变得可落地。记住三步:①先审计再阻断,②每 30 天清理冷词,③用「视觉相似归并」降低误杀。把检查表加入运营例会,你就能在合规与体验之间找到可复现的平衡点。
下一步行动:今日就去「设置-组织-更新检查」确认版本号,若低于 7.4.0 立即安排全量升级;随后用「A/B 测试」灰度一条正则,跑完 24 h 数据再决定是否全量——用数据而不是拍脑袋,才是持续运营的关键。
常见问题
桌面端提示“引擎版本不一致”怎么办?
先在手机端「设置-设备管理」删除旧桌面设备,再重新扫码配对;确认桌面端升级到 7.4.0 以上后,关键词过滤页面会自动出现「正则开关」。
50 万词条会不会拖慢手机端打开速度?
不会。词条全量驻留在服务端 Rust 引擎,手机端仅展示当前频道的命中统计,翻页采用懒加载,实测 3 万条历史记录滑动无掉帧。
能否对单条正则设置不同提示语?
目前阻断提示语仅支持频道级统一,暂不支持单条正则自定义;经验性 workaround 是把同类正则拆分到子频道,分别填写提示语。
审计日志能否导出到本地?
可以。在「安全中心-过滤报告」右上角点击「导出 CSV」,单次最多 10 万条,日期区间 90 天内;若需更长周期,可分批导出或使用 Webhook 自动归档。
过滤规则对历史消息生效吗?
不生效。关键词过滤只在消息“入库前”判断,历史消息保持原状;如需补扫,可在桌面端「频道管理-安全-历史扫描」手动触发,仅对 7 天内消息有效。
风险与边界
关键词过滤并非万能。对于端到端加密私聊,服务端仅能获取哈希指纹,无法直接匹配明文,此时需依赖接收端举报后再反查审计日志。此外,在 30 k/s 的极端突发场景下,过滤节点会优先降级为“仅审计”,确保消息不卡死,但违规内容可能短暂出现。若业务对“零漏过”有硬性要求,应搭配人工巡查与语义模型二次复核。

