大语言模型内容审核 | OpenAI Content Audit

由于目前还没决定好正式发布,也不是专业 PHP 开发者,所以就先没有上传 packagist。
Vibe coding 产物,支持 Flarum v1.8.x,通过 OpenAI 兼容 API,使用 LLM 进行内容审核。有些权限设置还没来得及改,但现在已经完全可用了,所以出来发一发。
功能
支持以下内容审核:
| 类型 | 插件 | 支持的违规处理动作 |
| 用户用户名(包括创建新用户、编辑) | core | 重命名为 user<uid>随机数、封禁 |
| 用户头像 | core | 删除、封禁 |
| 用户昵称(包括创建新用户、编辑) | flarum/nicknames | 删除、封禁 |
| 用户签名档 | fof/user-bio | 更改为特定字符串、封禁 |
| 用户头图 | sycho/profile-cover | 删除、封禁 |
| 主题标题(包括创建和编辑) | core | 标记为等待审核、封禁 |
| 主题、回复的内容(包括创建和编辑) | core | 标记为等待审核、封禁 |
| 主题、回复的内容图片(包括创建和编辑)(URL 外部直链) | core | 标记为等待审核、封禁 |
| 主题、回复的上传图片与小文本附件内容(包括创建和编辑) | fof/upload | 标记为等待审核、封禁 |
需要下列插件作为依赖:
- Approval (flarum/approval)
- Suspend (flarum/suspend)
审核、处理违规内容
对于能够进入审核队列的内容,将会自动进入 “小黑屋”。

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

不支持审核的,将被直接删除或重置。
对于严重违规,可以要求 LLM 进行用户封禁操作。封禁用户在任何审核模块下都可以使用。
违规通知
在内容违规后,OAICA 会自动向用户发送违规站内信和通知邮件。


上下文支持
在处理帖子回复时,会自动包含主贴内容作为上下文。处理用户个人资料也会提供其它部分上下文,以便 LLM 进行综合推理。
违规处理动作
支持 hide 和 suspend。具体行为由 Prompt 提示词和 LLM 自身决定。
使用的 LLM 必须支持多模态和 json_schema 输出能力。建议使用 doubao-seed-1.8 (不建议低于 1.6)。其它 LLM 未测试,我用的火山引擎平台,每天送的免费 token 额度足够用了。
目前仅支持兼容 OpenAI 接口的平台,Gemini 等暂不支持。
先审后放模式
插件支持先审后放模式,可在管理员面板设置。开启此开关后,帖子发布后将直接进入待审核队列,直至被 OAICA 处理后才会批准。
在敏感时期启用此功能可降低因队列处理程序趴窝被爆破的风险。
审核记录
审核的完整记录内容、上下文、提示词、最终输出响应等会被详细记录在 oaicontaudit_logs 表中。

截图



安装
没有发布到 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
链接