Pubblicato: 11 novembre 2024, ultimo aggiornamento: 20 maggio 2025
Spiegazione | Web | Estensioni | Stato di Chrome | Intenzione |
---|---|---|---|---|
GitHub | Visualizza | Intent to Ship |
Puoi offrire ai tuoi utenti la possibilità di riassumere in modo conciso e perspicace articoli lunghi, documenti complessi o anche conversazioni vivaci in chat.
L'API Summarizer può essere utilizzata per generare diversi tipi di riepiloghi in vari formati e lunghezze, ad esempio 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.
- Generazione di un teaser per un libro basato su una recensione.
Inizia
L'API Summarizer è disponibile a partire dalla versione stabile 138 di Chrome.
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
Le API Language Detector e Translator funzionano su computer solo in Chrome.
Le API Prompt, Summarizer, Writer e Rewriter funzionano in Chrome se vengono soddisfatte le seguenti condizioni:
- Sistema operativo: Windows 10 o 11; macOS 13 o versioni successive (da Ventura in poi); o Linux. Chrome per Android, iOS e ChromeOS non è ancora supportato dalle nostre API basate su Gemini Nano.
- Spazio di archiviazione: almeno 22 GB sul volume contenente il tuo profilo Chrome.
- GPU: almeno 4 GB di VRAM.
- Rete: dati illimitati o una connessione senza limiti di traffico.
- GPU: almeno 4 GB di VRAM.
- Rete: dati illimitati o una connessione senza limiti di traffico.
Questi requisiti sono previsti per te nel processo di sviluppo e per gli utenti che lavorano con le funzionalità che crei.
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()
. Restituisce una promessa con i seguenti valori.
"unavailable"
indica che l'implementazione non supporta le opzioni richieste."downloadable"
indica che l'implementazione supporta le opzioni richieste, ma prima il browser deve scaricare qualcosa, ad esempio un modello (nel caso di Chrome, Gemini Nano) o la messa a punto del modello."downloading"
indica che l'implementazione supporta le opzioni richieste, ma deve completare un download in corso prima di poter procedere."available"
indica che l'implementazione supporta le opzioni richieste e il riepilogatore può procedere.
Per attivare il download del modello e creare il riepilogatore, chiama la funzione asincrona
Summarizer.create()
. Se la risposta a availability()
è stata downloadable
o downloading
, è buona prassi ascoltare l'avanzamento del download. In questo modo, puoi informare l'utente e indicare che il download potrebbe richiedere del tempo prima che il riepilogo venga visualizzato.
const summarizer = await Summarizer.create({
monitor(m) {
m.addEventListener('downloadprogress', (e) => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
}
});
Funzioni API
La funzione create()
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 riassunto.type
: il tipo di riepilogo, con i valori consentitikey-points
(predefinito),tl;dr
,teaser
eheadline
. Vedi la tabella seguente per i dettagli.format
: il formato del riepilogo, con i valori consentitimarkdown
(predefinito) eplain-text
.length
: la lunghezza del riepilogo, con i valori consentitishort
,medium
(predefinito) elong
. Il significato di queste lunghezze varia a seconda deltype
richiesto. Ad esempio, nell'implementazione di Chrome, un breve riepilogo dei punti chiave è costituito da tre elenchi puntati e un breve riepilogo è costituito da una volta.
La seguente tabella mostra i diversi tipi di riepiloghi e le rispettive lunghezze. Le lunghezze rappresentano il valore massimo possibile, poiché a volte i risultati possono essere più brevi.
Tipo | Significato | Lunghezza | ||||||
---|---|---|---|---|---|---|---|---|
"tl;dr" |
Il riepilogo deve essere breve e conciso, fornire una rapida panoramica dell'input e essere adatto a un lettore impegnato. |
|
||||||
"teaser" |
Il riepilogo deve concentrarsi sulle parti più interessanti o intriganti dell'input, progettate per invogliare il lettore a leggere di più. |
|
||||||
"key-points" |
Il riepilogo deve estrarre i punti più importanti dall'input, presentati sotto forma di elenco puntato. |
|
||||||
"headline" |
Il riepilogo deve contenere in modo efficace il punto principale dell'input in una singola frase, nel formato di un titolo dell'articolo. |
|
L'esempio seguente mostra come inizializzare il riepilogatore.
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;
}
Esegui il riepilogatore
Esistono due modi per eseguire il riepilogatore: in streaming e batch (non in streaming).
Riepilogo batch
Con il riepilogo batch, il modello elabora l'input nel suo complesso e poi produce l'output.
Per ottenere un riepilogo del 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 in streaming offre risultati in tempo reale.
L'output viene aggiornato continuamente man mano che l'input viene aggiunto e modificato. Per ricevere un
riepilogo dello streaming, chiama summarizeStreaming()
anziché summarize()
.
const longText = document.querySelector('article').innerHTML;
const summary = await summarizer.summarizeStreaming(longText, {
context: 'This article is intended for junior developers.',
});
Demo
Puoi provare l'API Summarizer nel playground dell'API Summarizer.
Impegno di standardizzazione
Stiamo lavorando per standardizzare l'API Summarizer, in modo da garantire la compatibilità tra browser.
La nostra proposta di API ha ricevuto il supporto della community ed è stata trasferita al W3C Web Incubator Community Group per ulteriori discussioni. Il team di Chrome ha richiesto un feedback al W3C Technical Architecture Group e a Mozilla e WebKit per conoscere le loro posizioni sugli standard.
Partecipa al progetto relativo agli standard entrando a far parte del gruppo della community Web Incubator.
Condividi feedback
Vogliamo vedere cosa stai creando con l'API Summarizer. Condividi con noi i tuoi siti web e le tue applicazioni web su X, YouTube e LinkedIn.
Per inviare feedback sull'implementazione di Chrome, invia una segnalazione di bug o una richiesta di funzionalità.