发布时间: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 更新到最新版本。然后,请按下列步骤操作:
- 前往
chrome://flags/#proofreader-api-for-gemini-nano
。 - 选择已启用。
- 点击重新启动或重新启动 Chrome。
报名参加源试用
如需开始使用 Proofreader API,请按以下步骤操作:
- 确认《Google 生成式 AI 使用限制政策》。
- 前往 Proofreader API 来源试用。
- 点击注册,然后填写表单。在“Web 来源”字段中,提供您的来源或扩展程序 ID (
chrome-extension://YOUR_EXTENSION_ID
)。 - 如需提交,请点击注册。
- 复制提供的令牌,并将其添加到来源中的每个参与网页,或将其包含在扩展程序清单中。
- 如果您要构建扩展程序,请按照扩展程序源试用说明进行操作
- 开始使用 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 中的 includeCorrectionTypes
和 includeCorrectionExplanation
选项。
开始校对用户文本
调用 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 正在积极讨论中,将来可能会发生变化。如果您试用了此 API 并有反馈意见,欢迎随时告诉我们。
- 阅读说明、提出问题并参与讨论。
- 在 Chrome 状态中查看 Chrome 的实现
- 请参阅 Mozilla 标准立场和 WebKit 标准立场。
- 加入抢先预览计划,抢先了解新 API 并加入我们的邮寄名单。
- 如果您对 Chrome 的实现有任何反馈,请提交 Chromium bug。
了解所有内置 AI API,这些 API 使用浏览器中的模型(包括大语言模型)。