WP Manifestindependent plugin directory
manifest / ai / alias-generator

Alias Generator

基于LLM APIs生成WordPress文章别名

by hupengchen · github.com/hellohupc/alias-generator

0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/hellohupc/alias-generator/archive/refs/heads/master.zip

概述

alias-generator 是一个 WordPress 插件,它借助大语言模型(LLM)的能力自动生成文章别名。用户可以通过配置页面设置 LLM API 参数,自定义提示模板,并测试 API 连接。该插件支持在文章列表页面为单篇文章或批量生成文章别名,同时在文章编辑页面的固定链接旁提供一键生成按钮。

功能特性

  1. LLM API 配置:提供专门的配置页面,允许用户设置 LLM API 的相关信息。
  2. 自定义提示模板:支持用户根据需求自定义用于生成文章别名的提示模板。
  3. API 连接测试:具备 Test API Connection 功能,方便用户验证配置是否正确。
  4. 单篇及批量生成:在文章列表页面提供 generate alias 按钮,支持单篇和批量生成文章别名。
  5. 编辑页快捷生成:在文章编辑页面的固定链接旁提供 Generate Alias 按钮,编辑文章时可直接点击生成别名,无需返回列表页操作。

安装步骤

  1. 下载 alias-generator 插件压缩包。
  2. 登录 WordPress 后台,导航到 插件 -> 添加新插件
  3. 点击 上传插件,选择下载的压缩包并上传。
  4. 上传完成后,点击 激活插件

使用方法

配置 LLM API

  1. 登录 WordPress 后台,在侧边栏找到 Alias Generator 菜单并点击。
  2. 在配置页面中,填写 LLM API 的相关信息,如 API 密钥、端点等。
  3. 自定义 Prompt Template,根据需要调整生成别名的提示内容。
  4. 点击 Test API Connection 按钮测试配置是否成功。若连接成功,会显示成功提示;若失败,则显示错误信息。

生成文章别名

单篇生成

  1. 进入 文章 -> 所有文章 页面。
  2. 找到需要生成别名的文章,点击 generate alias 按钮。
  3. 稍等片刻,文章的别名将自动生成并保存。

编辑页快捷生成(v1.1 新增)

  1. 进入文章的编辑页面(文章 -> 点击文章标题进入编辑)。
  2. 在页面顶部的固定链接区域找到 Generate Alias 按钮。
  3. 点击按钮,别名将自动生成并更新固定链接,按钮恢复后即可看到结果。

批量生成

  1. 文章 -> 所有文章 页面,勾选需要生成别名的文章。
  2. 在顶部的批量操作下拉菜单中选择 生成别名
  3. 点击 应用 按钮,插件将批量为选中的文章生成别名。

模型适配说明(重要)

本插件通过 POST /v1/chat/completions 调用大模型,把模型返回的 message.content 经过 WordPress sanitize_title() 处理后作为文章别名(slug)。因此模型选择直接决定插件能否正常工作,并非所有模型都适用。

插件对模型的核心要求

  1. 非推理(Non-reasoning / Instruct)模型优先 插件只读取 message.content不读取 reasoning_content。推理/思考模型(带 thinking、reasoning、Hy3、V4-Pro 等)会先用 reasoning_content 输出长篇思考过程,message.content 可能为空。

  2. max_tokens 必须覆盖最终输出 默认 max_tokens = 120。推理模型若思考过程超过 120 token,会触发 finish_reason = length,此时 message.content 为空 → 插件判定失败 → 后台显示"模型不可用"。

    • 非推理模型:120 token 足够输出一个 slug。
    • 推理模型:需把 max_tokens 调到 2000 以上,否则必然失败。
  3. 指令遵循能力强 插件提示词要求"只输出 slug,不要其它内容"。模型若输出解释性文字、Markdown、多选项,经 sanitize_title() 处理后会变成冗长无意义的垃圾 slug。

  4. 速度快、单次输出短 生成 slug 是高频小任务,适合轻量快速模型,不适合大参数稠密模型。

  5. 中文理解准确(若标题含中文) 中文标题需要翻译/音译为英文 slug,模型必须能正确理解中文语义。中文非母语的模型可能直接输出拼音串,对 SEO 无价值。

推荐配置

参数 推荐值 原因
API Provider ModelScopeCustom OpenAI 兼容接口
Model Name 见下方推荐表 非推理、快、中文好
Temperature 0.2 slug 需要确定性,降低随机性
Max Tokens 60–120(非推理)/ 2000+(推理) 非推理模型 120 足够

ModelScope(魔搭)适配模型实测

接口:https://api-inference.modelscope.cn/v1/chat/completions 测试提示词为插件默认 slug 提示词,max_tokens=120temperature=0.2,中文标题实测。

✅ 推荐使用(非推理,默认 120 token 即可正常工作)

模型 id 特点 实测延迟 输出示例
Qwen/Qwen3-Next-80B-A3B-Instruct 首选。MoE 架构 80B 总参/3B 激活,速度等同小模型;中文母语,翻译忠实 ~0.5s ai-is-transforming-our-lifestyle
mistralai/Mistral-Large-Instruct-2407 英文强,但中文偶发拼音串,稳定性差 ~2s ai-changing-our-lifestyle(有时输出拼音)
Qwen/Qwen3-235B-A22B-Instruct-2507 稳定,输出拼音 slug ~0.5s ren-gong-zhi-neng-gai-bian-sheng-huo-fang-shi
Qwen/Qwen3-Coder-30B-A3B-Instruct 稳定,输出拼音 slug ~0.5s ren-gong-zhi-neng-gai-bian-wo-men-de-sheng-huo-fang-shi
deepseek-ai/DeepSeek-V3.2 稳定,输出英文 slug ~1s ai-shenghuo-fangshi-bianhua

首选 Qwen/Qwen3-Next-80B-A3B-Instruct:速度最快(~0.5s)、中文翻译最准、输出最干净、批量生成最稳。

⚠️ 可用但为推理模型(必须把 max_tokens 调到 2000+)

模型 id 风险
Qwen/Qwen3.5-397B-A17B / Qwen3.5-122B-A10B 思考链长,120 token 必空
Qwen/Qwen3-235B-A22B-Thinking-2507 / Qwen3-30B-A3B-Thinking-2507 同上
Qwen/Qwen3-235B-A22B(base) 同上

❌ 不可用 / 不推荐(插件场景下失败)

模型 id 失败原因
Tencent-Hunyuan/Hy3 返回 choices:null插件默认模型,务必更换
deepseek-ai/DeepSeek-V4-Flash 120 token 内只思考不输出,finish=length
deepseek-ai/DeepSeek-V4-Pro 空 / choices:null,不稳定
ZhipuAI/GLM-5.2 思考烧光 token,content 为空
ZhipuAI/GLM-4.7-Flash choices:null
stepfun-ai/Step-3.5-Flash / Step-3.7-Flash 推理烧光 token
MiniMax/MiniMax-M1-80k <think> 标签当正文输出 → 生成垃圾 slug
MiniMax/MiniMax-M3 choices:null
Qwen/Qwen3-8B / 14B / 30B-A3B / 30B-A3B-Instruct-Think choices:null 或不可用
meituan-longcat/LongCat-Flash-Lite choices:null
Qwen/Qwen3-32B / 4BGLM-5 / 5.1MiniMax-M2.5 / M2.7nex-agi/Nex-N2-ProXiaomiMiMo/MiMo-V2-FlashLLM-Research/Llama-4-*moonshotai/Kimi-K2.5 HTTP 400

如何排查"模型不可用"

  1. 先换非推理模型:把 Model Name 改为 Qwen/Qwen3-Next-80B-A3B-Instruct,Max Tokens 保持 120,重新测试。
  2. 若必须用推理模型:把 Max Tokens 调到 2000 以上。
  3. 查看服务器日志:插件失败时会写 error_log,关键词 [Alias Generator]Unexpected or empty response 即模型返回空 content;API HTTP error 即接口报错(400/429 等)。
  4. 注意限流:ModelScope 免费档有 429 限制,批量生成时建议降低并发或加间隔。

截图说明

配置页面截图 图 1:LLM API 配置页面

高级配置页面 图 2:LLM API 高级配置页面

功能测试 图 3:LLM API 功能测试

文章列表功能按钮 图 4:文章列表功能按钮

常见问题解答

测试 API 连接失败怎么办?

  • 检查 API 密钥是否正确,有无拼写错误或过期。
  • 确认 API 端点地址是否正确。
  • 检查网络连接是否正常,是否可以访问该 API。

点击按钮没有反应怎么办?

  • 尝试清除浏览器缓存并刷新页面(Ctrl+F5 / Cmd+Shift+R)。
  • 打开浏览器开发者工具(F12)Console 面板,检查是否有 JavaScript 错误。
  • 确认 API 配置是否正确,API 密钥是否已设置。

批量生成别名没有反应怎么办?

  • 确保已经勾选了需要生成别名的文章。
  • 检查 API 连接是否正常,可通过 Test API Connection 功能再次验证。
  • 若文章数量较多,可能需要等待一段时间,请耐心等待。

贡献与反馈

如果你在使用过程中遇到问题,或者有任何建议和想法,欢迎通过 GitHub 提交 issue。同时,也欢迎你为该项目贡献代码,提交 pull request。

许可证

本插件由 helloHupc 开发,采用 GNU General Public License v2(GPLv2)许可。详细的许可条款请查看 LICENSE 文件。