描述
DuetG AI Connector 让 WordPress AI Client 能够连接任意提供 OpenAI 兼容 API 的 AI 服务,例如:
- Ollama(本地 AI)
- LM Studio(本地 AI)
- MiniMax
- Moonshot
- DeepSeek
- SiliconFlow
- 以及任意其他 OpenAI 兼容的 API 提供商
WordPress AI 集成
当与官方 WordPress AI 插件一起安装时,您可以将自定义 API 提供商与 WordPress 内置 AI 功能结合使用:
- Alt Text 生成 – 使用 AI 视觉模型为图片生成描述性 Alt Text(需要 VLM 模型)
- 内容分类 – 基于内容分析的 AI 驱动的文章标签和分类建议
- 内容摘要 – 将长篇内容摘要为易于理解的概述
- 摘要生成 – 根据内容生成摘要建议
- 图片生成 – 使用 AI 生成特色图片和内嵌图片
- 图片提示词生成 – 根据文章内容生成可用于生成图片的提示词
- 元描述生成 – 生成元描述建议,并与各种 SEO 插件集成
- 评审笔记 – 逐区块审阅文章内容,并添加包含无障碍、可读性、语法和 SEO 方面建议的笔记
- 标题生成 – 根据内容生成标题建议
模型能力
所有模型(文本生成端点):
* 内容分类
* 内容摘要
* 摘要生成
* 图片提示词生成
* 元描述生成
* 评审笔记
* 标题生成
视觉语言模型(VLM)额外支持:
* Alt Text 生成(分析图片内容)
图片生成端点:
* 图片生成(特色图片和内嵌图片)
注意:仅 Alt Text 生成需要 VLM。所有其他功能均可使用标准纯文本模型。
系统需求
- PHP 7.4 或更高版本
- WordPress 7.0 或更高版本(使用内置连接器 API)
- (可选)WordPress AI 插件以增强集成
外部服务
此插件连接到用户配置的第三方 AI API 服务
(任意 OpenAI 兼容的 API 端点)。它用于提供 AI 文本
生成和图片生成功能。
在以下情况下,数据会被发送到已配置的 API 端点:
* 用户通过测试 AI 页面或 WordPress AI 功能(Alt Text、摘要、评审笔记等)
提交文本生成请求时
* 用户提交图片生成请求时
发送的数据包括:用户的提示词、模型配置,
以及视觉功能中的图片数据。
由于此插件连接到用户配置的端点,用户应查看所选提供商的
服务条款和隐私政策:
* OpenAI:服务条款、
隐私政策
* 其他提供商:请查阅您的提供商的文档
屏幕截图
安装
- 将
duetg-ai-connector文件夹上传到/wp-content/plugins/目录 - 通过 WordPress 的”插件”菜单激活插件
- 在 设置 > 连接器 中配置您的 API Key
- 前往 设置 > 自定义 AI 配置您的 Base URL 和模型
- (可选)前往 工具 > 测试 AI 验证您的配置
常见问题
-
如何启用调试日志?
-
要启用调试日志,请在
wp-config.php中添加以下内容:define('DUETGAICON_DEBUG', true);启用后,调试信息将被写入服务器的调试日志(通常为
wp-content/debug.log),包括:
* AI API 调用的请求/响应详情
* 提供商注册状态
* 模型处理器信息注意:在生产环境中请禁用调试日志,以避免性能影响和日志文件增长。
-
此插件在没有 WordPress 7.0 的情况下能用吗?
-
不需要。此插件需要 WordPress 7.0 或更高版本,因为它使用内置的连接器 API 来管理 API Key。
-
为什么建议数量和笔记数量有时不匹配?
-
使用评审笔记时,您可能会注意到 AI 返回的建议数量与编辑器中显示的笔记数量不完全匹配。
这是预期行为,有两个原因:
-
多分类建议:部分 AI 模型会返回适用于多个评审分类的单一建议(如
review_type: "seo, accessibility")。插件保持原样转发,因此在 WordPress AI Client 中,同一建议可能会出现在多个笔记分类下。 -
模型响应格式:AI 模型控制其返回的建议数量,WordPress AI Client 决定如何显示和分类这些建议。插件正确转发模型的响应,不修改数量。
如果您需要更一致的结果,请考虑使用能可靠返回结构化 JSON(每个分类有独立建议)的模型。
-
-
如何找到我的 AI 提供商的 Base URL?
-
- Ollama(本地):
http://localhost:11434/v1 - LM Studio(本地):
http://localhost:1234/v1 - MiniMax:
https://api.minimax.io/v1 - Moonshot:
https://api.moonshot.ai/v1 - DeepSeek:
https://api.deepseek.com/v1 - SiliconFlow:
https://api.siliconflow.cn/v1 - 其他提供商:请查阅其文档
- Ollama(本地):
-
需要 API Key 吗?
-
部分提供商需要 API Key。对于不需要身份验证的本地安装(如 Ollama),您可以输入任意字符串(如 “not-required”)作为 API Key。
-
为什么本地推理/思考模型有时会超时?
-
在 Ollama 上运行的本地推理模型(如 Gemma 4、QwQ 等)会在生成最终答案之前产生长的”思考”链。这个过程可能需要 30-60 秒或更长时间,可能触发 cURL 的低速限制超时(默认 30 秒)。
云模型通常运行良好——大多数云 API 提供商(DeepSeek、MiniMax、Moonshot 等)响应迅速,不会出现超时问题。如果云模型频繁超时,可能是由于异常长的思考链——请尝试切换到其他模型。
本地模型推荐解决方案:
-
本地 AI 功能请使用非推理模型。对于 Ollama,
qwen2.5:7b、llama3.2:3b或phi3等模型表现良好,不会遇到超时问题。 -
配置 Ollama 保持模型加载:
bash
export OLLAMA_KEEP_ALIVE=-1 # 保持模型在内存中
如果您使用的是推理模型,请注意 WordPress AI 功能可能会较慢或超时。思考行为由模型控制,不由插件控制。
-
-
如何使用本地 AI 提供商(如 Ollama 或 LM Studio)?
-
默认情况下,WordPress 出于安全考虑(SSRF 保护)会阻止向 localhost 和私有 IP 地址发送请求。如果您使用本地 AI 提供商,可以通过在
wp-config.php中添加以下内容来禁用此保护:define('DUETGAICON_ALLOW_LOCAL_URLS', true);警告:禁用 SSRF 保护将允许向私有/本地 IP 发送请求。只有在您信任您的本地 AI 提供商、且您的服务器无法直接从互联网访问时,才应启用此功能。
此设置在使用本地 AI 提供商时同时适用于文本模型和图片模型。
提示:当启用
DUETGAICON_ALLOW_LOCAL_URLS时,测试 AI 页面(工具 > 测试 AI)会出现网络连接测试工具。您可以用它来验证 WordPress 服务器是否能访问您的本地 AI 提供商,再运行实际的 AI 功能测试。这对调试本地 Ollama 或 LM Studio 的连接问题特别有用。 -
如何在代码中使用?
-
use WordPress\AiClient\AiClient;
$registry = AiClient::defaultRegistry(); // Text Generation $model = $registry->getProviderModel('custom_text', 'gpt-4'); $result = $model->generateTextResult([ new \WordPress\AiClient\Messages\DTO\UserMessage([ new \WordPress\AiClient\Messages\DTO\MessagePart('Your prompt here') ]) ]); echo $result->toText(); // Image Generation $model = $registry->getProviderModel('custom_image', 'dall-e-3'); $result = $model->generateImageResult([ new \WordPress\AiClient\Messages\DTO\UserMessage([ new \WordPress\AiClient\Messages\DTO\MessagePart('Your prompt here') ]) ]); $files = $result->toImageFiles();
评价
此插件暂无评价。
贡献者及开发者
更新日志
0.3.1
- 添加 isLocalUrl() 帮助方法,用于检测 localhost/私有 IP URL
- 当配置了本地 AI URL 但 DUETGAICON_ALLOW_LOCAL_URLS 禁用时,添加明确的错误提示
- 修复 PHP 语法错误(TestPage.php 中多余的 );)
- 修复 PHPCS:使用 wp_kses_post 输出错误以支持 HTML 格式
- 修复 PHPCS:在国际化友好的错误消息中使用 sprintf 及 translators 注释
- 网络连接测试按钮现使用 primary 样式
- 将重复的本地 URL 检测代码重构为 Helper::isLocalUrl()
0.3.0
- 插件重命名为 DuetG AI Connector(原 Custom AI Provider)
- 添加强能内容分类功能(AI 驱动的文章标签和分类建议)
- 添加元描述生成功能
- 添加 WordPress 连接器注册表集成,以兼容 WordPress 7.0+
- 为 MiniMax、Kimi、GLM 和腾讯混元添加多提供商响应格式标准化
- 为 DashScope(qwen/glm)模型添加自动 JSON 关键字注入
- 改进 JSON 提取,使用平衡大括号计数替代非贪婪正则
- 添加带 URL sanitization 的详细调试日志
- 在测试 AI 页面添加网络连接测试功能,用于调试本地 Ollama 连接
- 扩展 DUETGAICON_ALLOW_LOCAL_URLS 至整个插件(文本和图片模型)
- 添加说明本地推理模型超时问题的 FAQ 版块
- 从文档中移除 WordPress AI 版本要求
- 清理 CustomTextGenerationModel 中的调试日志代码
- 修复 PHPCS:在表单字段使用前对 test_url 进行 sanitization
- 当 DUETGAICON_ALLOW_LOCAL_URLS 禁用时,网络连接测试现为隐藏状态
- 修复网络连接测试按钮样式(现使用 primary 样式)
- 在本地 AI 提供商 FAQ 中添加网络连接测试文档
0.2.3
- 修复 TestPage.php 中图片 URL 的 OutputNotEscaped 错误
0.2.2
- 修复 Settings.php 中命名空间声明顺序(移至 ABSPATH 检查之前)
- 修复 JS 文件版本号以使用 JS 文件自身的 mtime 而非 plugin.php
- 为 custom_ai_debug() 添加 function_exists() 包装以防止冲突
- 修复 ThinkingTagHelper 中重复的 docblock 注释
- 修复 CustomImageGenerationModel 注释中的拼写错误(”if not setting” “if not set”)
- 在调试日志中添加 URL sanitization 以过滤敏感参数
- 将 JSON 正则从贪婪匹配改为非贪婪匹配以提升准确性
- 修复 TestPage.php 中 dirname 层级 Bug(dirname level 3 2)
- 修复调试日志中 array_map 键保留 Bug
- 内联 URL sanitization 逻辑以避免嵌套函数定义
0.2.1
- 修复 wp_enqueue_script() 中缺失的资源版本号
- 修复测试页面中未转义的输出
- 为 Settings.php 添加直接文件访问保护
- 为图片 URL 添加 SSRF 保护(默认阻止 localhost/私有 IP)
- 添加 DUETGAICON_ALLOW_LOCAL_URLS 常量,以便在需要时启用本地图片 URL
- 更新至 WordPress AI 插件(移除”实验性”品牌)
0.2.0
- 添加与 WordPress AI 插件(0.6.0+)的兼容性
- 添加 Alt Text 生成支持(需要 VLM 模型)
- 添加图片提示词生成支持
- 添加评审笔记功能
- 添加标题生成支持
- 添加内容摘要支持
- 添加摘要生成支持
- 为 DeepSeek、Qwen、MiniMax、Kimi 等模型添加思考/推理支持
- 改进 JSON 响应解析,提升兼容性
- 添加调试日志(通过 WP_DEBUG 控制)
0.1.0
- 首次发布
- 支持文本生成
- 支持图片生成



