Semantic Embedder API


Make sure that all the requirements are green.

Activate chrome://flags/#semantic-embedder-api
Loading...
Pending

The Semantic Embedder API is an early design sketch from the Chrome Built-in AI team and has not been approved to ship in Chrome. The surface below follows the explainer and may change.

Embeddings are only comparable within the same embedding space: check result.metadata.embeddingSpace before comparing vectors you stored earlier.

Where the model is downloaded on disk

Once the embedding model has been downloaded, it is stored under the Chrome user data directory in an AIEmbeddings folder, inside a version-numbered sub-folder (for example 2026.5.19.1005), as model.tflite. Checking that this file exists is the quickest way to confirm the download actually completed.

The version folder changes as Chrome ships new model revisions, and you may have more than one of them. The paths below differ per release channel — Stable, Beta, Dev and Canary each keep their own copy of the model, so make sure you are looking at the directory of the channel you are actually running.

macOS
ChannelPath
Stable~/Library/Application Support/Google/Chrome/AIEmbeddings/<version>/model.tflite
Beta~/Library/Application Support/Google/Chrome Beta/AIEmbeddings/<version>/model.tflite
Dev~/Library/Application Support/Google/Chrome Dev/AIEmbeddings/<version>/model.tflite
Canary~/Library/Application Support/Google/Chrome Canary/AIEmbeddings/<version>/model.tflite
Windows
ChannelPath
Stable%LOCALAPPDATA%\Google\Chrome\User Data\AIEmbeddings\<version>\model.tflite
Beta%LOCALAPPDATA%\Google\Chrome Beta\User Data\AIEmbeddings\<version>\model.tflite
Dev%LOCALAPPDATA%\Google\Chrome Dev\User Data\AIEmbeddings\<version>\model.tflite
Canary%LOCALAPPDATA%\Google\Chrome SxS\User Data\AIEmbeddings\<version>\model.tflite
Linux
ChannelPath
Stable~/.config/google-chrome/AIEmbeddings/<version>/model.tflite
Beta~/.config/google-chrome-beta/AIEmbeddings/<version>/model.tflite
Dev~/.config/google-chrome-unstable/AIEmbeddings/<version>/model.tflite
CanaryChrome Canary is not available on Linux — use Dev instead.

If you launch Chrome with a custom --user-data-dir, the AIEmbeddings folder lives under that directory instead of the defaults above.

Playground


Browsers may safely ignore this hint if their model does not support task types.

Runnable code examples


Availability

Code
const availability = await SemanticEmbedder.availability();
Result
unknown

Embed

Code
const abortController = new AbortController(); const semanticEmbedder = await SemanticEmbedder.create({ monitor(m) { m.addEventListener("downloadprogress", (e) => { console.log(`Downloaded ${e.loaded * 100}%`); }); }, signal: abortController.signal, }); // The API does not chunk large inputs: pass an array of pre-chunked passages instead. const result = await semanticEmbedder.embed([ "The quick brown fox jumps over the lazy dog.", "A fast, dark-colored fox leaps over a resting hound.", "Built-in AI APIs use on-device models." ]); // result.embeddings[i].values is a Float32Array matching inputs[i]. const vectors = result.embeddings.map(embedding => embedding.values); // Release the model as soon as you are done with it. semanticEmbedder.destroy();