老读者应该知道,我去年做了个 WordPress 插件——小栈AI标签助手(v1.x),专门让 AI 帮忙给文章打标签。这一年多来,它帮我打理了上千篇文章的标签,确实省了很多手工打标签的时间。
但用着用着就发现,标签只是内容管理里的一小步。SEO 元数据、摘要、封面图、评论互动、外链图片本地化……这些哪个不要花时间?而且以前每项都要在不同工具间来回切换,割裂感挺强的。
所以这次干脆来一次大改,不修修补补,直接重新设计架构,把所有 AI 驱动的内容处理能力都收进一个统一的引擎里。这就是小栈AI综合助手 v2.0。
懒得维护,才造了它
我这个人有个毛病——懒,而且忙。
我的博客内容全靠自动化采集更新,每天几十篇文章哗哗往里灌。量上去了,问题也来了:标签谁打?SEO元数据谁填?摘要谁写?外链图片哪天挂了谁管?
说实话,要不是这两年AI进步得这么快,这些琐事我大概只能硬扛。现在大模型足够聪明、调用成本也足够低,让我这种有点代码底子的人,能在很短的时间里把自己正好需要的东西搭出来——而且效果比预想中还要好。
于是2025年初,我打开编辑器,写下了第一行代码。
v1.0 — “能自己打标签就行”(2026年初)
第一个版本的目标极其朴素:文章发布后,AI自动打标签,别让我动手。
核心链路就是一条线:
文章发布 → 扔进队列 → AI读标题+正文 → 吐出几个标签 → 写入文章
v1.0长这样:
- 支持 DeepSeek / OpenAI / Kimi / 豆包四家AI
- 队列 + 定时消费,防止短时间大量请求把API额度打爆
- similar_text() 相似度匹配,避免“AI”和“人工智能”同时存在
- 定时扫描器兜底,防止直接写库绕过钩子的文章漏掉
- 访客触发——有人访问文章时顺便检查处理了没
- 批量把旧文章扔进队列
- 日志表记录每次处理结果
装上去跑了两天,效果超出预期。原来每天要花半小时手工打标签,现在一秒都不用。
但人是贪婪的。标签搞定了,很快就开始想:SEO标题呢?文章摘要呢?封面图呢?
v1.1 ~ v1.3 — 缝缝补补的日子(2026年3-4月)
这个阶段没有发大文章,但默默迭代了不少东西:
- 标签管理面板:统计、热门标签排行、手动合并
- 合并引擎:相似标签自动合并,小标签并入大标签,支持定时全站扫一遍
- 黑名单:加几个词进去,AI再也不生成这些标签
- 空标签清理:每天定时清掉零文章的标签
- 队列持久化:从WordPress Options迁到独立数据表,高并发下不再丢数据
- 失败重试:API挂了也不怕,自动排队重试
- 暂停/恢复:调试的时候暂停队列,搞完再开
到v1.3.3,插件已经很稳了。但架构上的天花板也到了——标签引擎是唯一的核心,要往里塞SEO、摘要、封面图……只能在旧代码上打补丁,越打越丑。
于是某天晚上,我新建了一个空文件夹,命名xzdbk-ai-tags-v2。
v2.0 — 推倒重来,九合一(2026.04.10)
重写的理由
v1.x是个“标签工具”,所有代码围绕标签生成这单一流程。而我想做的是一个全流程内容管家——文章进了WordPress,剩下的事全交给插件。
这就不能靠打补丁了。新架构一句话概括:多引擎并行,事件驱动解耦。
文章发布(transition_post_status)
│
▼
标签引擎(唯一入口)
│
├─ 生成标签,写入文章
│
└─ 触发 xzd_ai_tags_generated
│
├── SEO引擎 → 标题/关键词/描述 → Zibll字段
├── 摘要引擎 → AI摘要 → 前端卡片展示
├── 封面图引擎 → 豆包/DALL-E生成 → 设为特色图
└── 内链引擎 → 标签关键词自动插链接
每个引擎独立运作,增删模块不影响核心流程。
九大模块,一张表看完
| 模块 | v1 | v2 | 一句话 |
|---|---|---|---|
| 标签引擎 | ✅ 单算法 | ✅ TF-IDF + 四算法联合判重 | 准确率质的飞跃 |
| SEO引擎 | ❌ | ✅ | 标题关键词描述自动填,Zibll原生集成 |
| 摘要引擎 | ❌ | ✅ | 12种展示风格 + 打字机动画 |
| 封面图引擎 | ❌ | ✅ | 豆包/DALL-E画图,10套预设风格 |
| 润色+内链 | ❌ | ✅ | 标签自动插链接,AI润色全文,备份可恢复 |
| 评论回复 | ❌ | ✅ | AI替你跟读者互动 |
| 图片本地化 | ❌ | ✅ | 外部图片自动下载 + WebP转换 |
| 合并引擎 | ✅ 基础 | ✅ 两阶段扫描 | 更准更快 |
| 清理引擎 | ✅ 基础 | ✅ AI标签保留期 | 不会误删新标签 |
几个值得一提的技术变化
标签匹配:1种算法 → 4种联合
v1用similar_text()一把梭。v2先上TF-IDF + N-gram中文分词提取关键词,然后四算法联合打分:Levenshtein编辑距离、similar_text、子串包含、Jaccard 2-gram。综合加权后判断是复用旧标签还是创建新标签。
一次API调用干三件事
v1调一次AI只生成标签。v2标签引擎完成后,把SEO + 摘要的需求合并成一次请求,结构化JSON一口气返回标题、关键词、描述、摘要。API调用次数减半。
DOM级内链插入
不是简单的正则替换——遍历文本节点,在标签关键词处插入<a>标签,自动跳过<script>、<style>、<code>、已存在的<a>链接。还有CJK字符边界检测,不会在“人工智能”的“工”字后面断开插链接。
内容安全三道防线
AI润色这个功能最怕把文章改坏了。v2做了三层保护:
- 润色前自动备份原文
- 返回内容不到原文30% → 自动回滚
- 编辑页面一键恢复
独立管理后台
v1嵌在WordPress设置页面里。v2用Tailwind CSS重写了整个管理面板,10个子页面,视觉独立、操作统一。
版本速览
| 版本 | 时间 | 文件 | 模块 | 关键词 |
|---|---|---|---|---|
| v1.0.0 | 2026初 | 13 | 1 | 从零到一,自动标签 |
| v1.1~1.3 | 2026.3中 | ~20 | 3 | 标签管理、合并、清理 |
| v2.0.0 | 2026.05 | 42 | 9 | 完全重构,全流程自动化 |

v1.x → v2.0:不只是版本号的跳跃
光看这个对比表,变化有多大就很直观了:
| 维度 | v1.x(标签助手) | v2.0(综合助手) |
| 定位 | AI 自动标签 | AI 全流程内容助理 |
| 功能模块 | 1 个(标签) | 9 个 |
| 代码文件数 | 13 | 42 |
| 自定义数据表 | 1 张(日志) | 3 张(队列/标签索引/日志) |
| 可配置项 | ~30 | 121 |
| AJAX 接口 | 23 | 35+ |
| 管理面板 | 传统 WP 风格 | Tailwind CSS 独立设计系统 |
| 标签匹配算法 | 1 种 | 4 种联合判定 |
| 提示词模板 | 3 套 | 3 套 × 5 类型 = 15 组 |
九大功能模块详解
模块一:AI 标签引擎(继承升级)
这是 v1.x 的核心能力,在 v2 里重点强化了一下。
- 双模式运行:AI 生成 / 标签库匹配 / 智能混合,会自己判断你是新站还是老站,走不同策略。
- TF-IDF 关键词提取:内置了中文 N-gram 分词,不用额外安装扩展就能抽关键词。
- 四算法联合判定相似度:Levenshtein 距离 + similar_text + 子串包含 + Jaccard 2-gram,比 v1.x 那会儿单靠 similar_text 准确率高了不止一点。
- 站点模式感知:新站(少于 100 篇文章)宽松创建新标签,老站优先复用已有标签,避免标签库越来越臃肿。
- 统一元数据调用:标签生成之后,SEO 和摘要会合并成一次 API 请求,能省下一半以上的 API 开销。

模块二:AI SEO 引擎(全新)
- 自动生成符合搜索引擎规范的 SEO 标题(15-30 字)、关键词(4-8 个)、描述(80-150 字)。
- 原生支持子比主题的 SEO 字段(zib_post_seo_* 以及 zib_other_data)。
- 可以设置覆盖保护,避免误改了手动优化过的文章seo助手。
- AI 不可用时自动降级,拿文章标题、标签名和内容摘要顶上,不会让字段空着。

模块三:AI 摘要引擎(全新)
- 自动抓取文章核心观点,生成精炼的摘要。
- 前端提供了 12 种展示风格:默认、玻璃拟态、霓虹灯、极简、终端、暖色调、新拟物、编辑风、聊天气泡、像素复古、便利贴、极光渐变。
- 打字机动画(可选),逐字蹦出来,给阅读添加一点仪式感。
- 与子比主题的 zib_posts_content_before 钩子无缝衔接。
- 支持单篇关闭摘要。

模块四:AI 封面图引擎(全新)
- 接入了豆包 Seedream(火山引擎)的图片生成 API,也兼容 DALL-E 格式端点。
- 文章发布即自动生成配图,并设置为特色图片。
- 预设了 10 套视觉风格:现代科技(明/暗)、可爱极简(明/暗)、文艺清新(明/暗)、商务氛围、渐变梦幻、水墨中国、极简几何。
- 整体流程:AI 先根据文章标题生成绘图提示词 → 追加风格描述 → API 出图 → 自动下载到媒体库。
- 自动转换为 WebP 格式,优先用 Imagick,不行再降级 GD。

模块五:AI 润色 + 自动内链(全新)
- 纯内链模式:DOM 级别遍历文本节点,在标签关键词处插入
<a class="xzd-tag-link">,不破坏原来的 HTML 结构。 - 会自动跳过
<a>、<script>、<style>、<code>、<pre>、<textarea>等需要保护的元素。 - 中日韩字符边界检测,不会在词语中间生硬地断掉插链接。
- AI 全量润色模式:整体提升可读性、优化排版,并自然地嵌入标签链接。
- 润色前会自动保存原文备份,编辑页面可以一键还原。
- 兜底保护:万一 AI 返回的内容还不到原文的 30%,直接自动回滚。

模块六:评论自动回复(全新)
- 以站点主人的口吻自动回复一级评论,尽量不像机器人。
- 会构建一个完整的站点画像(名称、描述、分类、标签、站龄、评论数量等),缓存 12 小时。
- 回复长度控制在 80-200 字,贴近真人互动。
- 设置了每日回复上限,防止滥用。

模块七:图片本地化引擎(全新)
- 扫描文章内容中的所有外部图片链接,自动下载到 WordPress 媒体库。
- 外链自动替换为本地 URL。
- 超过最大宽度的图片会自动缩放(默认 2560px,可调节)。
- 可选 WebP 转换(Imagick + GD 双引擎)。
- 支持设置要排除的域名。
- 文章发布和更新时自动触发批量处理。
- 并发处理锁(60 秒 transient),避免重复处理同一篇。

模块八:标签合并引擎(继承升级)
- 两阶段相似度扫描:先按首字分组比对,再跨组对长度相近的标签做精细扫描。
- 创建新标签时自动检查是否需要合并。
- 支持定时全站合并(每天/每周/每月)。
- 手动合并预览,能先看会影响到哪些文章,再确认执行。
- 合并方向永远是小标签并入大标签。

模块九:清理与扫描引擎(继承升级)
- 每天定时清理文章数为零的空标签。
- AI 生成的标签有保留期(默认 30 天,可调),非 AI 标签直接清理。
- 文章删除时会标记关联标签,后续自动跟进。
- 定时扫描:找出发布后未被处理的文章,加入处理队列。
- 访客触发:文章被访问时可以顺带检查是否需要补处理。
- 批量导入:后台一键将历史文章加入队列。
技术架构上的一些想法
- DB 持久化队列:v1.x 的队列存在 WordPress Options 里,并发高或队列积压时就容易出问题。v2 改用独立数据表
wp_xzd_ai_queue,支持唯一约束、指数退避重试和三种优先级。 - 模块化引擎:9 个引擎各自独立,通过 WordPress 自定义 Action Hook(比如
xzd_ai_tags_generated)解耦通信,以后增减功能模块都不会影响核心流程。 - Tailwind CSS 管理面板:后台 UI 完全独立于任何主题框架,视觉统一,在移动端也看着舒服。
- 标签索引表:
wp_xzd_ai_tag_index存着标签名、文章数、首字、是否 AI 生成等元信息,相似度匹配查询起来快了很多。 - 统一元数据调用:标签生成后,SEO 和摘要合并成一次 API 请求,有效降低 token 消耗。
支持的 AI 服务商
| 服务商 | 用途 | 默认模型 | 状态 |
| DeepSeek | 文本生成 | deepseek-chat | 以测试✅ |
| OpenAI | 文本生成 | gpt-4o-mini | 未测试 |
| Kimi / Moonshot | 文本生成 | moonshot-v1-8k | 未测试 |
| 豆包 / 火山引擎 | 文本 + 图片生成 | seedream-4-5 | 以测试✅ |
| 自定义端点 | 文本生成 | 用户自定 | 未测试 |
未经授权,禁止任何形式的转载、镜像或商业用途。
如需合作或存在版权问题,请联系我们:
📧 jieligw@qq.com 🌐 www.xzdbk.com



















暂无评论内容