发布时间:2025 年 9 月 12 日
说明类视频 | 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。
- CPU 推理:16 GB 或更多 RAM 和 4 个或更多 CPU 核心。
- 网络:无限流量或不按流量计费的网络连接。
随着浏览器更新模型,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 中不可用。这是因为为每个工作器建立负责任的文档以检查权限政策状态非常复杂。
演示
互动并分享反馈
Proofreader API 正在积极讨论中,将来可能会发生变化。如果您试用了此 API 并有反馈意见,欢迎随时告诉我们。
- 阅读说明、提出问题并参与讨论。
- 在 Chrome 状态中查看 Chrome 的实现
- 请参阅 Mozilla 标准立场和 WebKit 标准立场。
- 加入抢先预览计划,抢先了解新 API 并加入我们的邮寄名单。
- 如果您对 Chrome 的实现有任何反馈,请提交 Chromium bug。
探索所有在浏览器中使用模型(包括大语言模型)的内置 AI API。