配置文件
配置本地匹配、MySQL、百度审核与在线学习
配置文件
Redact 的配置位于 plugins/Redact/,按用途拆分为四个文件:
| 文件 | 用途 |
|---|---|
config.yml | 子服标识、文本净化和本地匹配规则 |
database.yml | MySQL 连接与多服同步 |
baidu.yml | 百度内容审核、请求队列和在线学习 |
words.yml | 本地词库及分类 |
words.yml 的写法见本地词库。
基础与匹配配置
config.yml 的默认内容如下:
| 配置 | 默认值 | 说明 |
|---|---|---|
server-id | server-1 | 当前子服标识,长度为 1~64 个字符 |
sanitization.replacement | 喵喵喵 | 净化 API 没有指定替换文本时使用的内容 |
matcher.case-sensitive | false | 是否区分英文大小写;关闭时也会把全角 ASCII 转为半角 |
matcher.ignore-separators | true | 是否忽略空白和 Unicode 标点 |
matcher.max-reported-hits | 10000 | 详细结果最多返回的命中数,范围 1~1000000 |
matcher.delta-rebuild-threshold | 512 | 增量学习词达到多少后合并重建主词库,范围 1~100000 |
matcher.exact-cache-size | 250000 | 内存中保留的已确认云审核内容上限,范围 1~5000000 |
群组服中的每个节点应使用不同的 server-id。连接同一数据库的节点应保持相同的 case-sensitive 和 ignore-separators,否则同一内容在不同节点上的归一化结果可能不一致。
max-reported-hits 只限制 check 返回的详细命中列表。布尔检测和文本净化不受这个数量限制。
MySQL
database.yml 的默认内容如下:
| 配置 | 默认值 | 说明 |
|---|---|---|
enabled | true | 是否启用共享词库和云审核结果持久化 |
sync-interval-seconds | 30 | 子服增量同步周期,最小 5 秒 |
mysql.host | 127.0.0.1 | MySQL 地址 |
mysql.port | 3306 | 端口,范围 1~65535 |
mysql.database | arcartx | 数据库名 |
mysql.username | arcartx | 数据库账号 |
mysql.password | arcartx | 数据库密码 |
mysql.parameters | 见上方示例 | JDBC 参数,不要添加开头的 ? |
mysql.pool-size | 4 | Hikari 连接池上限,范围 1~32 |
mysql.connection-timeout-ms | 5000 | 获取连接的超时,最小 250 毫秒 |
仅使用单服 YAML 词库时,可以在 database.yml 中设置 enabled: false。启用百度审核时,数据库必须同时启用。
百度内容审核
baidu.yml 的默认内容如下:
| 配置 | 默认值 | 说明 |
|---|---|---|
enabled | false | 是否允许 Redact 请求百度审核 |
api-key | 空 | 百度应用 API Key |
secret-key | 空 | 百度应用 Secret Key |
strategy-id | 0 | 审核策略 ID;0 使用百度控制台默认策略 |
connect-timeout-ms | 3000 | HTTP 连接超时,最小 250 毫秒 |
request-timeout-ms | 8000 | 单请求超时,最小 500 毫秒 |
max-request-bytes | 19000 | 单分片 UTF-8 字节上限,范围 1024~20000 |
max-chunks | 16 | 单次审核最多分片数,范围 1~1024 |
chunk-overlap-codepoints | 64 | 相邻分片重叠的 Unicode 码点数,范围 0~4096 |
worker-threads | 4 | HTTP、JDBC 和后台任务线程数,范围 1~32 |
queue-capacity | 256 | 等待执行的云审核任务容量,范围 1~100000 |
fail-closed | true | 云审核服务异常时是否按违规处理 |
record-retention-days | 7 | 云命中原文和对应记录的保留天数,范围 1~90 |
cleanup-interval-minutes | 30 | 过期云命中记录的清理周期,范围 5~1440 分钟 |
learning.min-term-codepoints | 2 | 允许写入共享词库的最短云命中片段 |
learning.max-term-codepoints | 512 | 允许写入共享词库的最长云命中片段 |
worker-threads 控制单节点同时执行的后台任务数,queue-capacity 只吸收短时突发。相同正文的进行中云审核会在当前节点合并;不同正文超过队列容量时立即返回 ERROR。这两个参数不替代调用方按玩家或业务入口设置频率限制。
凭据也可以通过环境变量提供,环境变量优先于 YAML:
baidu.yml 中的 enabled 为 false 时,即使调用方传入 enableCloud=true,也只会执行本地检测,此时不会应用 fail-closed。
云命中原文不是永久词库。记录到期后会根据 expires_at 索引分批删除,通常在一个清理周期内完成;相同正文再次命中会刷新保留期限。超出学习长度范围、归一化后为空,或归一化后等于整段审核正文的片段不会写入长期共享词库,但云端确认违规的完整内容在保留期内仍可直接识别。已经学习出的明确局部词条保存在 redact_dictionary,不会随原文记录过期。
