Een React-assistent kan Chrome’s ingebouwde Summarizer gebruiken om een opdracht lokaal samen te vatten en een aparte Gemini-aanroep via de applicatiebackend laten voorstellen hoe velden moeten veranderen. Houd de oorspronkelijke opdracht als referentie, controleer of elk voorstel nog bij het actuele concept past en sla het pas op nadat iemand de wijzigingen heeft nagekeken. Die aanpak is bedoeld voor ontwikkelaars die lokale tekstverwerking willen combineren met een afzonderlijke AI-stap in de cloud.

Inhoud

Twee AI-taken, drie handelingen

Een lokaal samenvattingsverzoek, een Gemini-voorstel en het opslaan van wijzigingen zijn afzonderlijke acties. Raju Dandigam beschrijft die opzet voor Trip Workbench, een React-demo voor reisconcepten.

Bij het samenvatten verwerkt Chrome’s Summarizer de oorspronkelijke opdracht op het apparaat en geeft die tekst terug om te bekijken. Chrome stelt dat het ingebouwde model tijdens gebruik geen gegevens naar Google of een andere derde partij verstuurt; na het downloaden is voor lokaal gebruik geen netwerkverbinding nodig. De eerste download vereist wel een niet-bemeten verbinding.

De Gemini-actie heeft een andere gegevensstroom: die stuurt de oorspronkelijke opdracht naar de backend van de applicatie, die Gemini om voorgestelde veldwijzigingen en eventuele verduidelijkingsvragen vraagt. Een gebruiker moet die voorstellen daarna beoordelen. Pas na goedkeuring gaat de wijziging via de bestaande backendroute naar het opgeslagen concept. De lokale samenvatting start zelf geen cloudverzoek.

Controleer eerst de Chrome-vereisten

De Chrome-pagina over de Summarizer API noemt Chrome 138 stable als uitgangspunt en is voor het laatst bijgewerkt op 30 juli 2025. De eisen hieronder zijn wat die gedateerde documentatie vermeldt, geen controle van een actuele installatie of een specifiek apparaat. Chrome’s documentatie over de Summarizer API noemt deze platform- en hardwarevoorwaarden:

ControleWat de Chrome-documentatie vermeldtPraktische betekenis
Browser en platformChrome 138 stable; Windows 10 of 11, macOS 13 of hoger, Linux, of ChromeOS op Chromebook Plus vanaf Platform 16389.0.0De genoemde ondersteuning geldt voor deze configuraties.
Niet ondersteunde apparaatgroepenAndroid, iOS en ChromeOS-apparaten die geen Chromebook Plus zijnBouw de lokale route niet als ondersteunde functie voor deze groepen.
Vrije opslagMinstens 22 GB op het volume met het Chrome-profielControleer de vrije ruimte op het juiste volume.
HardwareEen GPU met meer dan 4 GB VRAM, óf een systeem met minstens 16 GB RAM en 4 CPU-kernenDe GPU- en CPU-eisen zijn alternatieven; de CPU-route vereist beide waarden.

De API is volgens Chrome niet beschikbaar in Web Workers. MDN beschrijft de functie bovendien als experimenteel, met beperkte beschikbaarheid en een vereiste voor een beveiligde context. Houd daar rekening mee bij het kiezen van de uitvoeringsomgeving.

Bouw de gegevensstroom stap voor stap

Stroomschema met drie routes: de oorspronkelijke briefing gaat naar de lokale Chrome Summarizer, naar de backend voor een Gemini-voorstel en daarna via beoordeling naar de normale backend-update.
  1. Bewaar de oorspronkelijke opdracht. Gebruik die als bron voor de lokale samenvatting en als invoer voor de aparte Gemini-actie. Zo blijft de samenvatting een hulpmiddel bij het lezen, niet de vervanging van de opdracht.
  2. Houd de lokale en cloudactie uit elkaar. Laat de lokale actie alleen tekst samenvatten. Start de Gemini-aanvraag pas via een afzonderlijke gebruikersactie; die loopt via de applicatiebackend.
  3. Koppel elk voorstel aan de versie waarop het is gebaseerd. Dandigam beschrijft dat Trip Workbench onder meer de identiteit van concept en sessie, de opgeslagen revisie, lokale bewerkingen en de versie van de opdracht bijhoudt. Controleer na afloop van de aanvraag én opnieuw wanneer de gebruiker op toepassen klikt of die gegevens nog actueel zijn. Zo wordt een verouderd voorstel niet zonder controle op een inmiddels gewijzigd concept toegepast.
  4. Valideer de uitvoer voordat die kan worden opgeslagen. In de beschreven implementatie vraagt de adapter JSON op, maar stuurt hij geen uitvoerschema naar Gemini. De applicatie parseert en valideert het antwoord daarom zelf voordat het als voorstel wordt getoond.
  5. Laat iemand het verschil beoordelen. Toon de huidige waarden naast de voorgestelde waarden en maak duidelijk welke velden veranderen. Een goedgekeurde wijziging wordt via de normale update-route opgeslagen; indienen is een aparte handeling en toepassen boekt de reis niet.

Beschikbaarheid, annulering en lange teksten

Controleer eerst of de API beschikbaar is met Summarizer.availability() en gebruik daarbij dezelfde opties als voor het aanmaken van de sessie. Chrome noemt vier uitkomsten: available, downloadable, downloading en unavailable. Als een download nodig is, moet het aanmaken van de sessie volgen op een gebruikersactie.

Een vast aantal tokens geldt niet voor elke implementatie. MDN beschrijft inputQuota als implementatieafhankelijk en biedt measureInputUsage() om een concrete tekst te toetsen aan de beschikbare invoerruimte. Meet dus de tekst die je wilt verwerken, in plaats van een universele tokenlimiet in de applicatie vast te leggen. MDN over de invoerlimiet

Is een tekst te lang, dan beschrijft Chrome een aanpak waarbij je die op alinea- of onderwerpgrenzen opsplitst, de delen samenvat en vervolgens de deelsamenvattingen samenvoegt. Herhaal dat zo nodig voor de gecombineerde tekst. Herhaald samenvatten kan de nauwkeurigheid verminderen en de verwerking vertragen; houd daarom de oorspronkelijke tekst beschikbaar. Chrome legt de aanpak voor lange teksten uit.

MDN documenteert ook een signal-optie bij Summarizer.create(). Wordt het signaal afgebroken voordat de aanmaakbelofte is afgerond, dan wordt de aanmaak geannuleerd. Gebeurt dat pas nadat de sessie is aangemaakt, dan wordt die sessie vrijgegeven en geven lopende of nieuwe Summarizer-aanroepen een AbortError. Geef het annuleringssignaal dus ook door aan het aanmaken van de sessie, niet alleen aan latere verwerkingsstappen. MDN over Summarizer.create().

Wat de gerapporteerde controles afdekten

In een artikel dat op 28 oktober 2026 verscheen, meldde Raju Dandigam dat acht gecontroleerde levenscycluscontroles met een nagebootste Summarizer slaagden. Hij beschreef ook problemen in zijn kandidaat-adapter: een fout bij het controleren van beschikbaarheid werd niet afgehandeld, een al geannuleerd verzoek maakte toch een sessie aan en de aanroep voor sessiecreatie kreeg het annuleringssignaal niet mee. Dit zijn bevindingen over die adapter, niet over een defect in Chrome’s Summarizer zelf.

Dandigam meldde dat de React-uitbreiding niet was gemount of op typen gecontroleerd. De controles met de nagebootste Summarizer valideren evenmin het gedrag of de kwaliteit van het native model, de prestaties of de netwerkpayloads.