开始使用内置 AI

Alexandra Klepper
Alexandra Klepper

发布时间:2024 年 12 月 12 日;最后更新时间:2025 年 5 月 20 日

借助内置 AI API,您的 Web 应用可以执行 AI 赋能的任务,而无需部署或管理自己的 AI 模型。我们正在努力在浏览器之间实现这些 API 的标准化

要求

如需使用内置 AI,需要满足模型和硬件要求。

模型

Translator 和 Language Detector API 使用的是专家模型。所有其他 API 都使用旨在本地运行于台式机和笔记本电脑上的语言模型。

Summarizer API、Writer API、Rewriter API 和 Proofreader API 仅支持文本到文本模态。Prompt API 具有多模态功能

Chrome 中的 Gemini Nano

Chrome 使用 Gemini Nano 语言模型。Gemini Nano 无法在移动设备上使用。

从 Chrome 140 开始,Gemini Nano 支持使用英语、西班牙语和日语输入和输出文本。

在使用内置 AI API 之前,请确认您已了解《Google 生成式 AI 使用限制政策》

硬件

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

Language Detector APITranslator API 可在桌面版 Chrome 中使用。这些 API 不适用于移动设备。

当满足以下条件时,Prompt APISummarizer APIWriter APIRewriter APIProofreader 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 或 CPU:内置模型可以使用 GPU 或 CPU 运行。
    • GPU:VRAM 严格大于 4 GB。
    • CPU:16 GB 或更多 RAM,以及 4 个或更多 CPU 核心。
  • 网络:无限流量或不按流量计费的网络连接。

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

开始构建

在不同的开发阶段,有多种内置 AI API 可供使用。有些功能已在 Chrome 稳定版中推出,有些功能仅面向源试用参与者提供,还有些功能仅面向抢先预览计划参与者提供。

每个 API 都有一组自己的说明,用于开始使用并下载模型,以便在本地原型设计和生产环境中进行源试用。

在构建 Chrome 扩展程序时,可以使用所有这些 API。

模型下载

API 和模型都内置在 Chrome 中。用户首次与这些 API 互动时,必须将模型下载到浏览器。

如需确定 API 是否可用且已准备就绪,请调用异步 availability() 函数,该函数会返回一个包含以下值之一的 Promise:

  • "unavailable":用户的设备或所请求的会话选项不受支持。设备可能电量不足或磁盘空间不足。
  • "downloadable":需要进行额外的下载才能创建会话,这可能包括专家模型、语言模型或微调。 可能需要用户激活才能调用 create()
  • "downloading":下载正在进行中,必须先完成下载,然后才能使用会话。
  • "available":您可以立即创建会话。

某些 API 在调用可用性时需要额外的选项。例如,提示 API 需要声明语言支持:

// Makes sure the model is available for English and Japanese.
await LanguageModel.availability({ languages: ["en", "ja"] });

用户激活

如果设备可以支持内置 AI API,但模型尚未下载,则用户必须与您的网页进行有意义的互动,您的应用才能开始与 create() 建立会话。

使用 UserActivation.isActive 属性可确认用户自网页完成加载以来是否直接与网页互动过。这可以包括点按、点击、按键、mousedown 或其他粘滞激活事件

// Check for user activation.
if (navigator.userActivation.isActive) {
  // Create an instance of a built-in API
}

例如,使用 Summarizer API,您可以要求用户与显示“总结”的按钮互动以激活 Summarizer.create(),也可以在用户开始输入内容时(即发生 keydown 事件时)创建总结器。

在 localhost 上使用 API

所有 API 均可在 Chrome 中的 localhost 上使用。

  1. 前往chrome://flags/#optimization-guide-on-device-model
  2. 选择已启用
  3. 点击重新启动或重新启动 Chrome。

对于使用 Gemini Nano 的 API,您还必须将 chrome://flags/#prompt-api-for-gemini-nano 设置为 EnabledEnabled multilingual。您可以在开发者工具控制台中确认模型已下载并按预期运行。 在控制台中运行 await LanguageModel.availability();

排查 localhost 问题

如果 chrome://flags 中未显示这些标志,请确保您已下载最新版 Chrome

如果模型无法按预期运行,请按以下步骤操作:

  1. 重新启动 Chrome。
  2. 前往chrome://on-device-internals
  3. 选择模型状态标签页,并确保没有错误。
  4. 打开开发者工具,然后在控制台中输入 LanguageModel.availability();。此命令应返回 available

如有必要,请等待一段时间,然后重复上述步骤。

标准流程

我们正在努力标准化这些 API,以便它们能在所有浏览器中正常运行。这意味着我们已向 Web 平台社区提议了这些 API,并将其移至 W3C Web Incubator Community Group 以供进一步讨论。

我们正在就每个 API 向 W3C、Mozilla 和 WebKit 征求反馈意见。

互动和分享反馈

如果您试用了内置 AI 并有反馈意见,欢迎随时告诉我们。