Rewriter-API

Gepubliceerd: 20 mei 2025

Uitlegger Web Uitbreidingen Chrome-status Intentie
GitHub Achter een vlag Oorsprongsproef Achter een vlag Oorsprongsproef Weergave Intentie om te experimenteren

De Rewriter API helpt je bij het reviseren en herstructureren van tekst. Deze API en de Writer API maken deel uit van het Writing Assistance API-voorstel .

Met deze API's kunt u de content van uw gebruikers verbeteren.

Gebruiksscenario's

Verfijn bestaande tekst door deze langer of korter te maken, of door de toon te veranderen. Je kunt bijvoorbeeld:

  • Herschrijf een korte e-mail, zodat deze beleefder en formeler klinkt.
  • Stel wijzigingen voor in de beoordelingen van klanten, zodat andere klanten de feedback beter kunnen begrijpen of om schadelijke content te verwijderen.
  • Formatteer content op een manier die voldoet aan de verwachtingen van specifieke doelgroepen.

Ontbreekt uw use case? Doe mee aan het early preview-programma en deel uw feedback.

Aan de slag

Doe mee aan de proefversie van de Rewriter API, die beschikbaar is in Chrome 137 tot en met 142.

Controleer de hardwarevereisten

De API's voor taaldetector en vertaler werken alleen op desktopcomputers in Chrome.

De Prompt API, Summarizer API, Writer API en Rewriter API werken in Chrome wanneer aan de volgende voorwaarden is voldaan:

  • Besturingssysteem : Windows 10 of 11; macOS 13+ (Ventura en hoger); of Linux. Chrome voor Android, iOS en ChromeOS worden nog niet ondersteund door onze API's, ondersteund door Gemini Nano.
  • Opslag : minimaal 22 GB op het volume dat uw Chrome-profiel bevat.
  • GPU : absoluut meer dan 4 GB VRAM.
  • Netwerk : Onbeperkt dataverbruik of een onbeperkte verbinding.

Deze vereisten gelden voor u in uw ontwikkelingsproces en voor uw gebruikers die met de functies werken die u bouwt.

Meld je aan voor het oorsprongsonderzoek

De Rewriter API is beschikbaar in een gezamenlijke proefperiode met de Writer API. Om deze API's te gebruiken:

  1. Erken het beleid van Google inzake verboden gebruik van generatieve AI .
  2. Ga naar de proefversie van de Rewriter API .
  3. Klik op Registreren en vul het formulier in. Geef in het veld 'Web origin' uw oorsprong- of extensie-ID op, chrome-extension://YOUR_EXTENSION_ID .
  4. Om te verzenden, klikt u op Registreren .
  5. Kopieer het verstrekte token en voeg het toe aan elke deelnemende webpagina op uw oorsprong of neem het op in het manifest van uw extensie .
  6. Begin met het gebruiken van de Rewriter API.

Lees meer over hoe u kunt beginnen met oorsprongsproeven .

Ondersteuning toevoegen aan localhost

Om tijdens de proefperiode toegang te krijgen tot de Writer- en Rewriter-API's op localhost, moet u Chrome updaten naar de nieuwste versie. Volg vervolgens deze stappen:

  1. Ga naar chrome://flags/#rewriter-api-for-gemini-nano .
  2. Selecteer Ingeschakeld .
  3. Klik op Opnieuw starten of start Chrome opnieuw.

Gebruik de Rewriter API

Voer eerst functiedetectie uit om te controleren of de browser deze API's ondersteunt.


if ('Rewriter' in self) {
  // The Rewriter API is supported.
}

De Rewriter API en alle andere ingebouwde AI API's zijn geïntegreerd in de browser. Gemini Nano wordt apart gedownload wanneer een website voor het eerst een ingebouwde AI API gebruikt. In de praktijk betekent dit dat als een gebruiker al eerder met een ingebouwde API heeft gewerkt, hij of zij het model al naar zijn of haar browser heeft gedownload.

Om te bepalen of het model klaar is voor gebruik, roept u de asynchrone functie Rewriter.availability() aan. Deze retourneert een string die vier mogelijke waarden kan aannemen:

  • unavailable : De browser ondersteunt de Rewriter API, maar deze kan momenteel niet worden gebruikt. Dit kan verschillende oorzaken hebben, zoals onvoldoende beschikbare schijfruimte om het model te downloaden.
  • available : De browser ondersteunt de Rewriter API en kan direct gebruikt worden.
  • downloadable : De browser ondersteunt de Rewriter API, maar moet eerst het model downloaden.
  • downloading : De browser ondersteunt de Rewriter API en is momenteel bezig met het downloaden van het model.

Om het downloaden van het model te activeren en de herschrijver te starten, roept u de functie Rewriter.create() aan. Als de respons op availability() downloadable was, luister dan naar de voortgang van het downloaden en informeer de gebruiker, aangezien het downloaden enige tijd kan duren.

const rewriter = await Rewriter.create({
  monitor(m) {
    m.addEventListener("downloadprogress", e => {
      console.log(`Downloaded ${e.loaded * 100}%`);
    });
  }
});

API-functies

Met de functie create() kunt u een nieuw rewriter-object configureren. Deze functie accepteert een optioneel options met de volgende parameters:

  • tone : Schrijftoon kan verwijzen naar de stijl, het karakter of de houding van de inhoud. De waarde kan worden ingesteld op more-formal , as-is (standaard) of more-casual .
  • format : De opmaak van de uitvoer, met de toegestane waarden as-is (standaard), markdown en plain-text .
  • length : De lengte van de uitvoer, met de toegestane waarden shorter , as-is (standaard) en longer .
  • sharedContext : Wanneer u meerdere stukken content herschrijft, kan een gedeelde context het model helpen content te creëren die beter aansluit bij uw verwachtingen.

Het volgende voorbeeld laat zien hoe u een rewriter -object initieert:

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);
  });
}

Begin met herschrijven

Er zijn twee manieren om inhoud uit het model te genereren: niet-streaming en streaming.

Niet-streaming output

Bij non-streaming herschrijven verwerkt het model de invoer als geheel en produceert vervolgens de uitvoer.

Roep de asynchrone rewrite() -functie aan om een ​​niet-streaming-uitvoer te verkrijgen. U moet de oorspronkelijke tekst opnemen die u wilt herschrijven. U kunt een optionele context toevoegen om achtergrondinformatie over het model te verstrekken, waardoor het model mogelijk beter aan uw verwachtingen voor de uitvoer voldoet.

// 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."
});

Uitvoer van herschrijfstream

Streaming biedt resultaten in realtime. De output wordt continu bijgewerkt naarmate de input wordt toegevoegd en aangepast.

Om een ​​streaming herschrijver te krijgen, roept u de functie rewriteStreaming() aan en itereert u over de beschikbare tekstsegmenten in de stream. U kunt een optionele context toevoegen om achtergrondinformatie over het model te geven, wat kan helpen om het model beter aan uw verwachtingen voor de uitvoer te laten voldoen.

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);
}

Deel context voor meerdere taken

Je kunt een rewriter gebruiken om meerdere stukken content te genereren. In dat geval is het handig om sharedContext toe te voegen. Je kunt reviewers bijvoorbeeld helpen om betere feedback te geven in reacties.

// 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);
}

Een herschrijver hergebruiken

Je kunt dezelfde herschrijver gebruiken om meerdere stukken content te bewerken. Dit kan met name handig zijn als je de herschrijver toevoegt aan een feedback- of reactietool, zodat schrijvers productieve en nuttige feedback kunnen geven.

// 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",
    })
  ),
);

Stop de herschrijver

Om het herschrijfproces te beëindigen, moet u de controller afsluiten en de rewriter vernietigen.

// 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();

Demonstratie

Betrek en deel feedback

De Writer- en Rewriter-API's worden momenteel actief besproken en kunnen in de toekomst worden gewijzigd. Als u deze API uitprobeert en feedback heeft, horen we dat graag.

Ontdek alle ingebouwde AI API's die modellen gebruiken, waaronder Gemini Nano en andere expertmodellen, in de browser.