Riepiloga con l'IA integrata

Pubblicato: 11 novembre 2024, ultimo aggiornamento: 20 maggio 2025

Spiegazione Web Estensioni Stato di Chrome Intenzione
GitHub Dietro una bandiera Prova di Origin Dietro una bandiera Prova di Origin 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 consentiti key-points (predefinito), tl;dr, teaser e headline. Vedi la tabella seguente per i dettagli.
  • format: il formato del riepilogo, con i valori consentiti markdown (predefinito) e plain-text.
  • length: la lunghezza del riepilogo, con i valori consentiti short, medium (predefinito) e long. Il significato di queste lunghezze varia a seconda del type 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.
video breve 1 frase
media 3 frasi
Lungo 5 frasi
"teaser" Il riepilogo deve concentrarsi sulle parti più interessanti o intriganti dell'input, progettate per invogliare il lettore a leggere di più.
video breve 1 frase
media 3 frasi
Lungo 5 frasi
"key-points" Il riepilogo deve estrarre i punti più importanti dall'input, presentati sotto forma di elenco puntato.
video breve 3 punti elenco
media 5 elenchi puntati
Lungo 7 punti elenco
"headline" Il riepilogo deve contenere in modo efficace il punto principale dell'input in una singola frase, nel formato di un titolo dell'articolo.
video breve 12 parole
media 17 parole
Lungo 22 parole

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à.