Skip to content

Built-in Embedding API #18

@YinguangZhao

Description

@YinguangZhao

Proposal name

Built-in Embedding API

Short description

We propose a new Web Platform API that allows developers to generate high-dimensional vector representations (embeddings) of text content directly on the user's device using a browser-provided model. This enables low-latency, privacy-preserving semantic features (like search, RAG, and moderation) without the costs of cloud APIs or the bandwidth overhead of downloading large models via WebAssembly/WebGPU.

Read the complete Explainer

Example use cases

  • Semantic Search: Search notes or documents based on meaning rather than exact keyword matches, entirely on-device.
  • Retrieval-Augmented Generation (RAG): Embed user queries to find relevant offline passages to feed into a local or cloud LLM.
  • Real-time Content Intelligence: Proactively flag potentially toxic comments or provide moderation hints as a user types.

A rough idea or two about implementation

The API follows the standard availability -> create -> execute pattern of other Built-In AI APIs. It supports batching and returns a structured object containing the raw Float32Array vectors and relevant metadata (like the embedding space identifier for compatibility tracking).

const semanticEmbedder = await SemanticEmbedder.create();

// Embed strings (supports batching)
const result = await semanticEmbedder.embed([
  "The quick brown fox jumps over the lazy dog.",
  "A fast, dark-colored fox leaps over a resting hound."
]);

// Extract the raw vectors for storage (e.g., IndexedDB) or Cosine Similarity
const vector1 = result.embeddings[0].values; 
const vector2 = result.embeddings[1].values;

semanticEmbedder.destroy();

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions