LogoArcartX Doc

配置文件

配置本地匹配、MySQL、百度审核与在线学习

配置文件

Redact 的配置位于 plugins/Redact/,按用途拆分为四个文件:

文件用途
config.yml子服标识、文本净化和本地匹配规则
database.ymlMySQL 连接与多服同步
baidu.yml百度内容审核、请求队列和在线学习
words.yml本地词库及分类

words.yml 的写法见本地词库

基础与匹配配置

config.yml 的默认内容如下:

server-id: "server-1"
 
sanitization:
  replacement: "喵喵喵"
 
matcher:
  case-sensitive: false
  ignore-separators: true
  max-reported-hits: 10000
  delta-rebuild-threshold: 512
  exact-cache-size: 250000
配置默认值说明
server-idserver-1当前子服标识,长度为 1~64 个字符
sanitization.replacement喵喵喵净化 API 没有指定替换文本时使用的内容
matcher.case-sensitivefalse是否区分英文大小写;关闭时也会把全角 ASCII 转为半角
matcher.ignore-separatorstrue是否忽略空白和 Unicode 标点
matcher.max-reported-hits10000详细结果最多返回的命中数,范围 11000000
matcher.delta-rebuild-threshold512增量学习词达到多少后合并重建主词库,范围 1100000
matcher.exact-cache-size250000内存中保留的已确认云审核内容上限,范围 15000000

群组服中的每个节点应使用不同的 server-id。连接同一数据库的节点应保持相同的 case-sensitiveignore-separators,否则同一内容在不同节点上的归一化结果可能不一致。

max-reported-hits 只限制 check 返回的详细命中列表。布尔检测和文本净化不受这个数量限制。

MySQL

database.yml 的默认内容如下:

enabled: true
sync-interval-seconds: 30
 
mysql:
  host: "127.0.0.1"
  port: 3306
  database: "arcartx"
  username: "arcartx"
  password: "arcartx"
  parameters: "useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC"
  pool-size: 4
  connection-timeout-ms: 5000
配置默认值说明
enabledtrue是否启用共享词库和云审核结果持久化
sync-interval-seconds30子服增量同步周期,最小 5
mysql.host127.0.0.1MySQL 地址
mysql.port3306端口,范围 165535
mysql.databasearcartx数据库名
mysql.usernamearcartx数据库账号
mysql.passwordarcartx数据库密码
mysql.parameters见上方示例JDBC 参数,不要添加开头的 ?
mysql.pool-size4Hikari 连接池上限,范围 132
mysql.connection-timeout-ms5000获取连接的超时,最小 250 毫秒

仅使用单服 YAML 词库时,可以在 database.yml 中设置 enabled: false。启用百度审核时,数据库必须同时启用。

百度内容审核

baidu.yml 的默认内容如下:

enabled: false
api-key: ""
secret-key: ""
strategy-id: 0
connect-timeout-ms: 3000
request-timeout-ms: 8000
max-request-bytes: 19000
max-chunks: 16
chunk-overlap-codepoints: 64
worker-threads: 4
queue-capacity: 256
fail-closed: true
record-retention-days: 7
cleanup-interval-minutes: 30
 
learning:
  min-term-codepoints: 2
  max-term-codepoints: 512
配置默认值说明
enabledfalse是否允许 Redact 请求百度审核
api-key百度应用 API Key
secret-key百度应用 Secret Key
strategy-id0审核策略 ID;0 使用百度控制台默认策略
connect-timeout-ms3000HTTP 连接超时,最小 250 毫秒
request-timeout-ms8000单请求超时,最小 500 毫秒
max-request-bytes19000单分片 UTF-8 字节上限,范围 102420000
max-chunks16单次审核最多分片数,范围 11024
chunk-overlap-codepoints64相邻分片重叠的 Unicode 码点数,范围 04096
worker-threads4HTTP、JDBC 和后台任务线程数,范围 132
queue-capacity256等待执行的云审核任务容量,范围 1100000
fail-closedtrue云审核服务异常时是否按违规处理
record-retention-days7云命中原文和对应记录的保留天数,范围 190
cleanup-interval-minutes30过期云命中记录的清理周期,范围 51440 分钟
learning.min-term-codepoints2允许写入共享词库的最短云命中片段
learning.max-term-codepoints512允许写入共享词库的最长云命中片段

worker-threads 控制单节点同时执行的后台任务数,queue-capacity 只吸收短时突发。相同正文的进行中云审核会在当前节点合并;不同正文超过队列容量时立即返回 ERROR。这两个参数不替代调用方按玩家或业务入口设置频率限制。

凭据也可以通过环境变量提供,环境变量优先于 YAML:

REDACT_BAIDU_API_KEY
REDACT_BAIDU_SECRET_KEY

baidu.yml 中的 enabledfalse 时,即使调用方传入 enableCloud=true,也只会执行本地检测,此时不会应用 fail-closed

云命中原文不是永久词库。记录到期后会根据 expires_at 索引分批删除,通常在一个清理周期内完成;相同正文再次命中会刷新保留期限。超出学习长度范围、归一化后为空,或归一化后等于整段审核正文的片段不会写入长期共享词库,但云端确认违规的完整内容在保留期内仍可直接识别。已经学习出的明确局部词条保存在 redact_dictionary,不会随原文记录过期。

On this page