之前对 SmartSpam 评论过滤器插件进行了魔改”,结果弄巧成拙,体验反而不如原版。现在才感觉出来之前的改版真的是走向失败,识别功能过于笨重,无效的拦截过高。突然想到备用站每次打开都会进行cf的人机验证,还不如在评论的时候添加一个有效的验证呢,然后就有了 Turnstile 此插件。
但在隔天的测试中,新问题出现了:在国内网络环境下,Turnstile 经常会出现验证失败或无限循环的问题。考虑到网络环境的复杂性,开始物色评论审核 API。然而国内的门槛都不低,既要实名登记,又是包年付费,体验期还极短。虽然谷歌的 PerspectiveAPI 免费,但它对中文的识别精准度实在一般。兜兜转转,突然灵光一现:既然都要走 API 审核,为什么不直接调用大模型呢?让 AI 来审评论,这不就迎刃而解了嘛。
Turnstile
站点水印:www.onemuggle.com
Turnstile 简介
Turnstile 是一款专为 Typecho 深度定制的评论安全增强插件(版本 v2.9.1)。它将 Cloudflare Turnstile 的前端人机识别与 Ollama 云大模型的后端语义分析相结合,不仅能拦截自动化垃圾脚本,还能精准识别引流广告、恶意攻击及违规内容。
- 结合前端无感验证与后端 AI 异步审核,确保评论既真实又合规。
- 针对 Ollama 云 API 优化,支持填入多个云端 API Key,插件自动随机轮询调用,有效分摊并发压力与额度限制。
- 识别私密评论。私密模式下自动放行社交联系方式,公开模式则严禁引流。
- 可配置“允许吐槽”或“拒绝负面”,AI 会精准识别建设性建议与恶意辱骂。
- 合规友链申请判定逻辑,符合格式的友链申请将直接通过。
- 违规评论可选“直接拦截(报错)”或“转为待审核(进入后台队列)”。
- 自动记录 PHP 加密日志,详细记录每次判定的作者、内容、判定标签及原因。
下载方式
- 站点备份:
https://muggle11.lanzouu.com/b009hs7qhg密码:1101 - 站点备份:
https://www.onemuggle.com/go/205120512051/ - Github:
https://github.com/ID521101/Turnstile
使用方法
- 将插件文件夹重命名为
Turnstile,上传至 Typecho 的/usr/plugins/目录下。 - 登录 Typecho 管理后台 ->
控制台->插件-> 找到Turnstile点击激活(建议先停用SmartSpam)。 - 申请
Cloudflare Turnstile的 Key ,插件设置页面不添加key则不触发cf的验证。申请地址:https://www.cloudflare.com/zh-cn/application-services/products/turnstile/
3.1) 先登录自己的cf账号,然后在访问链接,点击 开始使用
3.2) 点击添加小组件,小组件名称(自行添加)
3.3) 点击添加主机名,输入域名后点击添加(没有托管到cf的域名也可以)
3.4) 小组件模式:建议选择 托管
3.5) 点击创建,复制对应的站点密钥、密钥,填写到插件的设置页面 - 申请 Ollama 的api key。申请地址:https://ollama.com/settings/keys
4.1) 先登录自己的ollama账号,然后访问申请链接
4.2) 点击 Add API Key 这个按钮,输入任意名称,点击 Generate API Key
3.3) 复制密钥,粘贴到插件设置页面的AI API Key 列表,(可以多账号申请api,进行随机轮询)
3.3) 模型的话建议使用默认的,qwen3-coder:480b-cloud中文效果挺好的 - 可设置 允许吐槽 和 拒绝负面、直接拦截 和 转为待审核
- 日志存放路径:
/usr/plugins/Turnstile/logs/audit_YYYY-MM.php。php结尾防止浏览器直接访问导致泄露内容。
申请友链
必须包含 名称、域名、头像、描述
【友链合规示例】(符合此类格式的必须判定 is_spam: false)
名称:XXX
域名:https://xxx.com
头像:https://xxx.png
描述:XXX测试验证
可在此页面进行测试验证,测试时需要设置邮箱前缀为 【xxxxx@】 以方便后续删除操作
名称:可测试,内容:可测试
OneMuggle