Skip to content

feat(caidanci_grade,redrock_group_manager): 棋盘渲染优化 + 三地带分级与异步 LLM 审查 - #13

Merged
TuF3i merged 8 commits into
JuanNiangDev:mainfrom
excniesNIED:main
Aug 7, 2026
Merged

feat(caidanci_grade,redrock_group_manager): 棋盘渲染优化 + 三地带分级与异步 LLM 审查#13
TuF3i merged 8 commits into
JuanNiangDev:mainfrom
excniesNIED:main

Conversation

@excniesNIED

@excniesNIED excniesNIED commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

变更

本 PR 包含两个插件更新:

1. redrock_caidanci_grade:棋盘渲染优化

  1. 开局空白棋盘/猜单词 发送空白棋盘图片(T2I 可用时),下划线仅作 T2I 不可用时的降级占位
  2. 按单词长度预设渲染尺寸board_size(len, rows) 按 tile(52)/gap(7)/padding(16) 计算精确画布,随 t2i.generate_url options 下发(viewport + full_page=false);410 字母对应 261615 × 379px,图片无大面积空白
  3. 最大单词长度 10max_length 默认 12 → 10(config.yaml / main.lua / README)
  4. 当前轮次发光:最近一次输入的那一行柔和钢蓝边缘发光(开局高亮第 1 行)
  5. 取消虚化 + 统一边框:已猜格(灰/黄/绿/提示)与空格一致的灰色边框

版本 2.1.0 → 2.2.1。

2. redrock_group_manager:黑/灰/敏感三地带分级 + 灰色词异步 LLM 审查

广告/敏感检测升级为「黑色地带-灰色地带-敏感」三地带:

  • 黑色地带:新增 words/black.txt(从 campus-ad-detection-words/样本.md 抽取的无歧义话术:贷款/金融强提、假通知群、流量卡/办卡、修图日结/刷单、0元购/1折、寄宿自习室机构话术等),与 cn_advertisement.txt 命中即直接三级惩罚
  • 灰色地带words/all.txt(校园卡/考研/群名片/加群/加微信等语义模糊词)命中不消费消息jn.llm.chat_async 异步送 Bot 自身 LLM 审查(复用 Provider 配置,不阻塞事件循环与其它插件),LLM 返回 JSON {"violation":"ad|sensitive|none","reason":"..."} 后按三级惩罚追罚;内置 LLM_SYSTEM_PROMPT 可调;同用户单在途 + 同消息 10 分钟去重
  • 黑色词条自动从灰色集合剔除(黑色优先);灰色词库同步剔除已被黑/敏感词库覆盖的词条
  • 豁免命令增强/豁免 后若用户处于禁言状态自动解除禁言;新增 /解除豁免(别名 /取消豁免)恢复检测,豁免清单持久化写回 config.yaml
  • 新配置 llm_review_enabled(默认 true,关闭则灰色词直接放行);pluggin.yaml 增加 llm 权限(v1.2.0)

版本 1.1.0 → 1.2.0。

验证

  • Lua 语法经 gopher-lua Load 校验通过
  • Chromium 按 T2I 视口方式渲染 12 种棋盘(4~10 字母 × 空盘/进行中/结束/提示),画布尺寸与预设一致、无空白;发光与边框样式经 computed style 验证
  • TestRedrockBlackGraySensitive:黑色直接处罚、灰色不消费 → LLM 判 ad 追罚 / none 放行、豁免自动解禁、解除豁免恢复检测

依赖

说明

  • 未在真实 T2I 服务上端到端验证(本地无服务)

- 开局发送空白棋盘图片(T2I 可用时),下划线仅作 T2I 不可用降级占位
- 按单词长度预设 T2I 渲染尺寸(viewport + full_page=false),每长度
  精确画布,避免图片大面积空白;4~10 字母对应 261~615 x 379px
- 最大单词长度默认 10(4~10,config 可配)
- 当前轮次为最近输入的那一行,柔和钢蓝边缘发光(开局高亮第 1 行)
- 已猜格与空格一致的灰色边框;取消猜错/错位字母虚化

Constraint: 尺寸预设依赖 Bot 侧 t2i.generate_url 可选 options 表(feat(t2i) 同批提交)
Rejected: 纯 HTML 固定画布(无法控制 T2I 视口宽度,宽棋盘仍出现侧边空白)
Confidence: high
Scope-risk: narrow
Directive: 尺寸预设与 board_template.html 的 tile(52)/gap(7)/padding(16) 严格对应,改模板常量需同步 main.lua board_size
Tested: Lua 语法经 gopher-lua Load 校验;Chromium 按 T2I 视口方式渲染 12 种棋盘,画布尺寸与预设一致、无空白;灰/黄/绿/提示格边框与发光样式经 computed style 验证
Not-tested: 未在真实 T2I 服务上验证(本地无服务);旧二进制忽略多余参数时尺寸预设不生效
从 campus-ad-detection-words/样本.md 抽取无歧义广告话术:贷款/金融强提、假通知群话术、流量卡/办卡、修图日结/刷单、0元购/1折、寄宿自习室机构话术等,命中直接三级惩罚
补充 考研/考公/群名片/改群名片/加微信/加群/拉群 等灰色词(LLM 裁决);剔除已并入 black.txt 与敏感词库的重复词条(黑色优先)
- 词库按命中方式分三类:黑色(直接三级惩罚)/ 灰色(LLM 审查)/ 敏感(直接处罚);黑色词条从灰色集合剔除(黑色优先)
- 灰色词命中不消费消息,jn.llm.chat_async 异步提交(返回 req_id,不阻塞事件循环),完成后引擎派发 on_chat_response(req_id, content, err),按 LLM 返回 JSON 裁决后追罚
- 内置 LLM_SYSTEM_PROMPT(JSON 契约 {violation: ad|sensitive|none, reason});同用户单在途 + 同消息 10 分钟去重
- pluggin.yaml 增加 llm 权限(v1.2.0);config.yaml 增加 llm_review_enabled(默认 true,关闭则灰色词直接放行)
- /豁免 后若用户处于禁言状态(shut_up_timestamp > now)自动 ban(duration=0) 解除
- /解除豁免(别名 /取消豁免):从豁免清单移除并 save_config() 持久化,恢复检测
贷款强提/假通知群/修图兼职等话术已由 black.txt 覆盖(黑色优先),从灰色词库物理剔除避免重复判断;同时去重 p图 大小写变体
@excniesNIED excniesNIED changed the title feat(caidanci_grade): 棋盘渲染优化与最大长度 10 feat(caidanci_grade,redrock_group_manager): 棋盘渲染优化 + 三地带分级与异步 LLM 审查 Aug 7, 2026
- all.txt(灰区) 830→333 词:剔除与 black/cn 重复词;押金/兼职/回报/套餐族移黑;
  新增校园卡/手机卡/办卡等裸产品名词与细分碎片(防绕过、防误报,交 LLM 审查)
- black.txt(黑区) 355→726 词:新增灰色清理批次(押金/兼职/回报/套餐、福利/推广/拼团)
- cn_advertisement.txt 去重 2 词(vpn免费/免VPN 与既有大小写变体重复)
- 规则:black 词(含全部 cn_* 文件)不得出现在 all.txt

Constraint: 加载器 subtract_black 运行时剔除黑灰重叠,重叠灰词等于死词
Rejected: 校园卡等复合短语入黑 | 正常校园对话(补办/充值/咨询)会被三级惩罚误杀,裸产品词留灰交 LLM 裁决
Confidence: high
Scope-risk: narrow
Directive: 灰区词仅触发 LLM 审查(llm_review_message);改词库需重启插件加载
Tested: 交集/重复校验 all∩black=0、all∩cn=0、无内部重复;cn 文件 EOL 保持 CRLF 不变
Not-tested: 未运行插件本体(本机无 Bot 运行环境)
@TuF3i
TuF3i merged commit 2928fce into JuanNiangDev:main Aug 7, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants