Proofreader API

发布时间:2025 年 9 月 12 日

说明类视频 Web 扩展程序 Chrome 状态 目的
GitHub 源试用 源试用 源试用 源试用 查看 实验意向

校对是指查找并更正语法、拼写和标点错误的过程。浏览器和操作系统越来越多地 为其编写工具(例如 Google 文档)提供校对功能。

借助 Proofreader API,您可以为 Web 应用或扩展程序提供交互式校对功能,并内置 AI。此 API 提供以下功能:

  • 更正:更正用户输入的语法、拼写和标点错误。
  • 标签:按错误类型为每项更正添加标签。
  • 说明:用简单易懂的语言说明错误是什么或为什么需要更正 。

使用场景

您可能需要使用 Proofreader API 的原因有很多,例如:

  • 在提交帖子之前,建议更正论坛消息、文章评论和电子邮件。
  • 在积极记笔记期间提供更正。

缺少您的使用场景?加入抢先试用计划 ,分享您的反馈。

开始使用

加入 Proofreader API 源试用,该试用将在 Chrome 141 至 145 中运行。

查看硬件要求

开发者和在 Chrome 中使用这些 API 运行功能的用户需要满足以下要求。其他浏览器可能有不同的运行要求。

Language DetectorTranslator APIs 可在桌面版 Chrome 中运行。这些 API 无法在移动设备上运行。

在满足以下条件时,Prompt APISummarizer APIWriter APIRewriter APIProofreader API 可在 Chrome 中运行:

  • 操作系统:Windows 10 或 11;macOS 13+(Ventura 及更高版本); Linux;或 Chromebook Plus 设备上的 ChromeOS(平台 16389.0.0 及更高版本)。 Chromebook Plus 设备。 使用 Gemini Nano 的 API 尚不支持 Android 版 Chrome、iOS 版 Chrome 和非 Chromebook Plus 设备上的 ChromeOS 。
  • 存储空间:包含 Chrome 配置文件的卷上至少有 22 GB 的可用空间。
  • GPU 或 CPU:内置模型可以使用 GPU 或 CPU 运行。
    • GPU:VRAM 严格超过 4 GB。
    • CPU:RAM 16 GB 或更多,CPU 核心数 4 个或更多。
    • 注意:使用音频输入的 Prompt API 需要 GPU。
  • 网络:无限数据或不按流量计费的连接。

随着浏览器更新模型,Gemini Nano 的确切大小可能会有所不同。如需确定当前大小,请访问 chrome://on-device-internals

添加对 localhost 的支持

所有内置 AI API 都可在 Chrome 中的 localhost 上使用。将以下标志设置为 Enabled

  • chrome://flags/#optimization-guide-on-device-model
  • chrome://flags/#prompt-api-for-gemini-nano-multimodal-input
  • chrome://flags/#proofreader-api-for-gemini-nano

然后,点击 Relaunch (重新启动)或重启 Chrome。如果遇到错误, 请对 localhost 进行问题排查

注册源试用

如需开始使用 Proofreader API,请按以下步骤操作:

  1. 确认 Google 的《生成式 AI 使用限制政策》
  2. 前往 Proofreader API 源试用
  3. 点击 Register (注册)并填写相应表单。在 Web origin(网站源)字段中,提供 您的 网站源 或 扩展程序 ID,chrome-extension://YOUR_EXTENSION_ID
  4. 如需提交,请点击 Register (注册)。
  5. 复制提供的令牌,并将其添加到来源中的每个参与网页,或将其包含在扩展程序清单中。
  6. 开始使用 Proofreader API。

详细了解如何开始使用源试用

使用 Proofreader API

如需确定模型是否已准备就绪,请调用 Proofreader.availability()。如果对 availability() 的响应为 "downloadable",请监听下载进度 并通知用户,因为下载可能需要一些时间。

const options = {
  expectedInputLanguages: ['en'],
};
const available = if (Proofreader.availability("downloadable") === true);

如需触发下载并实例化校对工具,请检查 用户激活情况。然后,调用异步 Proofreader.create() 函数。

const session = await Proofreader.create({
  monitor(m) {
    m.addEventListener('downloadprogress', (e) => {
      console.log(`Downloaded ${e.loaded * 100}%`);
    });
  },
  ...options,
});

创建 Proofreader 对象

如需创建 Proofreader,请使用 Proofreader.create() 函数。

const proofreader = await Proofreader.create({
  expectedInputLanguages: ["en"],
  monitor(m) {
    m.addEventListener("downloadprogress", e => {
      console.log(Downloaded ${e.loaded * 100}%);
    });
  }
};

create() 方法包含以下选项:

  • expectedInputLanguages:预期输入语言的数组。

不支持说明类视频中的 includeCorrectionTypesincludeCorrectionExplanation 选项。

开始校对用户文本

调用 proofread() 以获取输入文本的更正:

const proofreadResult = await proofreader.proofread(
  'I seen him yesterday at the store, and he bought two loafs of bread.',
);

更正是一种 ProofreadResult。在 correctedInput 属性中查找完全更正的输入,并在 corrections 数组中查找更正列表:

let inputRenderIndex = 0;

console.log(proofreadResult.correction);

for (const correction of proofreadResult.corrections) {
  // Render part of input that has no error.
  if (correction.startIndex > inputRenderIndex) {
    const unchangedInput = document.createElement('span');
    unchangedInput.textContent = input.substring(inputRenderIndex, correction.startIndex);
    editBox.append(unchangedInput);
  }
  // Render part of input that has an error and highlight as such.
  const errorInput = document.createElement('span');
  errorInput.textContent = input.substring(correction.startIndex, correction.endIndex);
  errorInput.classList.add('error');
  editBox.append(errorInput);
  inputRenderIndex = correction.endIndex;
}

// Render the rest of the input that has no error.
if (inputRenderIndex !== input.length){
  const unchangedInput = document.createElement('span');
  unchangedInput.textContent = input.substring(inputRenderIndex, input.length);
  editBox.append(unchangedInput);
}

权限政策、iframe 和 Web Worker

默认情况下,Proofreader API 仅适用于顶级窗口及其同源 iframe。可以使用权限政策 allow="" 属性将对 API 的访问权限委托给跨源 iframe:

<!--
  The hosting site at https://main.example.com can grant a cross-origin iframe
  at https://cross-origin.example.com/ access to the Proofreader API by
  setting the `allow="proofreader"` attribute.
-->
<iframe src="https://cross-origin.example.com/" allow="proofreader"></iframe>

Proofreader API 不适用于 Web Worker。这是因为,为了检查权限政策状态,需要为每个 Worker 建立负责任的文档,而这非常复杂。

演示

试用 Proofreader API Playground 并查看 源代码

参与互动并分享反馈

Proofreader API 正处于积极讨论阶段,将来可能会发生变化。如果您试用了此 API 并有反馈,我们非常期待收到您的反馈。

了解浏览器中所有使用模型(包括大语言模型)的内置 AI API