Chrome 內建 AI 模型,直接從網頁呼叫

  • 18
  • 0

今年 (2026) 2 月,Google 開始陸續推出讓用戶可在 Chrome 設定中輕鬆關閉並移除模型的功能

一旦停用後,模型便不會進行下載或更新,這不就代表,有些電腦如果使用 Chrome 我就可以在裡面調用模型?

這時候就可以在一些環境下使用模型來做一些事情,當然你電腦要有一定等級..

簡單來說,就是 Chrome 會在符合條件的電腦上下載一個由瀏覽器管理的小型語言模型

網頁可以直接透過 JavaScript 呼叫,不需要 API Key,也不需要自己安裝 Ollama

而且模型推論是在使用者的電腦上執行,模型下載完成後,即使沒有網路也可以繼續使用

官方也表示,使用內建模型進行推論時,輸入內容不會傳送到 Google 或第三方。

一開始我以為這只是 Chrome 自己內部使用,後來實際測試才發現,網頁真的可以直接使用..

這類 API 目前可以透過:

LanguageModel

直接建立模型 Session,先提醒一下,Chrome 內部實際使用的模型會由瀏覽器管理

開發者不能指定 GGUF,也不能選擇 Gemma、Qwen 或 Llama

所以它比較像 Chrome 提供的一個 AI 能力,不是一個可以自由更換模型的推論框架,但目前拿來在client 做一些簡單的資料處理還蠻有用的

1. 首先判斷用戶的 Chrome 是不是有模型可以用

//先確認 LanguageModel 是否存在:

if (!("LanguageModel" in window)) {
    console.log("目前 Chrome 不支援內建模型");
}

//接著檢查模型狀態:

const status = await LanguageModel.availability();

console.log(status);


//可能回傳:

//available
//downloadable
//downloading
//unavailable

//完整一點可以寫成:

async function checkModel() {
    if (!("LanguageModel" in window)) {
        return "api-missing";
    }

    return await LanguageModel.availability();
}

const status = await checkModel();

console.log(status);

//available 代表可以直接使用。

//downloadable 代表支援,但 Chrome 還需要先下載模型。

//unavailable 則代表目前的 Chrome、硬體或執行環境不能使用。

2. 最小的可呼叫範例

const session = await LanguageModel.create();

const result = await session.prompt(
    "Reply with exactly: Hello Chrome AI"
);

console.log(result);

session.destroy();

//prompt() 回傳的是字串:string

//不是 string[]。

//如果需要串流輸出,可以改用:

const session = await LanguageModel.create();

const stream = session.promptStreaming(
    "請用三點說明本機 AI 的優點"
);

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

這我提供一個我自己測試的完整範例,如果想要請 AI 改寫或是學習請自行取用

https://donma.github.io/Miscellaneous/chrome-built-in-ai-test.html

簡單結論一下

Chrome 內建模型目前還不能取代 Ollama,也不能自由選擇模型

但是如果只是想在網頁裡加上分類、摘要或文字整理功能,不需要 API Key,也不用自己架模型服務,確實很方便

正式使用時還是要先檢查:

await LanguageModel.availability()

不能假設所有 Chrome 都一定支援,然後如果是在  iframe 中是不能使用的

所以限制也蠻多的,至於其他應用程式,假設我用 webview2 去呼叫是不是可以用呢?

改天來測看看,我覺得應該是可以,不過這就是後話了有機會再測試,但是本機就有一個小模型無腦用,這樣有時候再 client

就可以處理一些小任務,並不一定要傳回 server 交給大模型去處理...

---

The bug existed in all possible states.
Until I ran the code.