Gepubliceerd: 15 mei 2025
Websites met gebruikersrecensies, zoals e-commerce- of reiswebsites, bevatten vaak een enorme hoeveelheid informatie. Dit kan het voor gebruikers tijdrovend maken om door een groot aantal recensies te bladeren om tot een aankoop te komen. Het aanbieden van samenvattingen van recensies kan gebruikers helpen feedback te begrijpen en tijd te besparen. Ontdek hoe redBus en Miravia de Summarizer API gebruiken om de besluitvorming en aankoopervaring te verbeteren.
Uitlegger | Web | Uitbreidingen | Chrome-status | Intentie |
---|---|---|---|---|
MDN | Weergave | Intentie tot verzending |
Met de Summarizer API kun je verschillende soorten samenvattingen genereren in verschillende lengtes en formaten, zoals zinnen, alinea's, opsommingen en meer. Deze API gebruikt, net als veel van onze ingebouwde AI API's , grote taalmodellen om inferentie uit te voeren. In Chrome is ons model Gemini Nano.
redBus helpt klanten bij het kiezen van de beste busoptie
RedBus is de grootste busaanbieder in India, met meer dan 30 miljoen klanten. Het bedrijf biedt busdiensten aan in ongeveer 10.000 steden en dorpen, die landelijk met elkaar verbonden zijn. Door middel van data en feedback realiseerde redBus zich dat door gebruikers gegenereerde beoordelingen een belangrijke rol spelen bij het bepalen van de route en bus die het beste bij hun reisbehoeften passen. RedBus ontvangt een groot aantal beoordelingen, en elke beoordeling is specifiek gericht op de exacte aankomst- en vertrekpunten en -tijden.
Om klanten een globaal beeld te geven van bepaalde steden of routes, gebruiken ze de Summarizer API. Deze API presenteert belangrijke inzichten uit relevante beoordelingen.
"De Summarizer API kon hoogwaardige samenvattingen maken van ons grote aantal reviews en permutaties van zoekopdrachten van gebruikers. Deze client-side functionaliteit nam de technische complexiteit en extra bedrijfskosten weg die gepaard zouden gaan met een server-side alternatief. Dit is belangrijk voor ons, omdat deze use case onderdeel is van de conversiefunnel."
— Amit Kumar, Senior Engineering Manager, redBus
De gedetailleerdheid van de beoordelingen die op de backend van redBus worden opgeslagen, gecombineerd met het enorme aantal mogelijke permutaties in zoekopdrachten van gebruikers – met variabelen zoals vertrek- en aankomsttijden, specifieke opstapplaatsen in de stad en verschillende busmaatschappijen – maakt het moeilijk om specifieke inzichten uit de beoordelingen te halen. Met zo'n grote hoeveelheid data zou een server-side samenvatting voor elke zoekopdracht onbetaalbaar zijn.
Om effectieve samenvattingen te genereren, levert redBus naast de klantbeoordelingen de volgende context aan de Summarizer API:
//Context to provide a useful summary
const promptContext =
'Summarize the following reviews in 30 words or less.' +
'Focus on key positives and negatives, such as comfort, maintenance,' +
'pricing, and cleanliness. Reviews are separated by {end}.' +
'Give the summary in just one paragraph.';
De samenvattingen verbeteren de besluitvorming van klanten, zonder extra bedrijfskosten en technische complexiteit. Bovendien kan redBus de samenvatting personaliseren op basis van de reisvoorkeuren van ingelogde gebruikers, zoals zitcomfort of wifi-beschikbaarheid. De samenvatting wordt client-side inferentie uitgevoerd, wat betekent dat deze zoekopdracht en samenvatting privé blijven voor de gebruiker.
Bekijk een kort codevoorbeeld dat controleert op beschikbaarheid van Summarizer, context geeft en beoordelingen ophaalt op basis van de zoekopdracht van de gebruiker.
// The Summarizer API is available
if ('Summarizer' in self) {
try {
const available = await Summarizer.availability();
let summarizer;
if (available === 'unavailable') {
return null;
}
if (available === 'available') {
//model is already available, use immediately
summarizer = await Summarizer.create();
} else {
//trigger model download and wait
summarizer = await Summarizer.create();
}
// Context to provide a useful summary
const promptContext =
'Summarize the following reviews in 30 words or less.' +
'Focus on key positives and negatives, such as comfort, maintenance,' +
'pricing, and cleanliness. Reviews are separated by {end}.' +
'Give the summary in just one paragraph.';
// Retrieve the reviews to be summarized based on user's search query
let reviews = getIndividualBusReviews();
if (reviews) {
const reviewSummary = await summarizer.summarize(reviews, {
context: promptContext
});
}
} catch (e) {
console.error("SUMMARIZER_API_ERROR: ", e);
return null
}
}
In het voorbeeld van de zoekopdracht van Bangalore naar Mangaluru ziet de uitvoer van de samenvatter er als volgt uit:
<Bus Provider X>
kreeg over het algemeen positieve beoordelingen voor comfort, netheid en de service van het personeel. Sommigen ondervonden kleine problemen zoals vertragingen, onbeschoft gedrag van de chauffeur, gebrek aan voorzieningen (live tracking, dekens) en ongemak (stoelgrootte, slechte schokdempers).
Deze recensie voldoet aan de gestelde eisen, met positieve en negatieve punten in één korte alinea. Dit is veel gemakkelijker te lezen dan de 308 beschikbare individuele recensies.
Miravia vatte e-commercebeoordelingen samen
Miravia is een toonaangevend e-commerceplatform in Spanje met miljoenen maandelijks actieve gebruikers. Wanneer gebruikers reviews filteren (bijvoorbeeld op productbeoordeling), wordt er een nieuwe samenvatting gegenereerd. Dit biedt een beknopt overzicht van de feedback van klanten, met aandacht voor aandachtspunten en aanbevelingen.
Voorheen moesten gebruikers talloze individuele opmerkingen op de detailpagina doornemen om de belangrijkste voor- en nadelen van productrecensies te begrijpen. Om gebruikers te helpen snel inzicht te krijgen in het algemene klantgevoel, hebben we de Summarizer API geïntroduceerd. Deze samenvatting wordt dynamisch bijgewerkt wanneer een gebruiker de recensies filtert (bijvoorbeeld op sterbeoordeling of andere criteria), waardoor een snel en uitgebreid overzicht ontstaat van relevante feedback van kopers.
— Ziyi Liang, senior software-ingenieur, Miravia
Aanvankelijk maakte Miravia's samenvattingsfunctie voor gebruikersrecensies gebruik van een server-side AI-service. Ze ontdekten dat Gemini Nano met client-side AI vergelijkbare resultaten kan leveren, met lagere onderhoudskosten. Dit voordeel is vooral duidelijk bij populaire, snel verkopende producten, waarvan de recensies voortdurend worden bijgewerkt.
Hoewel de implementatie van Miravia realtime ophalen en samenvatten van reviews vereist, ongeacht of de inferentie op de server of in de browser plaatsvindt, is client-side AI aanzienlijk efficiënter naarmate de frequentie toeneemt. Ze zijn tevreden over de algehele prestaties.
Eerst controleert Miravia de functionaliteit en compatibiliteit van het apparaat.
// Compatibility check for device with built-in AI
export const deviceCheck = async () => {
// Query the browser's AI capabilities
const availability = await Summarizer.availability();
// Case 1: Device doesn't support AI summarization
if (availability === 'unavailable') {
return {
summarizationAvailable: false,
message:
'AI summarization tools are not supported on this device, or the appropriate permissions have not be set.',
};
}
// Case 2: Device supports AI but requires model download
if (availability === 'downloadable') {
// Try to trigger an installation
Summarizer.create();
return {
summarizationAvailable: false,
message: 'Installing in the background. This may take a few minutes...',
};
}
// Case 3: Device supports AI summarization
return {
summarizationAvailable: true,
message: 'Ready for use.',
};
};
Vervolgens vat Miravia de beschikbare beoordelingen samen. Beoordelingen worden aangevuld met een punt om de input coherenter te maken.
/**
* Summarizes a list of reviews using Chrome's Built-in AI
* @param {Array<string>} reviewContentList - Array of review texts to summarize
* @returns {Promise<string>} The generated summary text
* @throws {Error} If summarization is not available or fails
*/
export const reviewSummarize = async (reviewContentList) => {
// Validate input
if (!Array.isArray(reviewContentList) || !reviewContentList.length) {
throw new Error('Please provide a non-empty array of reviews to summarize');
}
// Check device compatibility
const { summarizationAvailable, message } = await deviceCheck();
if (summarizationAvailable) {
try {
// Configure and create the summarizer with appropriate parameters
const summarizer = await Summarizer.create({
type: 'tl;dr',
length: 'short',
sharedContext:
'Summarize the given user reviews. Maintain a polite and formal tone.',
});
// Generate the summary from the joined review texts
const summary = await summarizer.summarize(reviewContentList.join('. '));
// Return the generated summary
return summary;
} catch (error) {
// Handle any errors during summarization
throw new Error(`Summarization failed: ${error.message}`);
}
} else {
// If summarization is not available, throw an error with the message from deviceCheck
throw new Error(
message ||
'AI summarization tools are not supported on this device or browser.'
);
}
};
Beste praktijken
Als de beoordelingsinvoer de tokenlimiet overschrijdt, volg dan de volgende maatregelen:
- Gebruik een kleinere steekproef (zoals de 4 meest recente reviews) voor de API. Dit zorgt voor snellere resultaten. Raadpleeg onze richtlijnen voor het schalen van client-side samenvattingen .
- De
QuotaExceededError
geeft meer informatie over de aangevraagde tokens in de invoer. Hetsummarizer
object heeft eeninputQuota
eigenschap die de tokenlimiet van de API aangeeft. Dit maakt realtime feedback mogelijk en schakelt functionaliteit uit als de invoer de limiet overschrijdt.
U kunt een hybride aanpak overwegen om een naadloze ervaring voor alle gebruikers te garanderen. De eerste keer dat een ingebouwde AI API wordt aangeroepen, moet de browser het model downloaden.
- Miravia gebruikte een server-side model om een eerste samenvatting te geven terwijl het model werd gedownload. Zodra het ingebouwde model klaar was, schakelde de site over op het uitvoeren van client-side inferentie.
U moet er altijd naar streven een vriendelijke en communicatieve interface te creëren:
- Implementeer een voortgangsbalk voor het downloaden van modellen en beperk reactievertragingen.
- Zorg voor transparantie over de modeldownload. Bright Sites heeft gebruikers op de hoogte gesteld van de modeldownload om transparantie en toestemming voor het gebruik van de bronnen mogelijk te maken. Op die manier konden gebruikers de download accepteren of weigeren voordat ze verdergingen.
Conclusies en aanbevelingen
Deze praktijkvoorbeelden van redBus en Miravia laten zien hoe de Summarizer API gebruikers hielp om snel weloverwogen beslissingen te nemen door beknopte, relevante samenvattingen van gebruikersrecensies te bieden. De mogelijkheid van de API om client-side te werken, zonder extra bedrijfskosten en met een lage technische complexiteit, maakt het een haalbare optie voor vergelijkbare use cases waarbij informatie moet worden samengevat. Alle ingebouwde AI API's maken praktische client-side AI-use cases mogelijk.
Benieuwd hoe de Summarizer API kan helpen bij andere use cases? We hebben ook gedeeld hoe de Summarizer API de betrokkenheid bij artikelen vergroot .
Bouw je iets nieuws met deze API's? Deel het met ons via @ChromiumDev op X of Chromium for Developers op LinkedIn .
Bronnen
- Meer informatie over Summarizer API .
- Begin met het gebruiken van ingebouwde API's in Chrome .
- Lees de Prompt API-casestudy over het ondersteunen van bloggers .
- Lees de casestudy Translation and Language Detector .
- Lees hoe de Summarizer API Bright Sites en Terra helpt bij het maken van boeiende artikelsamenvattingen
Dankbetuigingen
Hartelijk dank aan Makakhov Andrey en Ziyi Liang van Miravia (Alibaba Group), Amit Kumar van redBus, Swetha Gopalakrishnan , Alexandra Klepper , Thomas Steiner en Kenji Baheux voor hun hulp bij het schrijven en beoordelen van dit document.