DuetG AI Connector

描述

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:服务条款
隐私政策
* 其他提供商:请查阅您的提供商的文档

屏幕截图

  • 自定义 AI 设置界面 – 配置文本和图片生成的 Base URL 及模型。
  • 连接器界面 – 管理您的 AI 提供商的 API Key。
  • 测试 AI 界面 – 验证您的 AI 配置并测试文本/图片生成。

安装

  1. duetg-ai-connector 文件夹上传到 /wp-content/plugins/ 目录
  2. 通过 WordPress 的”插件”菜单激活插件
  3. 在 设置 > 连接器 中配置您的 API Key
  4. 前往 设置 > 自定义 AI 配置您的 Base URL 和模型
  5. (可选)前往 工具 > 测试 AI 验证您的配置

常见问题

如何启用调试日志?

要启用调试日志,请在 wp-config.php 中添加以下内容:

define('DUETGAICON_DEBUG', true);

启用后,调试信息将被写入服务器的调试日志(通常为 wp-content/debug.log),包括:
* AI API 调用的请求/响应详情
* 提供商注册状态
* 模型处理器信息

注意:在生产环境中请禁用调试日志,以避免性能影响和日志文件增长。

此插件在没有 WordPress 7.0 的情况下能用吗?

不需要。此插件需要 WordPress 7.0 或更高版本,因为它使用内置的连接器 API 来管理 API Key。

为什么建议数量和笔记数量有时不匹配?

使用评审笔记时,您可能会注意到 AI 返回的建议数量与编辑器中显示的笔记数量不完全匹配。

这是预期行为,有两个原因:

  1. 多分类建议:部分 AI 模型会返回适用于多个评审分类的单一建议(如 review_type: "seo, accessibility")。插件保持原样转发,因此在 WordPress AI Client 中,同一建议可能会出现在多个笔记分类下。

  2. 模型响应格式: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
  • 其他提供商:请查阅其文档

需要 API Key 吗?

部分提供商需要 API Key。对于不需要身份验证的本地安装(如 Ollama),您可以输入任意字符串(如 “not-required”)作为 API Key。

为什么本地推理/思考模型有时会超时?

在 Ollama 上运行的本地推理模型(如 Gemma 4、QwQ 等)会在生成最终答案之前产生长的”思考”链。这个过程可能需要 30-60 秒或更长时间,可能触发 cURL 的低速限制超时(默认 30 秒)。

云模型通常运行良好——大多数云 API 提供商(DeepSeek、MiniMax、Moonshot 等)响应迅速,不会出现超时问题。如果云模型频繁超时,可能是由于异常长的思考链——请尝试切换到其他模型。

本地模型推荐解决方案:

  1. 本地 AI 功能请使用非推理模型。对于 Ollama,qwen2.5:7bllama3.2:3bphi3 等模型表现良好,不会遇到超时问题。

  2. 配置 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();

评价

此插件暂无评价。

贡献者及开发者

「DuetG AI Connector」是开源软件。 以下人员对此插件做出了贡献。

贡献者

「DuetG AI Connector」插件已被翻译至 1 种本地化语言。 感谢所有译者为本插件所做的贡献。

帮助将「DuetG AI Connector」翻译成简体中文。

对开发感兴趣吗?

您可以浏览代码,查看SVN仓库,或通过RSS订阅开发日志

更新日志

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

  • 首次发布
  • 支持文本生成
  • 支持图片生成