API Rewriter

Data di pubblicazione: 20 maggio 2025

Spiegazione Web Estensioni Stato di Chrome Intenzione
GitHub Prova dell'origine Origin trial Prova dell'origine Origin trial Visualizza Intenzione di sperimentare

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, accorciandolo o modificandone il tono. Ad esempio, potresti:

  • Riscrivi un'email breve in modo che risulti più educata e formale.
  • Suggerire modifiche alle recensioni dei clienti per aiutare gli altri clienti a comprendere il feedback o rimuovere i contenuti tossici.
  • 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 per condividere il tuo feedback.

Inizia

Partecipa alla prova dell'origine dell'API Rewriter, in esecuzione in Chrome 137-142.

Esamina i requisiti hardware

Per gli sviluppatori e gli utenti che utilizzano le funzionalità che si servono di queste API in Chrome esistono i seguenti requisiti. Altri browser potrebbero avere requisiti di funzionamento diversi.

Le API Language Detector e Translator funzionano in Chrome su computer. Queste API non funzionano sui dispositivi mobili. L'API Prompt, l'API Summarizer, l'API Writer e l'API Rewriter funzionano in Chrome quando sono soddisfatte le seguenti condizioni:

  • Sistema operativo: Windows 10 o 11; macOS 13+ (Ventura e versioni successive); o Linux. Chrome per Android, iOS e ChromeOS non è ancora supportato dalle API che utilizzano Gemini Nano.
  • Spazio di archiviazione: almeno 22 GB sul volume che contiene il tuo profilo Chrome.
  • GPU: rigorosamente più di 4 GB di VRAM.
  • Rete: dati illimitati o una connessione non misurata.

Le dimensioni esatte di Gemini Nano possono variare leggermente. Per trovare le dimensioni attuali, visita chrome://on-device-internals e vai a Stato modello. Apri il Percorso file elencato per determinare le dimensioni del modello.

Registrati alla prova dell'origine

L'API Rewriter è disponibile in una prova dell'origine congiunta con l'API Writer. Per iniziare a utilizzare queste API:

  1. Accetta le Norme relative all'uso vietato dell'AI generativa di Google.
  2. Vai alla prova dell'origine dell'API Rewriter.
  3. Fai clic su Registrati e compila il modulo. Nel campo Origine web, fornisci l'origine o l'ID estensione, chrome-extension://YOUR_EXTENSION_ID.
  4. Per inviare, fai clic su Registra.
  5. Copia il token fornito e aggiungilo a ogni pagina web partecipante dell'origine o includilo nel file manifest dell'estensione.
  6. Inizia a utilizzare l'API Rewriter.

Scopri di più su come iniziare a utilizzare le prove di 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:

  1. Vai a chrome://flags/#rewriter-api-for-gemini-nano.
  2. Seleziona Attivata.
  3. Fai clic su Riavvia o riavvia Chrome.

Utilizzare l'API Rewriter

Per prima cosa, 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 AI integrate sono integrate nel browser. Gemini Nano viene scaricato separatamente la prima volta che un sito web utilizza un'API AI 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 valori possibili:

  • unavailable: il browser supporta l'API Rewriter, ma al momento non può essere utilizzata. Questo potrebbe essere dovuto a una serie di motivi, ad esempio spazio su disco disponibile insufficiente per scaricare il modello.
  • available: il browser supporta l'API Rewriter e può essere utilizzata immediatamente.
  • downloadable: Il browser supporta l'API Rewriter, ma deve prima scaricare il modello.
  • downloading: il browser supporta l'API Rewriter e sta scaricando il modello.

Per attivare il download del modello e avviare il rewriter, chiama la funzione Rewriter.create(). Se la risposta a availability() è stata downloadable, ascolta l'avanzamento del download e informa l'utente, poiché il download potrebbe richiedere 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 di riscrittura. Accetta un oggetto options facoltativo con i seguenti parametri:

  • tone: il tono di scrittura può riferirsi allo stile, al carattere o all'atteggiamento dei contenuti. Il valore può essere impostato su more-formal, as-is (predefinito) o more-casual.
  • format: la formattazione dell'output, con i valori consentiti as-is (predefinito), markdown e plain-text.
  • length: la lunghezza dell'output, con i valori consentiti shorter, as-is (predefinito) e longer.
  • sharedContext: quando riscrivi più contenuti, un contesto condiviso può aiutare il modello a creare contenuti più in linea con le tue aspettative.

Il seguente esempio 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 generare contenuti dal modello: non in streaming e in streaming.

Output non in streaming

Con la riscrittura non in streaming, il modello elabora l'input nel suo complesso e poi produce l'output.

Per ottenere un output non di streaming, chiama la funzione asincrona rewrite(). Devi includere il testo iniziale che vuoi riscrivere. Puoi aggiungere un context facoltativo per fornire al modello informazioni di base, che possono aiutarlo a soddisfare meglio le tue aspettative per l'output.

// Non-streaming
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 di riscrittura dello stream

Streaming offre risultati in tempo reale. L'output si aggiorna continuamente man mano che l'input viene aggiunto e modificato.

Per ottenere un rewriter di streaming, chiama la funzione rewriteStreaming() e scorri i segmenti di testo disponibili nel flusso. Puoi aggiungere un context facoltativo per fornire al modello informazioni di base, che possono aiutarlo a soddisfare meglio le tue aspettative per l'output.

const rewriter = await Rewriter.create({
  sharedContext: "A review for the Flux Capacitor 3000 from TimeMachines Inc."
});

const stream = rewriter.rewriteStreaming(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 voler aiutare i revisori a fornire feedback migliori 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.rewriteStreaming(
  "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 generatore di testo

Puoi utilizzare lo stesso strumento di riscrittura per modificare più contenuti. Ciò può essere particolarmente utile se aggiungi lo strumento di riscrittura a uno strumento di feedback o di commento, per aiutare gli autori a offrire feedback produttivi e utili.

// 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 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

Partecipare e condividere feedback

Le API Writer e Rewriter sono in fase di discussione e sono soggette a modifiche in futuro. Se provi questa API e hai un feedback, ci farebbe piacere riceverlo.

Scopri tutte le API AI integrate che utilizzano modelli, tra cui Gemini Nano e altri modelli esperti, nel browser.