发布时间:2025 年 5 月 20 日,上次更新时间:2026 年 8 月 26 日
| 说明类视频 | Web | 扩展程序 | Chrome 状态 | 目的 |
|---|---|---|---|---|
| GitHub | 查看 | 发货意向 | ||
| GitHub | 查看 | Intent to Experiment |
借助 Prompt API,您可以向 Chrome 中的基础模型发送自然语言请求。
您可以通过多种方式使用 Prompt API。例如,您可以构建:
- AI 赋能的搜索:根据网页内容回答问题。
- 个性化新闻 Feed:构建一个可动态对文章进行分类的 Feed,并允许用户过滤相应内容。
- 自定义内容过滤条件。分析新闻报道,并根据用户定义的主题自动模糊处理或隐藏内容。
- 日历活动创建。开发一款可自动从网页中提取活动详情的 Chrome 扩展程序,以便用户只需几个步骤即可创建日历条目。
- 无缝提取联系人信息。构建一个可从网站提取联系信息的扩展程序,让用户更轻松地联系商家或向其联系人列表添加详细信息。
以上只是几个示例,我们期待看到您的精彩创作。
查看硬件要求
开发者和在 Chrome 中使用这些 API 运行功能的用户必须满足以下要求。其他浏览器可能有不同的运行要求。
语言检测器和翻译器 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 尚不支持使用基础模型的 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 不会公开抽样参数,因为
temperature和topK等数值设置在不同的底层模型和架构中无法保持一致。 - Web(源试用):源试用可解锁
samplingMode选项,该选项使用描述性枚举值而非原始数字来调整输出可预测性。 - Chrome 扩展程序:支持旧版数值参数(
topK、temperature)和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 对象通过 topK 和 temperature 自定义每个会话。
静态 LanguageModel.params() 函数会告知您语言模型的默认参数限制和最大参数限制:
// Only available in Chrome Extensions
const params = await LanguageModel.params();
// {defaultTopK: 3, maxTopK: 128, defaultTemperature: 1, maxTemperature: 2}