返回文章
产品开发4 分钟阅读会员

浏览器内置 AI 还是服务端推理?先设计退路再选架构

把本地与服务端 AI 当成两种产品契约,按覆盖范围、隐私、能力状态和失败方式设计可验证的路由。

半透明面板经过检查关卡,示意对生成代码的验证过程。
AI 生成的编辑插画
三个月免费开放 · 至 2027 年 1 月 10 日(日本时间),所有文章均可阅读全文。

要点

  • 推理放在本地还是服务器,应由用户覆盖范围、数据流向和失败方式决定,不能笼统地认定“本地”或“云端”必然更好。
  • Chrome 的 LanguageModel.availability() 是四态能力检查;对不支持的设备和浏览器,应保留明确的服务端退路。
  • 两条路径必须使用同一组验收条件;如果结果标准不同,所谓混合架构只是把成本换成体验不一致。

两条执行路径,两种产品契约

Chrome Prompt API 把基础模型放进浏览器。Thomas Steiner 与 Alexandra Klepper 于 2025 年 5 月 20 日发布官方页面,并在 2026 年 8 月 26 日更新。文档说明,某个来源首次调用时需要另外下载模型;下载完成后,后续使用不再需要网络,而且该本地推理路径不会把数据发送给 Google 或其他第三方。

隐私和离线能力很诱人,但它附带明确的设备门槛。Chrome 当前把这组基础模型 API 支持范围写为 Windows 10/11、macOS 13 以上、Linux 与 Chromebook Plus,不包括 Android、iOS 和普通 Chromebook。设备至少要有 22 GB 可用空间,并满足二选一:显存严格大于 4 GB 的 GPU,或至少 16 GB 内存与四核 CPU;音频输入还要求 GPU。这些都是厂商要求,不是本站实测。

服务端路径恰好相反。Cloudflare 在 2026 年 4 月 21 日更新的 Workers AI Binding 文档里,用 env.AI.run() 调用指定模型。绑定由账号提供,应用代码不必携带 API Token;但请求会离开用户设备,且依赖网络和服务商。本站于 2026 年 10 月 13 日核查其限额页:默认文本生成模型目前为每分钟 300 次请求;要求 Workers Paid 套餐的模型则按账号和模型限制,普通计费为每分钟 20 次,预付 AI Gateway 点数为 50 次。限额会变化,生产代码必须处理拒绝,不能把这些数字当成永久保证。

决策因素浏览器 Prompt APIWorkers AI 服务端模型
覆盖范围仅支持符合条件的 Chrome 与设备任何能访问接口的客户端
数据路径推理留在符合条件的设备上发送到 Worker 和模型服务
首次使用可能下载模型,并要求用户主动操作必须联网请求
模型控制浏览器控制模型及更新开发者选择目录中的模型
失败方式不可用、可下载、下载中、可用网络、服务商错误或限流
更适合可选的隐私/离线辅助跨设备一致的产品功能

真正的问题不是“本地还是云端”,而是功能能否缺席。私人网页摘要在本地 AI 不可用时可以优雅降级;结账、医疗问诊或必需的客服流程不能排除大量设备,通常应使用受控的服务端路径,或者干脆不用生成式功能。

视觉札记
选中的文档切片携带相邻背景信息,进入透明阅读窗口。
AI 生成的概念插画两步之间,放一个检查关卡

可复用的能力路由器

Chrome 特别提醒:availability() 必须接收与实际提示相同的模态和语言选项。路由器要保留这份契约,并把中间下载状态交给界面处理。

```js const requirements = { expectedInputs: [{ type: "text", languages: ["en", "ja"] }], expectedOutputs: [{ type: "text", languages: ["en"] }] };

export async function chooseInference({ allowServer, online }) { if ("LanguageModel" in globalThis) { const state = await LanguageModel.availability(requirements); if (state === "available") return { path: "local", state }; if (state === "downloadable" || state === "downloading") { return { path: "wait-for-user", state }; } } if (allowServer && online) return { path: "server", state: "fallback" }; return { path: "none", state: "unsupported" }; } ```

这是自拟设计模板,不是基准测试或已执行实验。wait-for-user 很重要,因为 Chrome 要求先有真实用户操作,才可启动必要下载;不要在页面加载时偷偷下载大模型。服务端分支还应加入超时、取消信号、对瞬时错误的有限重试,以及清楚的限流提示;不安全的写操作绝不能自动重试。

产品分析可记录所选路径、能力状态、延迟区间和用户是否放弃,但默认不要记录原始私密提示词。按路径比较任务完成率。如果本地用户得到明显更弱的结果,这套架构只是用一致性换掉了推理调用。

常见错误:把能力检查当成布尔值

最常见的写法是 if (LanguageModel) useLocal(); else useServer();。API 名称存在,不代表模型已就绪、目标语言受支持或设备资源足够。其症状包括:符合条件的用户首次操作卡住,不支持的设备直接报错,或没有解释就开始下载模型。

必须分别处理四种状态:downloading 显示进度,downloadable 等用户明确点击,unavailable 转入退路。还要监控会话上下文;Chrome 文档说明,上下文填满时可能移除早期问答,而过大的请求会触发 QuotaExceededError。

什么时候不适用

不要为了避开确定性开发而使用本地生成式 AI。固定规则分类、索引搜索或计算器,往往更便宜、更可测也更容易解释。

如果所有用户必须得到同样行为、必须锁定模型版本、移动端是核心,或合规要求集中日志与策略执行,就不应默认本地优先。如果原始内容必须留在设备、离线是硬条件,而且该功能本来就是可选项,就不应默认服务端优先。医疗、法律、金融或安全等高风险决策中,无论走哪条路径,未经人工复核的生成内容都不会因此变可靠。

把原理,切开来看

两步之间,放一个检查关卡

  1. 定义

    输入与验收标准

  2. 生成

    一个可检查的单元

  3. 验证

    实际行为与证据

  4. 决定

    接受或修改

编辑示意图生成的产出只是候选结果。通过预先定义的检查后,才算完成。

动手练习:验证路由契约

建议练习:用桩函数替换 LanguageModel.availability(),运行八种组合——四个 Chrome 状态分别搭配服务端可达与不可达。可核查结果是一张表:每种组合恰好选中一条路径,且没有未捕获错误。再添加两条断言:downloadable 在用户选择前绝不调用服务端;unavailable + online + allowServer 必须选服务端。最后,在条件允许时让两条真实路径各处理三个无害提示,并用同一规则验收,例如输出必须是包含两个必需字段的有效 JSON。记录差异,不要凭一条漂亮回答就声称两者等价。

我们的结论

我们有条件推荐混合路由:把本地推理用于可选、重隐私的辅助功能,但要把服务端路径当作正式产品能力,而不是临时补丁。如果无法用同一套验收标准测试两条路径,就为一致性选择纯服务端,或移除生成式依赖。推理位置只是实现细节,稳定完成任务才是产品要求。

来源:Chrome for Developers《The Prompt API》,发布于 2025-05-20,更新于 2026-08-26 ↗;Chrome for Developers《Get started with built-in AI》 ↗;Cloudflare《Workers Bindings》,更新于 2026-04-21 ↗;Cloudflare《Limits》,核查于 2026-10-13 ↗。

这篇文章对你有帮助吗?

无需登录,同一浏览器在不同语言中只计一次。

正在读取点赞…

原始参考资料

这些资料用于核查与继续学习,来源不代表对本刊的背书。

developer.chrome.com参考原文 1developer.chrome.com参考原文 2developers.cloudflare.com参考原文 3developers.cloudflare.com参考原文 4