Proofreader API

发布时间:2025 年 9 月 4 日

说明类视频 Web 扩展程序 Chrome 状态 目的
GitHub 源试用 源试用 源试用 源试用 视图 从意图到原型

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

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

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

使用场景

您可能出于多种原因想要使用 Proofreader API,例如:

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

您的使用场景是否未列出?加入抢先试用计划,分享您的反馈。

开始使用

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

查看硬件要求

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

Language Detector API 和 Translator API 可在桌面版 Chrome 中使用。这些 API 不适用于移动设备。当满足以下条件时,Prompt API、Summarizer API、Writer API、Rewriter API 和 Proofreader API 可在 Chrome 中运行:

  • 操作系统:Windows 10 或 11;macOS 13 及更高版本(Ventura 及更高版本); Linux;或 ChromeOS(从平台 16389.0.0 及更高版本开始)在 Chromebook Plus 设备上运行。 非 Chromebook Plus 设备上的 Android 版 Chrome、iOS 版 Chrome 和 ChromeOS 版 Chrome 尚不支持使用 Gemini Nano 的 API。
  • 存储空间:包含 Chrome 个人资料的卷上至少有 22 GB 的可用空间。
  • GPU:VRAM 严格大于 4 GB。
  • 网络:无限流量或不按流量计费的网络连接。

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

添加对 localhost 的支持

如需在源试用期间访问 localhost 上的 Proofreader API,您必须将 Chrome 更新到最新版本。然后,请按下列步骤操作:

  1. 前往chrome://flags/#proofreader-api-for-gemini-nano
  2. 选择已启用
  3. 点击重新启动或重新启动 Chrome。

报名参加源试用

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

  1. 确认《Google 生成式 AI 使用限制政策》
  2. 前往 Proofreader API 来源试用
  3. 点击注册,然后填写表单。在“Web 来源”字段中,提供您的来源或扩展程序 ID (chrome-extension://YOUR_EXTENSION_ID)。
  4. 如需提交,请点击注册
  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.create() 函数。

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

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

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

不支持 explainer 中的 includeCorrectionTypesincludeCorrectionExplanation 选项。

开始校对用户文本

调用 proofread() 可获取输入文本的更正建议:

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

更正是一种 ProofreadResult。在 corrected 属性中查找完全更正后的输入,并在 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

默认情况下,校对工具 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 园地

互动和分享反馈

Proofreader API 正在积极讨论中,将来可能会发生变化。如果您试用了此 API 并有反馈意见,欢迎随时告诉我们。

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