Gepubliceerd: 11 november 2024, Laatst bijgewerkt: 20 mei 2025
Uitlegger | Web | Uitbreidingen | Chrome-status | Intentie |
---|---|---|---|---|
MDN | 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 waardenkey-points
(standaard),tldr
,teaser
enheadline
. Zie de volgende tabel voor details. -
format
: De opmaak van de samenvatting, met de toegestane waardenmarkdown
(standaard) enplain-text
. -
length
: De lengte van de samenvatting, met de toegestane waardenshort
,medium
(standaard) enlong
. De betekenis van deze lengtes varieert afhankelijk van het aangevraagdetype
. 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. |
| ||||||
"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. |
| ||||||
"key-points" | In de samenvatting moeten de belangrijkste punten uit de invoer worden gehaald en in de vorm van een opsommingsteken worden weergegeven. |
| ||||||
"headline" | De samenvatting moet effectief de hoofdpunten van de input in één zin bevatten, in de vorm van een artikelkop. |
|
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.