首页 > 教程攻略 > ai资讯 >深度探索 | 新版 Chrome 内置 AI 模型 Gemini Nano 使用指南

深度探索 | 新版 Chrome 内置 AI 模型 Gemini Nano 使用指南

来源:互联网 时间:2026-08-20 14:06:18

Gemini Nano 简介

在Gemini家族里,Nano是最小的那个,但它可不是“体验版”或者“缩水版”——它是专门为了让AI在设备本地跑起来而设计的。换句话说,它已经内建在Chrome浏览器里了,只要你的电脑配置不算太老,就能在本地运行它,完全不依赖云端。摘要、翻译、写作这类常见需求,它都能干。而且,它完全支持本地和离线使用,当然,也不用另外付费。

默认情况下,Gemini Nano的上下文窗口是1024个令牌。从技术上说,它可以最多扩展到32k,但容量大了性能就会打折扣,这个权衡得心里有数。

在设备上跑有哪些好处?

  • 敏感数据本地处理

    :不用把数据传到云端,安全。
  • 离线也能用AI

    :没网的时候它照样干活。

安装和配置

系统要求

你得用Chrome Canary或Chrome Dev,版本不低于128.0.6545.0。特别提醒一下,Chrome在127和128之间出过一个回退问题,所以最好用这个版本或者更高。

另外,Chrome下载和运行Gemini Nano还得满足下面这些条件:

方面 Windows MacOS Linux

操作系统

10, 11 ≥ 13 (Ventura) 未指定

存储器

包含Chrome配置文件的卷上至少有22GB可用空间。注意,模型实际占用小得多,这里只是留足余量。

GPU

集成或独立显卡

显存

4GB(最低)

网络连接

非计量连接

目前尚不支持:

Android版、iOS版和ChromeOS版的Chrome。

安装步骤

启用Gemini Nano和Prompt API

  1. 在Chrome里打开新标签页,访问 chrome://flags/#optimization-guide-on-device-model

  2. 选择“启用 BypassPerfRequirement”。这一步是为了绕过性能检查,避免它阻止模型下载到你的设备上。

  3. 访问 chrome://flags/#prompt-api-for-gemini-nano

  4. 选择“启用”。

  5. 重启Chrome。

确认Gemini Nano是否可用

  1. 打开开发者工具,在控制台输入 await window.ai.canCreateTextSession();。如果返回“readily”,那就说明一切就绪了。

  • 如果没返回,那就强制Chrome识别你想用这个API。在控制台输入 await window.ai.createTextSession();
  • 再次重启Chrome,打开新标签页,访问 chrome://components
  • 确认“Optimization Guide On Device Model”的版本号是否大于等于

    2024.5.21.1031

  • 如果没看到版本号,点击“检查更新”来强制下载。

故障排除方法

有些用户在组件里找不到“Optimization Guide On Device Model”。根据一些用户的反馈,下面这个步骤可能管用:

  • chrome://flags/#optimization-guide-on-device-model 设置为“启用”而不是“启用并绕过性能要求”,然后再按步骤走一遍。

在实际设置中,我试过最新的Chrome Dev和Canary,启用了Gemini Nano和Prompt API后,重启Chrome,在components里就是找不到它。重复了两次都不行。后来把“test third party cookie phaseout”设置为“enabled”,等了几分钟,在Chrome Canary里终于看到了。

模型下载延迟

浏览器可能不会立刻开始下载模型。如果你的电脑满足所有条件,但调用 window.ai.createTextSession() 之后,在 chrome://components 上没看到下载开始,而且“优化指南设备内模型”显示版本0.0.0.0,那就保持浏览器打开几分钟,等调度程序触法下载。

我的体验

下面这张图是我写的一些脚本,和Gemini对话的过程。

在写脚本的过程中,反复测试、调整提示词,以及topK和temperature参数。一个直观的感受是,Gemini Nano的回复不稳定——Nano这个模型说到底还是太小了。折腾了好久,后来发现同类产品也有类似的问题。

也试过几个插件,对比下来,下面这个相对稳定一些:

Gemini AI Chrome In-Built

当然,它也不算完美,但对比了四五个产品之后,它确实是最稳的。

另外,aichrome.net 这个网站可以检测你的浏览器是否支持Chrome内置AI。

使用指南

基本使用示例

// 首先检查是否可以创建会话,这取决于模型的可用性和设备的特征。
const canCreate = await window.ai.canCreateTextSession();
// canCreate 的值可能是:
// "readily":模型已在设备上,创建会话很快完成
// "after-download":模型不在设备上,但设备支持,创建会话会触发下载(可能要等一会儿)
// "no":设备不支持该模型

if (canCreate !== "no") {
  const session = await window.ai.createTextSession();

  // 给模型发送提示,等待完整结果返回
  const result = await session.prompt("给我写一首诗");
  console.log(result);
}

这段代码展示了如何用Gemini Nano API创建文本会话并生成内容。先检查能否创建会话,再根据结果决定是否继续。如果能创建,就发一个提示(比如“给我写一首诗”),等模型生成完响应,最后输出到控制台。

流式传输示例

const canCreate = await window.ai.canCreateTextSession();

if (canCreate !== "no") {
  const session = await window.ai.createTextSession();

  // 向模型提供提示并流式传输结果:
  const stream = session.promptStreaming("给我写一首特别长的诗");
  for await (const chunk of stream) {
    console.log(chunk);
  }
}

这段代码展示了流式传输功能。主要步骤是:先检查能否创建会话,能的话就创建一个,然后用 promptStreaming 方法发提示(比如要求写一首长诗),再通过 for await...of 循环逐块接收并处理模型生成的内容,每收到一个数据块就打印出来。

会话选项和管理

每个会话都可以通过topK和temperature来调节。这些参数的默认值可以通过 window.ai.defaultTextSessionOptions() 获取。

const defaults = await window.ai.defaultTextSessionOptions();
const session = await window.ai.createGenericSession({
  temperature: 0.6, 
  topK: defaults.topK
});

终止会话

如果某个会话不再需要,可以调用 destroy() 来释放资源。会话销毁后就不能再用了,正在进行的执行也会被中止。如果你打算频繁提问,保留会话可能更好,因为创建会话需要时间。

await session.prompt(`
  你是一个友好、乐于助人的助手,专门提供服装选择建议。
`);

session.destroy();

// 这个 promise 会被拒绝,并返回一个错误,解释会话已被销毁。
await session.prompt(`
  今天我该穿什么?天气晴朗,我在T恤和polo衫之间犹豫不决。
`);

流式传输

目前,promptStreaming() 返回一个 ReadableStream,数据块是逐步构建的。比如下面这段代码,会记录出类似 "Hello,"、"Hello world,"、"Hello world I am,"、"Hello world I am an AI." 这样的序列。

for await (const chunk of stream) {
  console.log(chunk);
}

这不是预期的行为。谷歌打算让它和其他流式API保持一致——数据块应该是单条长流的连续部分。也就是说输出应该是 "Hello"、" world"、" I am"、" an AI" 这种样子。要实现预期的效果,可以这样:

let result = ';
let previousLength = 0;
for await (const chunk of stream) {
  const newContent = chunk.slice(previousLength);
  console.log(newContent);
  previousLength = chunk.length;  
  result += newContent;
}
console.log(result);

从 Chrome 128.0.6606.0 开始,会话期间发送给模型的信息会被保留,不需要每次都重新发整个对话。换句话说,每次调用 prompt()promptStreaming() 都是连续的交互。不过要注意,上下文窗口会随着每次提示不断填充,最终会开始淘汰最旧的令牌。如果想重新开始,可能需要调用 destroy() 或者新建一个会话。

提示建议

应该做的 不应该做的

在提示中包含示例。

示例能给模型提供清晰的方向,帮助生成更符合预期的输出。哪怕一个简短示例,效果也大不同。

避免有对错之分的用例。

模型有局限性,不一定能准确回答知识性问题。设计功能时要考虑到这点,别依赖完美答案。

添加规则。

明确的规则能提升输出的质量和一致性。比如规定语调或分类标准。

避免绕过用户的用例。

模型不一定总能给满意答案,应把它当支持工具,而不是替代方案。

添加角色。

指定角色能让输出更符合场景需求,比如让模型模拟某种身份。

避免自定义参数。

除非必要,否则保持默认参数。随意改参数可能导致不可预见的输出。

指定输出语言。

如果希望模型用非英语回答,要明确指定。这有助于获得更符合预期的多语言输出。

如何使用控制序列

控制序列用于帮助模型理解对话回合以及何时该回应。下面是一个使用示例:

单次提示示例

"[示例文章的全文]
这篇文章的改写摘要是:[示例摘要]

[要summarize的文章全文]
这篇文章的改写摘要是:"

少量示例提示

"[示例文章#1的全文]
这篇文章的改写摘要是:[示例摘要#1]

[示例文章#2的全文]
这篇文章的改写摘要是:[示例摘要#2]

[示例文章#3的全文]
这篇文章的改写摘要是:[示例摘要#3]

[要summarize的文章全文]
这篇文章的改写摘要是:"

异常处理和故障排除

方法 DOM异常 错误消息 注释

All methods

InvalidStateError

执行上下文无效。 JS上下文无效(例如,已分离的iframe)。确保从有效的JS上下文调用API。

createTextSession, defaultTextSessionOptions

OperationError

模型执行服务不可用。 重试,可能需要重启Chrome。

流式传输时

UnknownError

发生未知错误:<错误代码> 重试,可能需要重启Chrome。

NotSupportedError

请求无效。

UnknownError

发生了其他一般性故障。

NotReadableError

响应被禁用。

AbortError

请求被取消。

prompt, promptStreaming

InvalidStateError

模型执行会话已被销毁。 发生在会话被销毁后调用prompt或promptStreaming时。创建一个新会话。

createTextSession

NotSupportedError

初始化新会话时必须同时指定topK和temperature,或者两者都不指定。 发生在调用createTextSession时只指定部分可选参数。调用时要同时指定topK和temperature,或者都不指定。如果只想改一个参数,用defaultTextSessionOptions里的值。

InvalidStateError

无法创建会话。 如果 canCreateTextSession 返回“readily”,则不应发生。重试,可能需要重启Chrome。

更多内容,可查看 prompt API explainer

未来应用场景

等Chrome内置AI能力再提升一些,可能的应用场景包括:

  1. 智能翻译插件

    :浏览外语网页时一键翻译整个页面,相比传统翻译,AI模型能更好地理解上下文,翻译更自然准确。
  2. 内容摘要生成器

    :阅读长文章时自动生成关键摘要,帮用户快速把握主旨,提高阅读效率。
  3. 智能搜索助手

    :输入搜索词时自动扩展和优化查询,帮助找到更相关的结果。
  4. 代码解释器

    :浏览技术博客或代码仓库时自动解释复杂代码段,帮开发者更快理解陌生代码。
  5. 智能表单填充

    :填写在线表单时根据字段名和类型自动推荐内容,简化过程,提高准确性。
  6. 个性化内容推荐

    :基于浏览历史和当前页面内容推荐相关文章或产品,提供更精准的个性化体验。
  7. 实时写作助手

    :在浏览器中写作时提供实时建议和纠错,提高写作质量。
  8. 隐私保护助手

    :填写敏感信息时提醒隐私风险并提供保护建议。