Vat samen met ingebouwde AI

Gepubliceerd: 11 november 2024, Laatst bijgewerkt: 20 mei 2025

Uitlegger Web Uitbreidingen Chrome-status Intentie
MDN Achter een vlag Chrome 138 bèta Achter een vlag Chrome 138 bèta Weergave Intentie tot verzending

U kunt uw gebruikers de mogelijkheid bieden om lange artikelen, ingewikkelde documenten of zelfs levendige chatgesprekken samen te vatten in bondige en inzichtelijke samenvattingen.

De Summarizer API kan worden gebruikt om verschillende soorten samenvattingen te genereren in verschillende lengtes en formaten, zoals zinnen, alinea's, opsommingen en meer. Wij denken dat deze API nuttig is in de volgende scenario's:

  • De belangrijkste punten van een artikel of een chatgesprek samenvatten.
  • Titels en koppen voor artikelen voorstellen.
  • Een beknopte en informatieve samenvatting maken van een lange tekst.
  • Een teaser voor een boek genereren op basis van een boekrecensie.

Aan de slag

De Summarizer API is beschikbaar vanaf Chrome 138 stable .

Voer functiedetectie uit om te controleren of de browser de Summarizer API ondersteunt.

if ('Summarizer' in self) {
  // The Summarizer API is supported.
}

Controleer de hardwarevereisten

De API's voor taaldetector en vertaler werken alleen op desktopcomputers in Chrome.

De Prompt API, Summarizer API, Writer API en Rewriter API werken in Chrome wanneer aan de volgende voorwaarden is voldaan:

  • Besturingssysteem : Windows 10 of 11; macOS 13+ (Ventura en hoger); of Linux. Chrome voor Android, iOS en ChromeOS worden nog niet ondersteund door onze API's, ondersteund door Gemini Nano.
  • Opslag : minimaal 22 GB op het volume dat uw Chrome-profiel bevat.
  • GPU : absoluut meer dan 4 GB VRAM.
  • Netwerk : Onbeperkt dataverbruik of een onbeperkte verbinding.

Deze vereisten gelden voor u in uw ontwikkelingsproces en voor uw gebruikers die met de functies werken die u bouwt.

Model downloaden

De Summarizer API maakt gebruik van een model dat is getraind om samenvattingen van hoge kwaliteit te genereren. De API is ingebouwd in Chrome en Gemini Nano is het model dat wordt gedownload wanneer een website deze API voor het eerst gebruikt.

Om te bepalen of het model klaar is voor gebruik, roept u de asynchrone Summarizer.availability() functie aan. Deze retourneert een promise met de volgende waarden.

  • "unavailable" betekent dat de implementatie de gevraagde opties niet ondersteunt.
  • "downloadable" betekent dat de implementatie de gevraagde opties ondersteunt, maar dat de browser eerst iets moet downloaden, zoals een model (in het geval van Chrome is dat Gemini Nano) of een fijnafstemming voor het model.
  • "downloading" betekent dat de implementatie de aangevraagde opties ondersteunt, maar dat er eerst een download moet worden voltooid voordat er kan worden doorgegaan.
  • "available" betekent dat de implementatie de gevraagde opties ondersteunt en dat de samenvatter verder kan gaan.

Om het downloaden van het model te activeren en de summar te maken, roept u de asynchrone Summarizer.create() functie aan. Als de respons op availability() downloadable of downloading was, is het raadzaam om te luisteren naar de voortgang van het downloaden. Zo kunt u de gebruiker informeren en aangeven dat het downloaden enige tijd kan duren voordat de summarisatie kan plaatsvinden.

const summarizer = await Summarizer.create({
  monitor(m) {
    m.addEventListener('downloadprogress', (e) => {
      console.log(`Downloaded ${e.loaded * 100}%`);
    });
  }
});

API-functies

Met de functie create() kunt u een nieuw summier object naar wens configureren. Het accepteert een optioneel options met de volgende parameters:

  • sharedContext : aanvullende gedeelde context die de samenvatter kan helpen.
  • type : Het type samenvatting, met de toegestane waarden key-points (standaard), tldr , teaser en headline . Zie de volgende tabel voor details.
  • format : De opmaak van de samenvatting, met de toegestane waarden markdown (standaard) en plain-text .
  • length : De lengte van de samenvatting, met de toegestane waarden short , medium (standaard) en long . De betekenis van deze lengtes varieert afhankelijk van het aangevraagde type . In de implementatie van Chrome bestaat een korte samenvatting met kernpunten bijvoorbeeld uit drie opsommingstekens en is een korte samenvatting één zin.

Eenmaal ingesteld, kunnen de parameters niet meer worden gewijzigd. Maak een nieuw samenvattingsobject aan als u de parameters wilt wijzigen.

De volgende tabel toont de verschillende soorten samenvattingen en hun bijbehorende lengtes. De lengtes geven de maximaal mogelijke waarden weer, aangezien de resultaten soms korter kunnen zijn.

Type Betekenis Lengte
"tldr" De samenvatting moet kort en bondig zijn en een snel overzicht geven van de invoer. Deze samenvatting is geschikt voor een actieve lezer.
kort 1 zin
medium 3 zinnen
lang 5 zinnen
"teaser" De samenvatting moet zich richten op de interessantste of meest intrigerende delen van de tekst. Het is de bedoeling dat de lezer hierdoor wordt verleid om verder te lezen.
kort 1 zin
medium 3 zinnen
lang 5 zinnen
"key-points" In de samenvatting moeten de belangrijkste punten uit de invoer worden gehaald en in de vorm van een opsommingsteken worden weergegeven.
kort 3 opsommingstekens
medium 5 opsommingstekens
lang 7 opsommingstekens
"headline" De samenvatting moet effectief de hoofdpunten van de input in één zin bevatten, in de vorm van een artikelkop.
kort 12 woorden
medium 17 woorden
lang 22 woorden

Het volgende voorbeeld laat zien hoe u de summator initialiseert.

const options = {
  sharedContext: 'This is a scientific article',
  type: 'key-points',
  format: 'markdown',
  length: 'medium',
};

const availability = await Summarizer.availability();
let summarizer;
if (availability === 'unavailable') {
  // The Summarizer API isn't usable.
  return;
}
if (availability === 'available') {
  // The Summarizer API can be used immediately .
  summarizer = await Summarizer.create(options);
} else {
  // The Summarizer API can be used after the model is downloaded.
  summarizer = await Summarizer.create(options);
  summarizer.addEventListener('downloadprogress', (e) => {
    console.log(`Downloaded ${e.loaded * 100}%`);
  });
  await summarizer.ready;
}

Voer de samenvatting uit

Er zijn twee manieren om de summaryr uit te voeren: streaming en batch (niet-streaming).

Batch-samenvatting

Bij batch-samenvatting verwerkt het model de invoer als geheel en produceert vervolgens de uitvoer.

Om een ​​batchsamenvatting te krijgen, roept u de functie summarize() aan. Het eerste argument is de tekst die u wilt samenvatten. Het tweede, optionele argument is een object met een context . Met dit veld kunt u achtergronddetails toevoegen die de samenvatting kunnen verbeteren.

const longText = document.querySelector('article').innerHTML;
const summary = await summarizer.summarize(longText, {
  context: 'This article is intended for a tech-savvy audience.',
});

Streaming samenvatting

Streaming samenvattingen bieden resultaten in realtime. De uitvoer wordt continu bijgewerkt naarmate de invoer wordt toegevoegd en aangepast. Om een ​​streaming samenvatting te krijgen, roept u summarizeStreaming() aan in plaats van summarize() .

const longText = document.querySelector('article').innerHTML;
const summary = await summarizer.summarizeStreaming(longText, {
  context: 'This article is intended for junior developers.',
});

Demonstratie

U kunt de Summarizer API uitproberen in de Summarizer API Playground .

Standaardisatie-inspanning

We werken eraan om de Summarizer API te standaardiseren, zodat deze compatibel is met alle browsers.

Ons API-voorstel kreeg steun van de community en is doorgestuurd naar de W3C Web Incubator Community Group voor verdere discussie. Het Chrome-team vroeg feedback aan de W3C Technical Architecture Group en vroeg Mozilla en WebKit naar hun standpunten over standaardisatie.

U kunt deelnemen aan het standaardisatieproces door lid te worden van de Web Incubator Community Group .

Feedback delen

We willen graag zien wat je bouwt met de Summarizer API. Deel je websites en webapplicaties met ons op X , YouTube en LinkedIn .

Als u feedback wilt geven over de implementatie van Chrome, kunt u een bugrapport of een functieverzoek indienen.