插件文档

AI Experiments 插件:1 份高质量的使用说明+开发文档

Estimated reading: 9 minutes 3 views 贡献人员

概要: 面向中文用户的 AI Experiments 使用说明、REST API 调用与开发者扩展要点,一篇汇总。

AI Experiments

本文档面向中文用户,汇总 WordPress 官方 AI 实验插件的使用方式、REST API 与开发者扩展要点。插件将标题生成、摘要生成等 AI 能力集成到后台与块编辑器中,并支持通过 Abilities API 与 REST 接口扩展与调用。

一、概述与适用对象

AI Experiments(AI 实验)是 WordPress 官方推出的实验性插件,在后台与编辑器中提供可选的 AI 功能(如标题生成、摘要生成),同时作为基于「WordPress AI 构建块」的参考实现,供开发者学习与扩展。

  • 普通用户:配置 AI 凭据并启用实验后,在文章编辑器中即可使用标题生成、摘要生成等。
  • 开发者:可基于实验框架与 Abilities API 注册自定义能力、对接 REST、或参与上游贡献。

插件为实验性质,建议先在测试环境使用。官方仓库:https://github.com/WordPress/ai

二、插件架构总览

插件采用「实验」为单位的模块化结构,便于按需启用与扩展。

ai/
├── ai.php                 # 插件入口
├── build/                  # 前端构建产物(JS/CSS)
├── docs/                   # 英文文档
├── includes/               # 核心 PHP 代码
│   ├── Abilities/          # AI 能力实现(摘要、标题、图片等)
│   ├── Abstracts/         # 抽象基类(Abstract_Experiment、Abstract_Ability)
│   ├── Experiments/       # 各实验(能力探索器、摘要生成、标题生成等)
│   ├── Services/           # 外部服务(如 AI_Service)
│   └── Settings/           # 设置页与注册
├── src/                    # 前端源码(JS/SCSS/TSX)
└── tests/                  # 单元、集成与 E2E 测试
  • 实验(Experiment):每个功能(如标题生成、摘要生成)对应一个实验,可在「设置 → AI 实验」中单独开关。
  • 能力(Ability):实验可注册 WordPress Abilities API 能力,供编辑器与 REST 调用。

三、使用说明

3.1 安装与基本设置

  1. 将插件放入 wp-content/plugins/ai 并启用。
  2. 打开设置 → AI 凭据,添加至少一个 AI 服务商凭据(如 OpenAI、Google AI、Anthropic)。
  3. 打开设置 → AI 实验,先全局启用实验,再勾选需要使用的具体实验(如标题生成、摘要生成、能力探索器)。

3.2 标题生成

  • 编辑文章时,在标题上方会出现「生成/重新生成」按钮。
  • 点击后请求 AI 生成多条标题建议,在弹窗中选择一条即可写入标题框。

3.3 摘要生成

  • 在支持摘要的文章类型中,编辑页的「摘要」面板会出现「生成摘要」按钮。
  • 点击后根据当前正文生成约 55 字的摘要建议,可直接采用或修改。
  • 仅对支持 excerpt 的文章类型显示。

3.4 能力探索器

  • 在后台工具 → 能力探索器中可查看当前站点已注册的所有 AI 能力(含 Core、主题、插件)。
  • 支持按能力查看输入/输出结构(Schema),并可在页面内用自定义 JSON 输入直接调用能力,便于调试与集成。

四、REST API 使用

插件的 AI 能力通过 WordPress Abilities API 暴露为 REST 接口,便于自动化或自定义前端调用。

4.1 认证方式

推荐使用应用密码

  1. 后台进入用户 → 个人资料,找到「应用程序密码」。
  2. 新建一个应用密码并保存(只显示一次)。
  3. 请求时使用 HTTP Basic:用户名 + 应用密码(不是登录密码)。

4.2 摘要生成接口

  • 端点POST /wp-json/wp-abilities/v1/abilities/ai/excerpt-generation/run
  • 若传入 context 为文章 ID(字符串),将自动用该文章正文生成摘要。

请求体示例

{
  "input": {
    "content": "这里填入要生成摘要的正文内容……"
  }
}

curl 示例(将站点与凭据替换为实际值):

curl -X POST "https://你的站点/wp-json/wp-abilities/v1/abilities/ai/excerpt-generation/run" 
  -u "用户名:应用密码" 
  -H "Content-Type: application/json" 
  -d '{"input":{"content":"你的文章内容..."}}'

4.3 标题生成接口

  • 端点POST /wp-json/wp-abilities/v1/abilities/ai/title-generation/run
  • candidates 为返回的标题建议数量(可选)。
{
  "input": {
    "content": "文章正文内容",
    "candidates": 3
  }
}

4.4 常见错误

  • 401:认证失败,检查应用密码或 Cookie/Nonce。
  • 405:需使用 POST,不要用 GET。
  • 400:请求体需包含顶层 input 键,且 JSON 格式正确。
  • 404:插件未启用或该能力未注册,请确认实验已开启。

五、开发者扩展

5.1 注册自定义实验

在主题或插件中通过动作钩子注册自己的实验:

add_action( 'ai_experiments_register_experiments', function( $registry ) {
    $registry->register_experiment( new My_Custom_Experiment() );
} );

自定义实验类需继承 WordPressAIAbstractsAbstract_Experiment,实现 load_experiment_metadata()register() 等,详见插件内 includes/Experiments/Example_Experiment 与仓库 DEVELOPER_GUIDE.md

5.2 常用钩子

  • ai_experiments_default_experiment_classes:过滤默认实验类列表(增删实验类)。
  • ai_experiment_{实验ID}_enabled:按 ID 禁用某个实验,例如 ai_experiment_example-experiment_enabled 返回 false
  • ai_experiments_enabled:禁用所有实验时使用。

5.3 资源加载

前端资源通过 WordPressAIAsset_Loader 加载,脚本/样式需先经 webpack 构建到 build/,再通过 Asset_Loader::enqueue_script / enqueue_style 按 handle 与路径名注册。扩展新实验时需在 webpack.config.js 中配置对应入口。

六、测试与调试

  • 本地测试:单元与集成测试使用 PHPUnit,可运行 composer test;静态分析可运行 composer stan
  • REST 调试:使用能力探索器(工具 → 能力探索器)在后台直接调用能力,或使用 Postman/curl 按上文接口示例请求。
  • E2E:仓库内提供 Playwright E2E,详见 CONTRIBUTING.mdtests/e2e/

七、相关链接

本文档基于插件 docs 目录与使用经验整理,随插件版本可能略有差异,以官方仓库与 in-repo 文档为准。

留下第一个评论