Chrome Built-in AI Workshop

STARTER
📄 Sample article — "Barcelona: Gaudí, Seafood, Ramblas, and a Few Things to Watch Out For"

      

Summarizer API

checking…

Condenses the sample article. Choose the output type and length, then click Summarize. Streams the result via summarizeStreaming().

Downloading model…
Output
Output will appear here…

Prompt API — Structured Output

checking…

Generates tags for the article. A responseConstraint (JSON Schema with an enum) guarantees the model only picks from the predefined list.

Allowed tags: Adventure · Barcelona · Beach · City · Coast · Culture · Europe · Food · Gaudi · History · Relaxation · Sagrada Familia · Spain · Travel

Downloading model…
Generated Tags
Tags will appear here…

Prompt API — Multimodal Input

checking…

Upload a travel photo. The model generates accessible alt text and an engaging caption using { type: "image" } input and a responseConstraint.

📸 Click or drag & drop a travel photo here

Downloading model…
Alt Text
Will appear here…
Caption
Will appear here…

Writer API

checking…

Expands bullet-point notes into a full travel blog post via Writer.create() and writeStreaming().

Downloading model…
Generated Post
Output will appear here…

Rewriter API

checking…

Rewrites the article with a different tone or length via Rewriter.create() and rewriteStreaming().

Downloading model…
Rewritten Text
Output will appear here…

Polyfills — Universal Compatibility

not yet run

The same Built-in AI APIs work in any browser via prompt-api-polyfill and built-in-ai-task-apis-polyfills. Polyfills are loaded only when native support is absent — on Chrome with built-in AI the native APIs win automatically. Uses the Writer API (not yet natively shipping) to write a social media post from the sample article.

Transformers.js runs entirely in your browser using WebGPU. The first run downloads a model (hundreds of MB) — subsequent runs use the browser cache. No API key needed.

Output
Output will appear here…

Translator API

checking…

Translates the article via Translator.create() and translate(). A language pack download may be needed.

Downloading language pack…
Translation
Output will appear here…