Data di pubblicazione: 11 novembre 2024
Immagina di poter offrire ai tuoi utenti la possibilità di riassumere articoli lunghi, documenti complessi o persino conversazioni vivaci in chat in modo conciso e perspicace.
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 riassunto conciso e informativo di un testo lungo.
- Generazione di un teaser per un libro basato su una recensione.
Disponibilità
- Partecipa alla prova dell'origine dell'API Summarizer, in esecuzione da Chrome 131 a Chrome 136. Le prove dell'origine ti consentono di offrire la funzionalità a utenti reali sulla tua origine, su Chrome.
- Segui la nostra implementazione in Stato di Chrome.
- La proposta dell'API Summarizer fa parte di una suite di API di scrittura ed è aperta alla discussione.
- Partecipa al programma di anteprima per dare un'occhiata in anteprima alle nuove API di IA integrate e accedere alla discussione sulla nostra mailing list.
Registrati per la prova dell'origine
Per iniziare a utilizzare l'API Summarizer:
- Accetta le Norme relative agli usi vietati dell'IA generativa di Google.
- Vai alla prova dell'origine dell'API Summarizer.
- Fai clic su Registrati e compila il modulo.
- Nel campo Origine web, fornisci l'origine o l'ID estensione
chrome-extension://YOUR_EXTENSION_ID
.
- Nel campo Origine web, fornisci l'origine o l'ID estensione
- Per inviare, fai clic su Registrati.
- Copia il token fornito e aggiungilo a ogni pagina web dell'origine o del file per l'estensione su cui vuoi attivare la prova.
- Se stai creando un'estensione, segui le istruzioni per la prova dell'origine delle estensioni
- Inizia a utilizzare l'API Summarizer.
Scopri di più su come iniziare a utilizzare le prove dell'origine.
Limitazioni durante la prova dell'origine
Durante la prova dell'origine, l'API Summarizer supporta solo il riassunto di testi in inglese, poiché la qualità del modello è stata testata approfonditamente solo su contenuti in inglese. Abbiamo intenzione di rimuovere questa limitazione dopo aver testato altre lingue per verificarne la qualità e la sicurezza e quando l'API sarà disponibile a livello globale.
Aggiungere il supporto a localhost
Per accedere all'API Summarizer il giorno localhost
durante la prova dell'origine, devi avere Chrome Canary. Poi segui questi passaggi:
- Apri Chrome Canary su una di queste piattaforme: Windows, Mac o Linux.
- Vai a
chrome://flags/#summarization-api-for-gemini-nano
. - Seleziona Attivata.
- Fai clic su Riavvia o riavvia Chrome.
Utilizzare l'API Summarizer
Innanzitutto, esegui il rilevamento delle funzionalità per verificare se il browser supporta l'API Summarizer.
if ('ai' in self && 'summarizer' in self.ai) {
// The Summarizer API is supported.
}
Download del modello
L'API Summarizer utilizza un potente modello di IA addestrato per generare riepiloghi di alta qualità. Sebbene l'API sia integrata in Chrome, il modello viene scaricato separatamente la prima volta che un sito web utilizza l'API.
Per determinare se il modello è pronto per l'uso, chiama la funzione asincrona
ai.summarizer.capabilities()
. Restituisce un
oggetto AISummarizerCapabilities
con un campo available
che può assumere tre
possibili valori:
no
: il browser corrente supporta l'API Summarizer, ma al momento non può essere utilizzato. Ciò può essere dovuto a una serie di motivi, ad esempio a uno spazio su disco disponibile insufficiente per scaricare il modello.readily
: il browser corrente supporta l'API Summarizer e può essere utilizzato subito.after-download
: il browser corrente supporta l'API Summarizer, ma deve prima scaricare il modello.
Per attivare il download del modello e creare il riepilogatore, chiama la funzione asincrona
ai.summarizer.create()
. Se la risposta a capabilities()
è stata
after-download
, è buona norma ascoltare l'avanzamento del download. In questo modo,
puoi informare l'utente nel caso in cui il download richieda tempo.
const summarizer = await ai.summarizer.create({
monitor(m) {
m.addEventListener('downloadprogress', (e) => {
console.log(`Downloaded ${e.loaded} of ${e.total} bytes.`);
});
}
});
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
.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; un riepilogo dei punti chiave lungo è costituito da sette elenchi puntati e un riepilogo lungo è costituito da un paragrafo.
L'esempio seguente mostra come inizializzare il riepilogatore.
const options = {
sharedContext: 'This is a scientific article',
type: 'key-points',
format: 'markdown',
length: 'medium',
};
const available = (await self.ai.summarizer.capabilities()).available;
let summarizer;
if (available === 'no') {
// The Summarizer API isn't usable.
return;
}
if (available === 'readily') {
// The Summarizer API can be used immediately .
summarizer = await self.ai.summarizer.create(options);
} else {
// The Summarizer API can be used after the model is downloaded.
summarizer = await self.ai.summarizer.create(options);
summarizer.addEventListener('downloadprogress', (e) => {
console.log(e.loaded, e.total);
});
await summarizer.ready;
}
Esegui il riepilogatore
Esistono due modi per eseguire il riepilogatore: in streaming e non in streaming.
Riepilogo non in streaming
Con il riepilogo non in streaming, il modello elabora l'input nel suo complesso e poi produce l'output.
Per ottenere un riepilogo non in streaming, chiama la funzione summarize()
asincrona del riepilogatore. Il primo argomento della funzione è il testo da riepilogare. Il secondo argomento facoltativo è un oggetto con un campo context
.
Questo campo ti consente di aggiungere dettagli di contesto 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 si aggiorna continuamente man mano che l'input viene aggiunto e modificato.
Per ottenere un riepilogo dello streaming, chiama la funzione summarizeStreaming()
del riepilogatore. Quindi, esegui l'iterazione sui segmenti di testo disponibili nello stream.
let result = '';
let previousChunk = '';
for await (const chunk of stream) {
const newChunk = chunk.startsWith(previousChunk)
? chunk.slice(previousChunk.length) : chunk;
console.log(newChunk);
result += newChunk;
previousChunk = chunk;
}
console.log(result);
summarizeStreaming()
restituisce un ReadableStream
, in cui i segmenti di risposta si basano l'uno sull'altro. Ciò significa che ogni risposta contiene l'intero riepilogo generato fino a quel momento, non solo il segmento successivo, che non è il comportamento previsto.
Abbiamo intenzione di allinearci ad altre API di streaming sulla piattaforma, in cui i segmenti sono parti successive di un singolo stream lungo. Per il momento, per ottenere il comportamento previsto, puoi implementare quanto segue:
let result = '';
let previousLength = 0;
for await (const segment of stream) {
const newContent = segment.slice(previousLength);
console.log(newContent);
previousLength = segment.length;
result += newContent;
}
console.log(result);
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 gruppo della community W3C Web Incubator 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 in merito agli standard.
Partecipare e condividere feedback
Inizia subito a testare l'API Summarizer partecipando alla prova dell'origine e condividi il tuo feedback. Il tuo feedback può influire direttamente sulla modalità di creazione e implementazione delle versioni future di questa API e di tutte le API di IA integrate.
- Per inviare feedback sull'implementazione di Chrome, invia una segnalazione di bug o una richiesta di funzionalità.
- Discutere del design dell'API Summarizer su GitHub commentando un problema esistente o aprendone uno nuovo.
- Partecipa al progetto relativo agli standard entrando a far parte del gruppo della community Web Incubator.