Pubblicato il 11 novembre 2024, ultimo aggiornamento: 30 luglio 2025
Browser Support
Puoi offrire ai tuoi utenti la possibilità di distillare articoli lunghi, documenti complessi o persino conversazioni di chat vivaci in riepiloghi concisi e approfonditi.
L'API Summarizer può essere utilizzata per generare diversi tipi di riepiloghi in varie lunghezze e formati, come frasi, paragrafi, elenchi puntati e altro ancora. Riteniamo che questa API sia utile nei seguenti scenari:
- Riassumere i punti chiave di un articolo o di una conversazione in chat.
- Suggerire titoli e intestazioni per gli articoli.
- Creare un riepilogo conciso e informativo di un testo lungo.
- Generare un teaser per un libro basato su una recensione del libro.
Inizia
L'API Summarizer è disponibile dalla versione stabile di Chrome 138.
Prima di utilizzare questa API, prendi visione delle Norme relative all'uso vietato dell'AI generativa di Google.
Esegui il rilevamento delle funzionalità per verificare se il browser supporta l'API Summarizer.
if ('Summarizer' in self) {
// The Summarizer API is supported.
}
Esamina i requisiti hardware
Esistono i seguenti requisiti per gli sviluppatori e gli utenti che utilizzano le funzionalità che utilizzano queste API in Chrome. Altri browser potrebbero avere requisiti operativi diversi.
Le API Language Detector e Translator funzionano in Chrome su computer. Queste API non funzionano sui dispositivi mobili.
Le API Prompt, Summarizer, Writer, Rewriter e Proofreader funzionano in Chrome quando vengono soddisfatte le seguenti condizioni:
- Sistema operativo: Windows 10 o 11; macOS 13+ (Ventura e versioni successive); Linux; o ChromeOS (dalla piattaforma 16389.0.0 e versioni successive) sui dispositivi Chromebook Plus. Chrome per Android, iOS e ChromeOS sui dispositivi non Chromebook Plus non è ancora supportato dalle API che utilizzano Gemini Nano.
- Spazio di archiviazione: almeno 22 GB di spazio libero sul volume che contiene il tuo profilo Chrome.
- GPU o CPU: i modelli integrati possono essere eseguiti con GPU o CPU.
- GPU: rigorosamente più di 4 GB di VRAM.
- CPU: almeno 16 GB di RAM e almeno 4 core CPU.
- Nota: l'API Prompt con input audio richiede una GPU.
- Rete: dati illimitati o una connessione non a consumo.
Le dimensioni esatte di Gemini Nano possono variare man mano che il browser aggiorna il modello. Per determinare le dimensioni attuali, visita chrome://on-device-internals.
Download modello
L'API Summarizer utilizza un modello addestrato per generare riepiloghi di alta qualità. L'API è integrata in Chrome e Gemini Nano è il modello scaricato la prima volta che un sito web utilizza questa API.
Per determinare se il modello è pronto per l'uso, chiama la funzione asincrona
Summarizer.availability().
Se la risposta a availability() è downloadable, ascolta l'avanzamento del download per informare l'utente, poiché potrebbe richiedere del tempo.
const availability = await Summarizer.availability();
// Proceed to request batch or streaming summarization
const summarizer = await Summarizer.create({
monitor(m) {
m.addEventListener('downloadprogress', (e) => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
}
});
Funzioni API
La funzione create() ti consente di configurare un nuovo oggetto di riepilogo in base alle tue esigenze. Accetta un oggetto options facoltativo con i seguenti parametri:
sharedContext: contesto condiviso aggiuntivo che può aiutare il riepilogatore.type: il tipo di riepilogo, con i valori consentitikey-points(valore predefinito),tldr,teasereheadline. Vedi la tabella seguente per i dettagli.format: il formato del riepilogo, con i valori consentitimarkdown(valore predefinito) eplain-text.length: la lunghezza del riepilogo, con i valori consentitishort(valore predefinito),mediumelong. Il significato di queste lunghezze varia a seconda deltyperichiesto. Ad esempio, nell'implementazione di Chrome, un breve riepilogo dei punti chiave è costituito da tre punti elenco e un breve riepilogo è una frase.preference: un meccanismo che consente agli sviluppatori di indicare se danno la priorità all'esecuzione rapida o alle funzionalità complete.auto: il browser bilancia la velocità di esecuzione con la funzionalità di riepilogo e può regolare dinamicamente l'elaborazione interna in base all'ambiente, ai vincoli di sistema o al contesto.speed: il browser deve dare la priorità alla bassa latenza e all'esecuzione rapida. Questo approccio dà la priorità al rendimento, il che potrebbe limitare la funzionalità di riepilogo, con conseguente estrazione meno sfumata o sintesi più semplice del testo di origine.capability: il browser deve dare la priorità alla completezza e alla coerenza del riepilogo e a un modello che offra maggiore flessibilità in termini di tipi di riepilogo e altre opzioni configurabili. Questo approccio si concentra sull'acquisizione accurata del contesto sottile e sulla produzione di riepiloghi altamente raffinati, il che potrebbe comportare una latenza maggiore e velocità di esecuzione più lente.
Una volta impostati, i parametri non possono essere modificati. Crea un nuovo oggetto di riepilogo se devi apportare modifiche ai parametri.
La seguente tabella mostra i diversi tipi di riepiloghi e le relative lunghezze. Le lunghezze rappresentano il valore massimo possibile, poiché a volte i risultati possono essere più brevi.
| Tipo | Significato | Lunghezza | ||||||
|---|---|---|---|---|---|---|---|---|
"tldr" |
Il riepilogo deve essere breve e conciso, fornire una rapida panoramica di l'input, adatta a un lettore impegnato. |
|
||||||
"teaser" |
Il riepilogo deve concentrarsi sulle parti più interessanti o intriganti dell' input, progettate per attirare il lettore a leggere di più. |
|
||||||
"key-points" |
Il riepilogo deve estrarre i punti più importanti dall'input, presentato come un elenco puntato. |
|
||||||
"headline" |
Il riepilogo deve contenere efficacemente il punto principale dell'input in una singola frase, nel formato di un titolo di un articolo. |
|
||||||
Ad esempio, puoi inizializzare un riepilogatore per generare una lunghezza media dei punti chiave in Markdown.
const options = {
sharedContext: 'This is a scientific article',
type: 'key-points',
format: 'markdown',
length: 'medium',
monitor(m) {
m.addEventListener('downloadprogress', (e) => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
}
};
const availability = await Summarizer.availability();
if (availability === 'unavailable') {
// The Summarizer API isn't usable.
return;
}
// Check for user activation before creating the summarizer
if (navigator.userActivation.isActive) {
const summarizer = await Summarizer.create(options);
}
Assegna le lingue previste
L'API Summarizer supporta più lingue. Imposta le lingue di input, output e contesto previste quando crei la sessione. In questo modo il browser può rifiutare la richiesta se non è in grado di supportare una combinazione di lingue specifica.
const summarizer = await Summarizer.create({
type: 'key-points',
expectedInputLanguages: ['en', 'ja', 'es'],
outputLanguage: 'es',
expectedContextLanguages: ['en'],
sharedContext: 'These are requests to summarize articles from a multilanguage newspaper. The users expect a response in Spanish.',
});
Esistono due modi per eseguire il riepilogatore: streaming e batch (output basato su richiesta).
Riepilogo batch
Con il riepilogo batch, il modello elabora l'input nel suo complesso e poi produce l'output.
Per ottenere un riepilogo batch, chiama la funzione summarize(). Il primo argomento è il testo che vuoi riassumere. Il secondo argomento facoltativo è un oggetto con un campo context. Questo campo ti consente di aggiungere dettagli di sfondo che potrebbero migliorare il riepilogo.
const longText = document.querySelector('article').innerHTML;
const summary = await summarizer.summarize(longText, {
context: 'This article is intended for a tech-savvy audience.',
});
Riepilogo dello streaming
Il riepilogo dello streaming offre risultati in tempo reale.
L'output viene aggiornato continuamente man mano che l'input viene aggiunto e modificato. Per ottenere un riepilogo dello streaming, chiama summarizeStreaming() anziché summarize().
const longText = document.querySelector('article').innerHTML;
const stream = summarizer.summarizeStreaming(longText, {
context: 'This article is intended for junior developers.',
});
for await (const chunk of stream) {
console.log(chunk);
}
Demo
Puoi provare l'API Summarizer nel Summarizer API Playground.
Criterio di autorizzazione, iframe e web worker
Per impostazione predefinita, l'API Summarizer è disponibile solo per le finestre di primo livello e per i relativi iframe con la stessa origine. L'accesso all'API può essere delegato a iframe di origine diversa
utilizzando l'attributo allow="" del criterio di autorizzazione:
<!--
The hosting site at https://main.example.com can grant a cross-origin iframe
at https://cross-origin.example.com/ access to the Summarizer API by
setting the `allow="summarizer"` attribute.
-->
<iframe src="https://cross-origin.example.com/" allow="summarizer"></iframe>
Al momento, l'API Summarizer non è disponibile nei web worker. Ciò è dovuto alla complessità di stabilire un documento responsabile per ogni worker, al fine di verificare lo stato secondo le norme.
Condividi feedback
Vogliamo vedere cosa stai creando con l'API Summarizer. Condividi i tuoi siti web e le tue applicazioni web con noi su X, YouTube, e LinkedIn.
Per fornire feedback sull'implementazione di Chrome, invia una segnalazione di bug o una richiesta di funzionalità.