WoShops AI Connector:一个插件,把十几家大模型接到 WordPress 里

In:

如果你正在为 WordPress 接入大模型而苦恼——API Key 散落在每个插件的设置页、文档格式各家一套、流式输出要自己撸 SSE、失败重试靠运气——那么这个插件或许能帮你一次把这些问题都解决。

WoShops AI Connector(中文名「吾店云 AI Connector」)是一个由吾店云团队开源的 WordPress 插件,最新版本 1.1.0。它的定位很朴素:做 AI 能力的”中央插座”。无论你用的是 DeepSeek、OpenAI、Anthropic Claude、Google Gemini,还是本地跑的 Ollama、免费额度充足的 Groq,甚至自建的 vLLM / LM Studio,只要走的是 OpenAI 兼容的 /chat/completions 协议,它就能接。

下面,我从开发者视角和终端站长视角两个维度,带你真正看懂这个插件。

WoShops AI Connector:一个插件,把十几家大模型接到 WordPress 里


一、它到底是什么?—— 一次说清楚定位

很多人会把它误以为是”又一个 ChatGPT 聊天机器人插件”。不是的。

类型典型代表是不是 AI Connector
AI 聊天机器人WP-Chatbot、Kommunicate❌ 这是最终产品
AI 内容生成Bertha AI、ContentBot❌ 这是某个场景应用
AI LLM 连接器WoShops AI Connector✅ 这是底层基础设施

它的定位是 “AI 能力的连接管理层” —— 提供配置界面、调用 SDK、REST 接口、PHP 客户端、流式支持、嵌入向量支持,让其他插件或者你自己的代码可以方便地调用大模型,而不是直接面对一个聊天机器人 UI。

所以它的真正用户其实是两类人:

  1. 站长:希望给站点加 AI 能力,但不想每个插件都要配一遍 Key;
  2. WordPress 插件开发者:希望在自己的插件里加 AI 功能,但不想为每家厂商写一套适配代码。

二、它支持哪些模型?(截至 1.1.0 版)

我读了 includes/providers/ 目录后确认,当前内置 13 家厂商适配:

  • DeepSeek:V3 / R1 / Chat(OpenAI 兼容)

  • OpenAI:GPT-4o、GPT-4o-mini、o1-mini、o3-mini

  • Anthropic:Claude Sonnet / Haiku / Opus

  • Google:Gemini 2.0 Flash / 2.5 Pro / 2.5 Flash

  • Ollama:本地大模型,无需 API Key

  • Groq:免费高速推理(Llama / Mixtral / Gemma)

  • 通义千问(Qwen)

  • 智谱 GLM

  • Moonshot(Kimi)

  • 豆包(Doubao)

  • 百川(Baichuan)

  • 零一万物(Yi)

  • Custom / OpenAI 兼容:vLLM、LM Studio、Together AI、SiliconFlow 等

最关键的一个特性:OpenAI 兼容协议即插即用。 即便你用的是某个未列出的国产模型,只要它的接口规范是 /chat/completions,就可以走「自定义」通道填入 Base URL 直接用,无需再写一行代码。


三、终端站长视角:零代码也能用

1. 安装与激活

  • 上传 ai-api-connector 文件夹到 wp-content/plugins/

  • WordPress 后台 → 插件 → 启用

  • 设置 → AI API Connector 即可配置

2. 添加一个连接(Connection)

UI 走的是 WordPress 7.0 Connectors 卡片式风格——每家厂商是一张卡片,点开填表单:

  • 选择 Provider(厂商)

  • 填 API Key

  • 选择模型(或自定义 Base URL)

  • 一键测试连接(AJAX 异步验证,不用提交整个页面)

  • 保存

3. 全局设置

在插件设置页可以配置:

  • 默认连接:调用方不指定时使用

  • Fallback 顺序:主连接挂了,自动切到备胎

  • 请求超时:默认 120 秒(长上下文场景必备)

  • 重试次数:默认 2 次

  • 启用日志:开启后会记录最近 100 次调用(系统提示 / 用户提示前 200 字、状态码、响应大小)

4. 安全:API Key 怎么存?

这是很多站长最关心的。代码里写得很清楚:

  • 入库前加密(base64,有 wp_encrypt 则用更安全的方案)

  • 后台展示时永远不显示完整 Key

  • Multisite 下支持”网络级默认值 + 子站点覆盖”


四、开发者视角:两行代码调用任意大模型

这部分是这个插件的”杀手锏”。

4.1 公共 PHP 客户端(推荐)

$client = AI_API_Connector_Client::get_instance();

// 1. 单轮对话
$response = $client->prompt( 'You are helpful.', 'Hello!' );

// 2. 高级选项(温度 / 最大 token / 模型覆盖)
$response = $client->prompt( 'System', 'User', [
    'temperature' => 0.7,
    'max_tokens'  => 4096,
    'connection_id' => 'deepseek-prod',  // 可显式指定连接
] );

// 3. 流式输出(SSE,PHP Generator 实现)
foreach ( $client->prompt_stream( 'System', 'User' ) as $chunk ) {
    echo $chunk;
    flush();
}

// 4. 嵌入向量
$vector = $client->embed( '要嵌入的文本' );

// 5. 测试某个连接是否可用
$result = $client->test_connection( 'connection-id' );

返回值设计也很标准:成功返回字符串或数组,失败返回 WP_Error——完全符合 WordPress 习惯,没有引入新的异常模型,老 WordPress 开发者零成本上手。

4.2 REST API(给前端 / 第三方系统用)

插件自动注册了 5 个端点:

方法路径用途
POST/wp-json/ai-api-connector/v1/prompt同步对话
POST/wp-json/ai-api-connector/v1/streamSSE 流式对话
POST/wp-json/ai-api-connector/v1/embed嵌入向量
GET/wp-json/ai-api-connector/v1/connections列出全部连接
POST/wp-json/ai-api-connector/v1/test测试连接

注意:当前版本的 REST 端点没有显式的权限校验回调。如果你要暴露给前端调用,建议在中间件层加一层 nonce + capability 检查,或者只在内部系统之间使用。这是 1.x 版本需要在生产场景补齐的一环(插件作者也提到了未来 Roadmap)。

4.3 兼容层(给老插件兜底)

这是我觉得最人性化的设计。很多老 AI 插件(如早期的 GPT 内容生成插件)硬编码了”读自己的设置”。

$info = AI_API_Connector::get_compatibility_layer();
if ( $info ) {
    // 把当前激活连接的 provider / api_key / base_url / model 给老插件用
    $provider = $info['provider'];
    $api_key  = $info['api_key'];
    $api_base = $info['api_base'];
    $model    = $info['model'];
}

这意味着:你可以把旧插件的”自己的 AI 设置”全部关掉,统一在这里配一份,所有插件共享。 这是减少 API Key 散落的真正杀手锏。


五、内部实现细节:它是怎么”通用”的?

很多号称”通用 AI 插件”实际上只是把 5 家厂商的 curl 调用复制粘贴。这个插件走的是清晰的策略模式(Strategy Pattern):

class AI_API_Connector_Provider       ← 抽象基类(接口契约)
    ├── build_chat_request()           ← 各家构造不同的请求体
    ├── parse_response()               ← 各家解析不同的响应
    ├── get_auth_header()              ← 各家鉴权方式不同
    ├── get_default_base_url()         ← 各家默认域名
    ├── supports_embedding()           ← 部分支持嵌入
    └── ...
        ↓
class Provider_DeepSeek extends ...    ← 13 个具体实现
class Provider_Anthropic extends ...
class Provider_OpenAI_Compat extends ...  ← 任何 OpenAI 兼容方

新增一个厂商只需要写一个继承类、补全几个方法。不需要改核心调度代码——这是好的面向对象设计。

5.1 自动重试逻辑

prompt() 方法里有一个简单的指数退避重试(实际是固定 1 秒间隔),最多重试 retry_count 次(默认 2)。当遇到网络错误或 5xx 时自动重试,4xx(如 401、429)则把上游错误信息透传给调用方。

5.2 流式输出实现

没有用 cURL 的回调,而是直接走 wp_remote_post 的 stream => true,然后逐行解析 SSE 协议的 data: ... 行。这是 WordPress 环境里最稳的流式实现——避开了在 PHP-FPM 模式下 cURL 回调的兼容性坑。

5.3 Multisite 友好

这是我读完代码后最惊喜的一点。ai_api_connector_get_option() 这个封装函数:

  1. 先读站点级设置;
  2. 为空则回退到网络级(Multisite 主站统一配,子站继承);
  3. 子站可以单独覆盖——保留个性化能力。

这对于运营 SaaS WordPress 多站点的人来说,简直是刚需。


六、实测一下:从零到第一次对话

下面用 DeepSeek 举例,最快 30 秒接上:

  1. 装好插件
  2. 后台 → Settings → AI API Connector → Add New Connection
  3. Provider 选 DeepSeek
  4. API Key 填你从 platform.deepseek.com 拿到的 key
  5. Model 选 deepseek-chat
  6. 点 Test Connection → 看到 “Connection successful!” → Save
  7. 在任意 PHP 文件里:
add_action( 'wp_ajax_my_chat', function() {
    $client = AI_API_Connector_Client::get_instance();
    $reply  = $client->prompt( '你是一个友好助手', '用一句话介绍你自己' );
    wp_send_json( [ 'reply' => $reply ] );
} );
  1. 前端 fetch 一下 /wp-admin/admin-ajax.php?action=my_chat 就能拿到 AI 回复。

全程没有一行厂商特定的代码。 改用 Claude?换 Connection ID 就行,代码不动。


七、谁最该用它?

角色适用场景
独立站长想给站点加 AI 翻译、AI 摘要、AI 客服,但不想装 5 个插件
WordPress 主题 / 插件开发者想给自家产品加 AI 能力,但不想维护 13 套适配
WordPress SaaS 平台方Multisite 网络级统一配置,子站可覆盖,API Key 不外泄
企业内网 / 私有化部署走 Ollama 或自建 vLLM,Ollama 不需要 Key
预算敏感的用户DeepSeek / Groq 性价比组合,按需切换

八、总结

WoShops AI Connector 不是一个聊天机器人插件,它是一个 AI 能力的连接管理层。

如果你:

  • 只是想给站点加一个聊天窗口 → 找别的插件;

  • 想给站点/产品接入 AI 能力,并希望统一管理 Key、厂商、调用方式 → 这个插件值得用。

它在架构上走的是清晰的策略模式 + WordPress 原生习惯 + Multisite 友好,不是”复制粘贴的速成品”。对于想在 WordPress 上严肃做 AI 应用的开发者,这是一个值得长期投入的底层依赖。


当前版本:1.1.0
License:GPL v2 or later
作者:吾店云(woshops.com)

如果你已经在用,欢迎分享你的实际接入体验;如果你打算用,遇到任何配置问题也可以来交流。

Comments

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注