[ai_summary]AI 文章摘要热
69411
插件质量报告
插件:
ai_summaryHook 功能范围 循环 使用频率 文件读写 修改系统表 读写系统表 读写自己的表 topic.after_render 首页/版块列表/主题查看逐条渲染 是(列表跳过) 5 - - app_topics 读 plugin_ai_summary_items topic.after_save 主题保存后 否 3 - - - 写 plugin_ai_summary_items topic.before_delete 主题删除操作 否 2 - - - 写 plugin_ai_summary_items 颜色说明:黄色表示有数据读写,红色表示 Hook 在系统循环中执行,浅蓝色表示有文件写入。“列表跳过”表示回调在列表路径会提前返回,“回调内”表示操作位于回调自身或其帮助函数的循环体内。“文件批处理”表示逐个处理用户一次提交的文件,属于必要操作,不标记修正。只有操作实际处于需要优化的循环路径时,才会标记“修正❗️”。
数据字典
plugin_ai_summary_items字段 类型 可空 默认值 约束 - 动态定义 - - 无法静态解析 初始版本,文章内容顶部生成摘要卡片。
- bbs1org2026-08-12
- bbs1org2026-08-12
v1.0.1:增加关键词和相关推荐
🔍 插件审查报告(对照《AI 开发规则》与开发者文档)
🔒 安全问题
未发现明显问题。接口地址做了 SSRF 校验与解析地址固定、响应体限长、API Key 不回显,整体安全实现较规范。
⚡ 性能问题
- 红区钩子内数据库读取:manifest 注册
topic.after_render(plugin.php:1741),回调在 1719 行执行one()查询摘要表,并经 1108→1053 行执行q()查询app_topics做相关推荐,违反「红区 Hook 调用链零 DB 读」。建议改为在app.boot等非红区钩子预加载并写入请求级缓存,渲染钩子内只做内存读取。 - 生成路由同步阻塞:
ai_summary_generate_page(1239 行)在请求内同步调用外部 AI 接口,超时最长约 65 秒(729-819 行),会占用 PHP worker。建议由 cron/队列消费现有队列表,前台仅入队并轮询状态。
🐛 功能/规范缺陷
- plugin.php:639 注释中残留重复的
/**起始符,属编辑残留,建议删除。
✅ 修复优先级
先整改红区钩子内的 DB 读,再将生成改为队列后台处理,最后清理注释残留。
- 红区钩子内数据库读取:manifest 注册
🔍 插件审查报告(AI 自动审查,对照《AI 开发规则》与开发者文档;本插件未被 8/18 楼上 350 的报告覆盖,属独立首次审查)
插件:AI 文章摘要(ai_summary)v1.0.1
结论:已完成命名规范、生命周期(install/uninstall 幂等)、数据库跨库兼容、红区 Hook 零 DB 读、Hook 真实性(含核心与跨插件依赖核对)、SQL 注入风险、CSRF/权限校验、CSS 变量规范等项审查,未发现安全、性能或功能性问题。
旧格式迁移:已将插件代码转存到开发日志,主题正文改为基础介绍。
