GoForum🌐 V2EX

Flarum 扩展插件,用 LLM 来做内容审核 - flarum-openai-content-audit

AkaGhost · 2026-03-01 20:42 · 0 次点赞 · 0 条回复

稍早前用 Flarum 搭了个 BitTorrent 主题的论坛,那么作为 UGC 内容社区,内容审核无疑是第一位的。俗话说的好,UGC 有多自由,牢底就能坐穿多久……

不过,Flarum 上面也没什么好用的审核插件,fof/filter 只能做到基本的关键字匹配,Flarum 中文社区倒是有一个阿里云的内容审核插件,但是也仅限于基本的帖子内容审核。

要是用户在帖子里插了个逆天图片,或者换了个逆天头像和用户名,这茶还是喝定了。

所以花了半周,Vibe Coding 了个内容审核的扩展插件,又打磨了半周,似乎工作的还可以。尽管代码质量看起来有待提高,但至少测试都跑过了。

由于目前还没决定好正式发布,也不是专业 PHP 开发者,所以就先没有上传 packagist 。
支持 Flarum v1.8.x ( v2.x 暂时还不支持……),通过 OpenAI 兼容 API ,使用 LLM 进行内容审核。有些权限设置还没来得及改,但现在已经完全可用了,所以出来发一发。

审核支持范围

类型 插件 支持的违规处理动作
用户用户名(包括创建新用户、编辑) core 重命名为 user__随机数、封禁
用户头像 core 删除、封禁
用户昵称(包括创建新用户、编辑) flarum/nicknames 删除、封禁
用户签名档 fof/user-bio 更改为特定字符串、封禁
用户头图 sycho/profile-cover 删除、封禁
主题标题(包括创建和编辑) core 标记为等待审核、封禁
主题、回复的内容(包括创建和编辑) core 标记为等待审核、封禁
主题、回复的内容图片(包括创建和编辑)( URL 外部直链) core 标记为等待审核、封禁
主题、回复的上传图片与小文本附件内容(包括创建和编辑) fof/upload 标记为等待审核、封禁

需要下列插件作为依赖:

  • Approval (flarum/approval)
  • Suspend (flarum/suspend)

审核、处理违规内容

对于能够进入审核队列的内容,将会自动进入 “小黑屋”。

小黑屋
违规跳转 1

站点管理员可以跳转到审核内容处决定最后处理:

违规跳转 2

不支持审核的,将被直接删除或重置。

对于严重违规,可以要求 LLM 进行用户封禁操作。封禁用户在任何审核模块下都可以使用。

违规通知

在内容违规后,OAICA 会自动向用户发送违规站内信和通知邮件。

站内信提醒

通知邮件

上下文支持

在处理帖子回复时,会自动包含主贴内容作为上下文。处理用户个人资料也会提供其它部分上下文,以便 LLM 进行综合推理。

违规处理动作

支持 hidesuspend。具体行为由 Prompt 提示词和 LLM 自身决定。
使用的 LLM 必须支持多模态和 json_schema 输出能力。建议使用 doubao-seed-1.8 (不建议低于 1.6 )。其它 LLM 未测试,我用的火山引擎平台,每天送的免费 token 额度足够用了。LLM 的智商对审核结果有决定性作用,建议用个稍微好点的。

目前仅支持兼容 OpenAI 接口的平台,Gemini 等暂不支持。

先审后放模式

插件支持先审后放模式,可在管理员面板设置。开启此开关后,帖子发布后将直接进入待审核队列,直至被 OAICA 处理后才会批准。
在敏感时期启用此功能可降低因队列处理程序趴窝被爆破的风险。

审核记录

审核的完整记录内容、上下文、提示词、最终输出响应等会被详细记录在 oaicontaudit_logs 表中。

审核记录表

截图

(里面的 token 我已经换掉了;) )

Menu1 Menu2 Menu3

安装

没有发布到 packagist ,目前只能通过手动安装:

cd /path/to/flarum mkdir packages && cd packages git clone https://github.com/PBH-BTN/flarum-openai-content-audit

在 composer.json 里添加本地仓库:

...
"repositories": [
        {
            "type": "path",
            "url": "packages/flarum-openai-content-audit",
            "options": {
                "symlink": true
            }
        }
    ]

然后:

composer require ghostchu/openai-content-audit:"@dev"

更新

cd packages/flarum-openai-content-audit
git pull
cd ..
php flarum migrate
php flarum cache:clear

尾言

源代码放在了这里: https://github.com/PBH-BTN/flarum-openai-content-audit
不是很会写 PHP 代码,大部分代码都是由 Claude Code 代劳了。下载外链图片可能有一个 SSRF 的问题暂时还没修(对我个人来说影响不是很大),此外下载等行为可能暴露源站 IP 地址,非高防鸡可能要想个办法处理一下。

前几天在 Flarum 中文社区也发了个贴,不过太冷清了,没什么人看,就来 V2 也再发一份。

此外这里还有一个 Prompt 可以用作参考: https://gist.github.com/Ghost-chu/424f2ec618f5d52be20a75c70d661712 如果不知道 Prompt 怎么写,可以从这个样本开始改。

最后也欢迎来看看我的 PBH-BTN BBS,这个插件就是为这个社区写的 ;)

0 条回复
添加回复
你还需要 登录 后发表回复

登录后可发帖和回复

登录 注册
主题信息
作者: AkaGhost
发布: 2026-03-01
点赞: 0
回复: 0