校对 API 是一种实验性 Web API,它允许你通过网站或浏览器扩展的 JavaScript 代码使用内置于 Microsoft Edge 中的 SLM) (小型语言模型来更正文本中的语法、拼写和标点错误。
有关校对 API 的介绍性信息,请参阅 Proofreader API Explainer。
详细内容:
校对器 API 的可用性
从版本 142 开始,校对 API 在 Microsoft Edge Canary 或开发频道中以开发人员预览版的形式提供。
校对 API 进行优化,可更正文本内容中的语法、拼写和标点错误。 若要详细了解这些 API 可能无法提供的更多自定义提示工程方案的替代方法,请参阅 使用提示 API 提示内置语言模型。
确定要使用的 API
若要在网站和浏览器扩展中利用 AI 功能,还可以使用以下方法:
将网络请求发送到基于云的 AI 服务,例如Azure AI 解决方案。
使用 Web 神经网络 (WebNN) API 或 ONNX Runtime for Web 运行本地 AI 模型。
校对 API 使用小型语言模型 (SLM) ,该模型在同一设备上运行,在该设备上使用模型的输入和输出 (即本地) 。 与基于云的解决方案相比,这具有以下优势:
降低成本: 使用云 AI 服务不产生任何费用。
网络独立性: 除了初始模型下载之外,提示模型时不会有网络延迟,并且当设备脱机时也可以使用模型。
改进的隐私: 输入到模型的数据永远不会离开设备,也不会收集 (例如) 训练 AI 模型。
校对 API 使用由 Microsoft Edge 提供并内置于浏览器中的模型,该模型与自定义本地解决方案(例如基于 WebGPU、WebNN 或 WebAssembly 的解决方案)相较,具有其他优势:
共享一次性成本: 首次调用 API 时,将下载浏览器提供的模型,然后在浏览器中运行的所有网站之间共享该模型,从而降低用户和开发人员的网络成本。
简化 Web 开发人员的用法: 内置模型可以使用简单的 Web API 来运行,不需要 AI/ML 专业知识或使用第三方框架。
Phi-4-mini 模型
校对 API 使用内置于 Microsoft Edge 中的 Phi-4-mini 模型。 Phi-4-mini 是一种功能强大的小语言模型,擅长于基于文本的任务。 若要了解有关 Phi-4-mini 及其功能的详细信息,请参阅 microsoft/Phi-4-mini-指令中的模型卡。
免责声明
与其他语言模型一样,Phi 系列模型的行为方式可能不公平、不可靠或冒犯性。 若要了解详细信息,请参阅 负责任 AI 注意事项。
硬件要求
校对 API 开发人员预览版适用于具有硬件功能的设备,这些设备可生成小型语言模型 (SLM) 具有可预测的质量和延迟的输出。
校对 API 具有以下要求:
作系统:Windows 10 或 11 以及 macOS 13.3 或更高版本。
存储: 包含 Edge 配置文件的卷上至少有 20 GB 可用。 如果可用存储空间低于 10 GB,则将删除该模型,以确保其他浏览器功能有足够的空间正常运行。
GPU: 5.5 GB 或更多 VRAM。
网络: 无限制的数据计划或非计量连接。 如果使用按流量计费的连接,则不会下载模型。
若要检查设备是否支持校对 API 开发人员预览版,请参阅下面的启用校对器 API 并检查设备性能类。
由于校对 API 的实验性,你可能会发现特定硬件配置存在问题。 如果发现特定硬件配置存在问题,请在 MSEdgeExplainers 存储库 中打开新问题 来提供反馈。
模型可用性
网站首次调用内置 AI API 时,需要初始下载模型。 创建新的校对 API 会话时,可以使用“监视器”选项监视模型下载。 请参阅下面的 监视模型下载进度。
启用校对 API
若要在 Microsoft Edge 中使用任何校对 API,请执行以下作:
请确保使用最新版本的 Microsoft Edge Canary 或 Dev (版本 142 或更高版本) 。 请参阅 成为Microsoft Edge 预览体验成员。
在 Microsoft Edge Canary 或 Dev 中,打开一个新选项卡或窗口,然后转到
edge://flags。在搜索框中,在页面顶部输入 适用于 Phi mini 的校对 API。
筛选页面以显示匹配标志。
选择“适用于 Phi 的校对 API”迷你标志旁边的“已启用”:
(可选)若要在本地记录可能对调试问题有用的信息,还可以启用 “启用设备 AI 模型调试日志” 标志。
Microsoft Edge Canary 或 Dev 重启。
若要检查设备是否满足校对 API 开发人员预览版的硬件要求,请打开一个新选项卡,转到
edge://on-device-internals,然后检查设备性能类值。如果设备性能类为 “高 ”或“更高”,则设备应支持校对器 API。 如果继续发现问题,请 提交新问题。
查看工作示例
若要查看校对 API 的运行情况,并检查使用这些 API 的现有代码,请执行以下作:
在 Microsoft Edge Canary 或 Dev 浏览器中,打开选项卡或窗口并转到 校对 API场。
在顶部的信息横幅中,检查状态。 状态最初为 “设备内 API”和“模型下载”:
下载模型后,信息横幅显示 “设备上的 API 和可用模型”,指示可以使用 API 和模型:
如果模型未开始下载,请重启Microsoft Edge,然后重试。
只有满足某些硬件要求的设备才支持校对器 API。 有关详细信息,请参阅上面的 硬件要求。
(可选)更改页面中的内容和设置。 例如,修改文本进行校对,或更改预期的输入语言。
单击页面底部的 “校对 ”按钮。
输出在页面的响应部分中生成:
另请参阅:
- /built-in-ai/ - 内置 AI场演示的自述文件和源代码。
使用校对 API
检查 API 是否已启用
在网站代码中使用校对器 API 之前,检查通过测试是否存在 对象来启用 APIProofreader:
if (!Proofreader) {
// The Proofreader API is not available.
}
检查是否可以使用模型
仅当设备支持运行模型时,以及Microsoft Edge 下载语言模型和模型运行时后,才能使用校对器 API。
若要检查是否可以使用 API,请使用 availability() 方法:
const availability = await Proofreader.availability();
if (availability == "unavailable") {
// The model is not available.
}
if (availability == "downloadable" || availability == "downloading") {
// The model can be used, but it needs to be downloaded first.
}
if (availability == "available") {
// The model is available and can be used.
}
创建新会话
创建会话会指示浏览器在内存中加载语言模型,以便可以使用它。 在使用校对 API 更正文本之前,请使用 create() 方法创建新会话:
// Create a Proofreader session.
const session = await Proofreader.create();
若要自定义模型会话,可以将选项传递给 create() 方法:
// Create a Proofreader session with options.
const session = await Proofreader.create(options);
下面列出了可用选项:
| 选项 | 说明 |
|---|---|
monitor |
用于监视模型下载进度的函数。 请参阅下面的 监视模型下载进度。 |
expectedInputLanguages |
字符串数组。 每个字符串都是输入文本应包含的语言。 例如:["en", "es"]。 |
监视模型下载进度
可以使用 选项跟踪模型下载 monitor 进度。 当模型尚未完全下载到要使用的设备上时,这非常有用,以通知用户等待。
// Create a Proofreader session with the monitor option to monitor the model
// download.
const session = await Proofreader.create({
monitor: m => {
// Use the monitor object argument to add an listener for the
// downloadprogress event.
m.addEventListener("downloadprogress", event => {
// The event is an object with the loaded and total properties.
if (event.loaded == event.total) {
// The model is fully downloaded.
} else {
// The model is still downloading.
const percentageComplete = (event.loaded / event.total) * 100;
}
});
}
});
运行校对 API
若要使用校对器 API 生成修订的文本,请在创建相应的模型会话后,使用 session.proofread() 方法。 此方法返回一个承诺,该承诺在校对器 API 完成生成更正文本后解析。
// Create a Proofreader session.
const session = await Proofreader.create();
// Correct the text and wait for the result.
const result = await session.proofread(textToBeCorrected);
// Use the result.
console.log(result);
使用校对 API 的结果
方法 session.proofread() 返回一个承诺,该承诺解析为具有以下属性的 对象:
| 属性 | 说明 |
|---|---|
correctedInput |
更正的文本,作为字符串。 |
corrections |
更正对象的数组。 |
更正对象具有以下属性:
| 属性 | 说明 |
|---|---|
startIndex |
已更正的输入文本中第一个字符的索引。 |
endIndex |
输入文本中已更正的最后一个字符的索引。 |
correction |
替换错误文本的字符串。 |
以下示例演示如何使用 方法的结果 session.proofread() :
// Create a Proofreader session.
const session = await Proofreader.create();
// Correct the text and wait for the result.
const result = await session.proofread(textToBeCorrected);
// Log the corrected text.
console.log("Corrected text:", result.correctedInput);
// Log each correction.
result.corrections.forEach(({ startIndex, endIndex, correction }) => {
const initialText = textToBeCorrected.slice(startIndex, endIndex);
console.log(`Replaced text "${initialText}" (index ${startIndex} to ${endIndex}) with "${correction}"`);
});
销毁会话
销毁会话,让浏览器知道你不再需要语言模型,以便可以从内存中卸载该模型。
可以通过两种不同的方式销毁会话:
- 通过使用
destroy()方法。 - 通过使用
AbortController。
使用 destroy () 方法销毁会话
可以使用 session.destroy() 方法销毁校对程序会话:
const session = await Proofreader.create();
// Later, destroy the session by using the destroy method.
session.destroy();
使用 AbortController 销毁会话
或者,可以创建对象 AbortController 、创建 Proofreader 会话,然后调用 abort():
// Create an AbortController object.
const controller = new AbortController();
// Create a Proofreader session and pass the
// AbortController signal object by using the signal option.
const session = await Proofreader.create({ signal: controller.signal });
// Later, such as when the user interacts with the UI, destroy the session by
// calling the abort() function of the AbortController object.
controller.abort();
发送反馈
我们非常有兴趣了解你打算使用校对器 API 的方案范围、API 或语言模型的任何问题,以及新的特定于任务的 API 是否有用。
若要发送有关方案和要实现的任务的反馈,请向 校对 API 反馈问题添加注释。
如果在改用 API 时发现任何问题,请在存储库中报告。
还可以在 W3C Web 机器学习工作组存储库中参与有关校对 API 设计的讨论。
另请参阅
- Web 机器学习 GitHub 存储库上的校对 API 解释器。
- 使用编写辅助 API 编写、重写和汇总文本。
- 使用提示 API 提示内置语言模型。
- /built-in-ai/ - 内置 AI场演示的源代码和自述文件。