Pubblicata: 20 maggio 2025
Spiegazione | Web | Estensioni | Stato di Chrome | Intenzione |
---|---|---|---|---|
Visualizza | Intento di partecipare a un esperimento |
L'API Rewriter ti aiuta a rivedere e ristrutturare il testo. Questa API e l'API Writer fanno parte della proposta di API di assistenza alla scrittura.
Queste API possono aiutarti a migliorare i contenuti creati dagli utenti.
Casi d'uso
Perfeziona il testo esistente allungandolo o accorciandolo oppure cambiandone il tono. Ad esempio, potresti:
- Riscrivere un'email breve in modo che suoni più educata e formale.
- Suggerire modifiche alle recensioni dei clienti per aiutare altri clienti a comprendere il feedback o rimuovere i contenuti dannosi.
- Formatta i contenuti in modo da soddisfare le aspettative di determinati segmenti di pubblico.
Il tuo caso d'uso non è presente? Partecipa al programma di anteprima in anteprima per condividere il tuo feedback.
Inizia
Partecipa alla prova dell'origine dell'API Rewriter, in esecuzione in Chrome 137-142.
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.
Questi requisiti sono previsti per te nel processo di sviluppo e per gli utenti che lavorano con le funzionalità che crei.
Registrati per la prova dell'origine
L'API Rewriter è disponibile in una prova dell'origine congiunta con l'API Writer. Per iniziare a utilizzare queste API:
- Accetta le Norme relative agli usi vietati dell'IA generativa di Google.
- Vai alla prova dell'origine dell'API Rewriter.
- Fai clic su Registrati e compila il modulo. Nel campo Origine web, fornisci l'origine o l'ID estensione,
chrome-extension://YOUR_EXTENSION_ID
. - Per inviare, fai clic su Registrati.
- Copia il token fornito e aggiungilo a ogni pagina web partecipante nella tua origine o includilo nel manifest dell'estensione.
- Inizia a utilizzare l'API Rewriter.
Scopri di più su come iniziare a utilizzare le prove dell'origine.
Aggiungere il supporto a localhost
Per accedere alle API Writer e Rewriter su localhost durante la prova dell'origine, devi aggiornare Chrome all' ultima versione. A tale scopo, procedi nel seguente modo:
- Vai a
chrome://flags/#rewriter-api-for-gemini-nano
. - Seleziona Attivata.
- Fai clic su Riavvia o riavvia Chrome.
Utilizzare l'API Rewriter
Innanzitutto, esegui il rilevamento delle funzionalità per verificare se il browser supporta queste API.
if ('Rewriter' in self) {
// The Rewriter API is supported.
}
L'API Rewriter e tutte le altre API di IA integrate sono integrate nel browser. Gemini Nano viene scaricato separatamente la prima volta che un sito web utilizza un'API di IA integrata. In pratica, se un utente ha già interagito con un'API integrata, ha scaricato il modello nel browser.
Per determinare se il modello è pronto per l'uso, chiama la funzione asincrona Rewriter.availability()
. Restituisce una stringa che può assumere quattro possibili valori:
unavailable
: il browser supporta l'API Rewriter, ma al momento non può essere utilizzata. Ciò potrebbe essere dovuto a una serie di motivi, ad esempio a uno spazio su disco disponibile insufficiente per scaricare il modello.available
: il browser supporta l'API Rewriter e può essere utilizzato subito.downloadable
: il browser supporta l'API Rewriter, ma deve prima scaricare il modello.downloading
: il browser supporta l'API Rewriter e al momento sta scaricando il modello.
Per attivare il download del modello e avviare il riscrittore, chiama la funzione Rewriter.create()
. Se la risposta a availability()
è downloadable
, ascolta l'avanzamento del download e informa l'utente, poiché il download potrebbe richiedere del tempo.
const rewriter = await Rewriter.create({
monitor(m) {
m.addEventListener("downloadprogress", e => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
}
});
Funzioni API
La funzione create()
consente di configurare un nuovo oggetto riscrittore. Accetta un oggetto options
facoltativo con i seguenti parametri:
tone
: il tono della scrittura può fare riferimento allo stile, al carattere o all'atteggiamento dei contenuti. Il valore può essere impostato sumore-formal
,as-is
(predefinito) omore-casual
.format
: la formattazione dell'output, con i valori consentitias-is
(predefinito),markdown
eplain-text
.length
: la lunghezza dell'output, con i valori consentitishorter
,as-is
(predefinito) elonger
.sharedContext
: quando riscrivi più contenuti, un contesto condiviso può aiutare il modello a creare contenuti più in linea con le tue aspettative.
L'esempio seguente mostra come inizializzare un oggetto rewriter
:
const options = {
sharedContext: 'This is an email to acquaintances about an upcoming event.',
tone: 'more-casual',
format: 'plain-text',
length: 'shorter',
};
const available = await Rewriter.availability();
let rewriter;
if (available === 'unavailable') {
// The Rewriter API isn't usable.
return;
}
if (available === 'available') {
// The Rewriter API can be used immediately .
rewriter = await Rewriter.create(options);
} else {
// The Rewriter can be used after the model is downloaded.
rewriter = await Rewriter.create(options);
rewriter.addEventListener('downloadprogress', (e) => {
console.log(e.loaded, e.total);
});
}
Inizia a riscrivere
Esistono due modi per esportare i contenuti dal modello: non in e in .
Output non in
Con la riscrittura non in , il modello elabora l'input nel suo complesso e poi produce l'output.
Per ottenere un output non in , chiama la funzione asincrona rewrite()
. Devi includere il testo iniziale che vuoi che venga riscritto. Puoi aggiungere un context
facoltativo per fornire informazioni di contesto sul modello, che possono aiutare il modello a soddisfare meglio le tue aspettative relative all'output.
// Non-
const rewriter = await Rewriter.create({
sharedContext: "A review for the Flux Capacitor 3000 from TimeMachines Inc."
});
const result = await rewriter.rewrite(reviewEl.textContent, {
context: "Avoid any toxic language and be as constructive as possible."
});
Output della riscrittura dello stream
Lo offre risultati in tempo reale. L'output si aggiorna continuamente man mano che l'input viene aggiunto e modificato.
Per ottenere un riscrittore in , chiama la funzione rewrite()
ed esegui un'iterazione su tutti i segmenti di testo disponibili nello stream. Puoi aggiungere un valore facoltativo context
per fornire informazioni di contesto sul modello, che possono aiutare il modello a soddisfare meglio le tue aspettative in termini di output.
const rewriter = await Rewriter.create({
sharedContext: "A review for the Flux Capacitor 3000 from TimeMachines Inc."
});
const stream = rewriter.rewrite(reviewEl.textContent, {
context: "Avoid any toxic language and be as constructive as possible.",
tone: "more-casual",
});
for await (const chunk of stream) {
composeTextbox.append(chunk);
}
Condividere il contesto per più attività
Ti consigliamo di utilizzare un rewriter
per generare più contenuti. In questo caso, è utile aggiungere sharedContext
. Ad esempio, potresti aiutare i revisori a fornire un feedback migliore nei commenti.
// Shared context and per writing task context
const rewriter = await Rewriter.create({
sharedContext: "This is for publishing on [popular website name], a business and employment-focused social media platform."
});
const stream = rewriter.rewrite(
"Love all this work on generative AI at Google! So much to learn and so many new things I can do!",
{
context: "The request comes from someone working at a startup providing an e-commerce CMS solution.",
tone: "more-casual",
}
);
for await (const chunk of stream) {
composeTextbox.append(chunk);
}
Riutilizzare un riscrittore
Puoi utilizzare lo stesso riscrittore per modificare più contenuti. Questa operazione può essere particolarmente utile se aggiungi lo strumento di riscrittura a uno strumento di feedback o commenti per aiutare gli autori a offrire un feedback produttivo e utile.
// Reusing a rewriter
const rewriter = await Rewriter.create({
sharedContext: "A review for the Flux Capacitor 3000 from TimeMachines Inc."
});
const rewrittenReviews = await Promise.all(
Array.from(
document.querySelectorAll("#reviews > .review"),
(reviewEl) => rewriter.rewrite(reviewEl.textContent, {
context: "Avoid any toxic language and be as constructive as possible.",
tone: "more-casual",
})
),
);
Interrompi il riscrittore
Per terminare la procedura di riscrittura, interrompi il controller e distruggi il file rewriter
.
// Stop a rewriter
const controller = new AbortController();
stopButton.onclick = () => controller.abort();
const rewriter = await Rewriter.create({ signal: controller.signal });
await rewriter.rewrite(reviewEl.textContent, { signal: controller.signal });
// Destroy a rewriter
rewriter.destroy();
Demo
Coinvolgere e condividere feedback
Le API Writer e Rewriter sono in fase di discussione e soggette a modifiche in futuro. Se provi questa API e hai un feedback, ci farebbe piacere riceverlo.
- Leggi la spiegazione, fai domande e partecipa alla discussione.
- Esamina l'implementazione per Chrome su Stato di Chrome.
- Partecipa al programma di anteprima per dare un'occhiata in anteprima alle nuove API e accedere alla nostra mailing list.
- Se hai un feedback sull'implementazione di Chrome, segnala un bug di Chromium.
Scopri tutte le API di IA integrate che utilizzano modelli, tra cui Gemini Nano e altri modelli di esperti, nel browser.