如果你正在为 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 协议,它就能接。
下面,我从开发者视角和终端站长视角两个维度,带你真正看懂这个插件。

一、它到底是什么?—— 一次说清楚定位
很多人会把它误以为是”又一个 ChatGPT 聊天机器人插件”。不是的。
| 类型 | 典型代表 | 是不是 AI Connector |
|---|---|---|
| AI 聊天机器人 | WP-Chatbot、Kommunicate | ❌ 这是最终产品 |
| AI 内容生成 | Bertha AI、ContentBot | ❌ 这是某个场景应用 |
| AI LLM 连接器 | WoShops AI Connector | ✅ 这是底层基础设施 |
它的定位是 “AI 能力的连接管理层” —— 提供配置界面、调用 SDK、REST 接口、PHP 客户端、流式支持、嵌入向量支持,让其他插件或者你自己的代码可以方便地调用大模型,而不是直接面对一个聊天机器人 UI。
所以它的真正用户其实是两类人:
- 站长:希望给站点加 AI 能力,但不想每个插件都要配一遍 Key;
- 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/stream | SSE 流式对话 |
| 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() 这个封装函数:
- 先读站点级设置;
- 为空则回退到网络级(Multisite 主站统一配,子站继承);
- 子站可以单独覆盖——保留个性化能力。
这对于运营 SaaS WordPress 多站点的人来说,简直是刚需。
六、实测一下:从零到第一次对话
下面用 DeepSeek 举例,最快 30 秒接上:
- 装好插件
- 后台 → Settings → AI API Connector → Add New Connection
- Provider 选
DeepSeek - API Key 填你从 platform.deepseek.com 拿到的 key
- Model 选
deepseek-chat - 点 Test Connection → 看到 “Connection successful!” → Save
- 在任意 PHP 文件里:
add_action( 'wp_ajax_my_chat', function() {
$client = AI_API_Connector_Client::get_instance();
$reply = $client->prompt( '你是一个友好助手', '用一句话介绍你自己' );
wp_send_json( [ 'reply' => $reply ] );
} );
- 前端 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)
如果你已经在用,欢迎分享你的实际接入体验;如果你打算用,遇到任何配置问题也可以来交流。
发表回复