Prompt API

发布时间:2025 年 5 月 20 日,上次更新时间:2026 年 8 月 26 日

说明类视频 Web 扩展程序 Chrome 状态 目的
GitHub Chrome 148 Chrome 138 查看 发货意向
GitHub 源试用 采样参数的源试用 Chrome 148 查看 Intent to Experiment

借助 Prompt API,您可以向 Chrome 中的基础模型发送自然语言请求。

您可以通过多种方式使用 Prompt API。例如,您可以构建:

  • AI 赋能的搜索:根据网页内容回答问题。
  • 个性化新闻 Feed:构建一个可动态对文章进行分类的 Feed,并允许用户过滤相应内容。
  • 自定义内容过滤条件。分析新闻报道,并根据用户定义的主题自动模糊处理或隐藏内容。
  • 日历活动创建。开发一款可自动从网页中提取活动详情的 Chrome 扩展程序,以便用户只需几个步骤即可创建日历条目。
  • 无缝提取联系人信息。构建一个可从网站提取联系信息的扩展程序,让用户更轻松地联系商家或向其联系人列表添加详细信息。

以上只是几个示例,我们期待看到您的精彩创作。

查看硬件要求

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

语言检测器翻译器 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 尚不支持使用基础模型的 API。
  • 存储空间:包含 Chrome 个人资料的卷上至少有 22 GB 的可用空间。
  • GPU 或 CPU:内置模型可以使用 GPU 或 CPU 运行。
    • GPU:VRAM 严格大于 4 GB。
    • CPU:16 GB 或更多 RAM 和 4 个或更多 CPU 核心。
    • 注意:使用音频输入的 Prompt API 需要 GPU。
  • 网络:无限流量或不按流量计费的网络连接。

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

使用 Prompt API

Prompt API 使用 Chrome 中的 Gemini Nano 模型。虽然该 API 已内置到 Chrome 中,但模型会在来源首次使用该 API 时单独下载。

如需确定模型是否已准备就绪,请调用 LanguageModel.availability()

const availability = await LanguageModel.availability({
  // The same options in `prompt()` or `promptStreaming()`
});

为了触发下载并实例化语言模型,请检查是否存在用户激活。然后,调用 create() 函数

const session = await LanguageModel.create({
  monitor(m) {
    m.addEventListener('downloadprogress', (e) => {
      console.log(`Downloaded ${e.loaded * 100}%`);
    });
  },
});

如果对 availability() 的响应为 downloading,请监听下载进度并告知用户,因为下载可能需要一些时间。

创建会话

Prompt API 可以运行后,您可以使用 create() 函数创建会话。

const session = await LanguageModel.create();

create() 函数的可选选项对象包含一个 signal 字段,可让您传递 AbortSignal 来销毁会话。

const controller = new AbortController();
stopButton.onclick = () => controller.abort();

const session = await LanguageModel.create({
  signal: controller.signal,
});

采样参数

{: #sampling_parameters }

通过控制抽样,您可以调整模型回答的可预测性(确定性)或创意性(多样性)。抽样参数的可用性因 Web 平台和 Chrome 扩展程序而异:

  • Web(默认):默认情况下,Web 上的 Prompt API 不会公开抽样参数,因为 temperaturetopK 等数值设置在不同的底层模型和架构中无法保持一致。
  • Web(源试用)源试用可解锁 samplingMode 选项,该选项使用描述性枚举值而非原始数字来调整输出可预测性。
  • Chrome 扩展程序:支持旧版数值参数(topKtemperature)和 LanguageModel.params() 方法。

Web 采样模式(源试用)

参与采样参数源试用时,您可以将 samplingMode 选项传递给 LanguageModel.create()(或 LanguageModel.availability())。

支持的 samplingMode 枚举值如下:

  • "most-predictable":确定性和可预测性最高。
  • "predictable":输出更可预测,变化更小。
  • "slightly-predictable":输出结果略微可预测。
  • "balanced":在可预测性和创造性之间取得平衡(典型的默认行为)。
  • "slightly-creative":略有变化且富有创意的输出。
  • "creative":富有创意且多样的输出。
  • "most-creative":最大限度地提高多样性和创意性。
// Available on the web with the Sampling Parameters Origin Trial enabled
const session = await LanguageModel.create({
  samplingMode: 'creative',
});

// The configured sampling mode is exposed on the session instance
console.log(session.samplingMode);
// "creative"

Chrome 扩展程序的抽样参数

在 Chrome 扩展程序中使用 Prompt API 时,仍可使用 options 对象通过 topKtemperature 自定义每个会话。

静态 LanguageModel.params() 函数会告知您语言模型的默认参数限制和最大参数限制:

  • defaultTopK:默认的 top-K 值。
  • maxTopK最大 top-K 值。
  • defaultTemperature:默认温度
  • maxTemperature:最高温度。
// Only available in Chrome Extensions
const params = await LanguageModel.params();
// {defaultTopK: 3, maxTopK: 128, defaultTemperature: 1, maxTemperature: 2}