作为一枚技术博主,我始终认为标签(Tags)是很有意义的,但每次自己写标签都觉得很痛苦,当然了这个还是和自己懒有关系。wp有很多不错的自动tags插件,但放眼看Typecho好像就没有可用的AutoTags插件,所以打算自己弄一个。

标签主要靠分词,而之前分词都是靠结巴等插件来实现,但这些插件的实现需要本地部署等等,非常麻烦,我主打一个懒,懒得部署。所以无法实现,不过现在有非常多的大语言模型了,DeepSeek就是其中一个。去掉自己部署分词服务的麻烦,直接通过大语言模型来实现分词岂不是更方便且高效?

所以,这个插件就诞生了,通过DeepSeek来生成标签会更准确而且高效,但唯一一个缺点就是要收费,好在DeepSeek API的价格不贵。

言归正传,下面就是插件的介绍和下载地址,如果过程中有问题或者其他的建议欢迎交流讨论。

功能描述

AutoTags是一个Typecho插件,能够自动根据文章内容生成标签。它通过调用DeepSeek API分析文章内容,提取关键词作为标签,并自动添加到文章中。

安装方法

  1. 下载插件压缩包并解压
  2. 将解压后的文件夹重命名为 AutoTags
  3. 将文件夹上传到 Typecho 的插件目录 /usr/plugins/
  4. 在 Typecho 后台激活插件

配置说明

  1. 激活插件后,进入插件设置页面
  2. 输入您的 DeepSeek API Key
  3. 设置内容长度(字符数):内容长度越大,消耗的API token数量会越多,默认333字符
  4. 可以通过修改插件$prompt变量来调整标签生成规则及标签获取的数量:

    • "请根据以下文章标题和正文内容,提取关键词作为文章标签,保留原文内容,标签含义不能重复,随机获取1至10个标签,用逗号分隔:\n\n标题:{$title}\n\n正文:{$text}"
    • 编辑Plugin.php文件中的generateTags方法
    • 修改$prompt变量的内容格式
  5. 保存设置

使用示例

插件激活并配置后,在发布或修改文章时会自动执行以下操作:

  1. 提取文章标题和前333个字符的正文内容
  2. 发送到 DeepSeek API 进行分析
  3. 获取返回的关键词作为标签
  4. 自动将标签添加到文章中

注意事项

  1. 需要有效的 DeepSeek API Key 才能使用
  2. API 调用可能会受到网络状况影响
  3. DeepSeek API 需要自行注册和配置,并且DeepSeek API需要支付一定的费用,请熟知

todo

  • [ ] 接入其他AI模型

更新日志

v1.4.7 (2026-07-09)

  • 修复:补齐 README 中声称但代码中缺失的"编辑文章时是否重新生成标签"配置项,现在通过 regenerateOnEdit 单选框控制,默认为否。
  • 修复:移除死代码,clearTags() 现在会在 regenerateOnEdit 设置为"是"且文章已有标签时被正确调用。
  • 修复:clearTags()addTag() 中拼接 SQL 的 $mid / $cid 统一 intval 强转,消除潜在注入风险。
  • 修复:contentLength 表单新增 numeric 校验规则,并在代码中 intval 兜底,非法值回退为默认 333。

v1.4.6 (2026-06-17)

  • 替换DeepSeek模型:将deepseek-chat更换为deepseek-v4-flash,原模型deepseek-chat将于2026/07/24弃用。
  • 替换DeepSeek api url:将deepseek api url替换为官方最新地址。
  • 修复:编辑文章时不再重复生成标签,通过检查文章是否已有标签来判断是否为新发布文章。
  • 新增配置项:添加"编辑文章时是否重新生成标签"选项,默认为否。
  • 优化:改进AI提示词,限制标签为2-6个字的中文词语,避免生成单字标签。
  • 优化:API 请求显式禁用思考模式(thinking.type = disabled)。

插件下载地址

https://github.com/FungCoder/typecho_AutoTags

最后修改:2026 年 07 月 17 日
如果觉得我的文章对你有用,请随意赞赏