你以为接 AI 功能都要先调 API?今天浏览器自己带了一个
导语部分:每个前端工程师都经历过这个场景——产品说「加个 AI 摘要功能」,你第一反应是去找 API Key、选模型、配计费。2025 年中 Chrome 悄悄把这件事变成了历史。从 Chrome 149 开始,浏览器内置了一个可以在本地运行的 AI 模型,开发者只需要调几行 JS 就能让网页直接跑推理。
核心内容:
痛点:每次接 AI 都要折腾一整套后端
传统的 AI 功能接入路线是这样的:前端 → 后端 API 代理 → 第三方 AI 服务商 → 计费系统 → 返回结果。这条链路里,前端要管 API Key 安全、后端要处理跨域和限流、团队要付月费。对一个「给文章加个摘要按钮」的需求来说,工程代价太高。
解决方案:Prompt API,浏览器原生的对话接口
Chrome 从 149 开始内置了 Gemini Nano 模型,并通过一套标准化的 JavaScript API 暴露给网页。这套 API 叫做 Prompt API,核心用法只有三行:
// 检查能力是否可用
if (await LanguageModel.canCreate()) {
// 创建会话
const session = await LanguageModel.create();
// 发起对话(支持流式)
const stream = session.promptStreaming('请把这段文字缩写成50字摘要:');
for await (const chunk of stream) {
console.log(chunk);
}
}
对比一下传统方案:
- 不需要 API Key,模型就在用户设备上
- 不走网络,推理在本地完成,延迟低,隐私好
- 不付云端费用,用户自己的算力跑自己的推理
三行核心代码背后的工程逻辑
LanguageModel.create() 创建的会话会维护对话上下文,支持多轮对话直到上下文窗口满。Session 有三个关键方法:
prompt(text)/promptStreaming(text)— 发对话,支持流式返回clone()— 分叉对话,保留原会话不变destroy()— 释放资源,不用时主动清理
上下文管理也是自动的:当窗口满了,系统会逐对移除最早的对话记录直到有空间。要检测溢出,监听 contextoverflow 事件就行。
适用场景:轻量级、本地化、隐私敏感
不是所有 AI 场景都适合迁移到 Prompt API。它的强项是:
- 文本摘要、翻译、改写(Summarizer/Writer/Translator API 有更高级抽象)
- 基于用户输入的实时生成(不依赖网络)
- 隐私要求高的数据处理(不离设备)
它的局限是:
- 模型能力有限(Gemini Nano 是轻量级模型,复杂推理不如 GPT-4/Claude)
- 设备要求较高(需要 22GB 可用存储空间,ChromeOS/Android 暂不支持)
- 跨浏览器支持有限(目前只有 Chrome)
下一步:怎么判断你的项目能不能用
第一步:检查能力是否可用,加一个 Feature Detection 防崩溃:
const supported = await LanguageModel.canCreate();
if (!supported) {
// 降级到传统 API 或提示用户
console.log('当前浏览器不支持内置 AI');
}
第二步:如果是摘要/翻译场景,优先用更高层的抽象 API(Writer/Summarizer/Translator),它们在底层封装更好。
第三步:加上错误处理,特别是 QuotaExceededError(上下文满)和 abort signal(用户主动取消)。
结语:浏览器的角色正在从「显示网页的工具」变成「运行 AI 能力的平台」。这件事对前端工程师意味着:以前需要一个后端 + 一个 AI 服务商才能实现的功能,现在一二十行 JavaScript 就能搞定。
评论区
登录后可评论。