Rewriter API

Veröffentlicht: 20. Mai 2025

Erklärvideo Web Erweiterungen Chrome-Status Absicht
GitHub Hinter einer Flagge Origin-Testversion Hinter einer Flagge Origin-Testversion Ansicht Testabsicht

Mit der Rewriter API können Sie Text überarbeiten und neu strukturieren. Diese API und die Writer API sind Teil des Vorschlags für APIs zur Unterstützung beim Schreiben.

Mit diesen APIs können Sie von Nutzern erstellte Inhalte verbessern.

Anwendungsfälle

Sie können vorhandenen Text optimieren, indem Sie ihn verlängern oder kürzen oder den Ton ändern. Sie können zum Beispiel:

  • Formulieren Sie eine kurze E-Mail so um, dass sie höflicher und formeller klingt.
  • Sie können Änderungen an Rezensionen vorschlagen, um anderen Kunden das Feedback besser zu vermitteln oder unangemessene Inhalte zu entfernen.
  • Formatiere Inhalte so, dass sie den Erwartungen bestimmter Zielgruppen entsprechen.

Fehlt Ihr Anwendungsfall? Wenn Sie Feedback geben möchten, können Sie am Vorab-Vorschauprogramm teilnehmen.

Jetzt starten

Am Ursprungstest der Rewriter API teilnehmen, der in Chrome 137 bis 142 ausgeführt wird.

Hardwareanforderungen prüfen

Die Language Detection API und die Translator API funktionieren nur auf dem Computer in Chrome.

Die Prompt API, die Summarizer API, die Writer API und die Rewriter API funktionieren in Chrome, wenn die folgenden Bedingungen erfüllt sind:

  • Betriebssystem: Windows 10 oder 11, macOS 13 oder höher (Ventura und höher) oder Linux Chrome für Android, iOS und ChromeOS werden von unseren APIs, die von Gemini Nano unterstützt werden, noch nicht unterstützt.
  • Speicher: Mindestens 22 GB auf dem Volume, das Ihr Chrome-Profil enthält.
  • GPU: Mindestens 4 GB VRAM.
  • Netzwerk: Unbegrenzte Datennutzung oder eine Verbindung ohne Datenlimit.

Diese Anforderungen gelten für Sie in Ihrem Entwicklungsprozess und für Ihre Nutzer, die mit den von Ihnen entwickelten Funktionen arbeiten.

Für den Ursprungstest registrieren

Die Rewriter API ist in einem gemeinsamen Ursprungstest mit der Writer API verfügbar. So verwenden Sie diese APIs:

  1. Sie bestätigen, dass Sie die Google-Richtlinie zur unzulässigen Nutzung von generativer KI gelesen und verstanden haben.
  2. Rufen Sie den Rewriter API-Ursprungstest auf.
  3. Klicken Sie auf Registrieren und füllen Sie das Formular aus. Geben Sie im Feld „Web-Ursprung“ Ihre Ursprungs- oder Erweiterungs-ID chrome-extension://YOUR_EXTENSION_ID ein.
  4. Klicken Sie auf Registrieren, um die Änderungen zu senden.
  5. Kopieren Sie das bereitgestellte Token und fügen Sie es jeder teilnehmenden Webseite auf Ihrem Ursprung hinzu oder fügen Sie es in Ihr Erweiterungsmanifest ein.
  6. Mit der Rewriter API beginnen

Weitere Informationen zum Einstieg in Ursprungstests

Unterstützung für localhost hinzufügen

Wenn Sie während des Ursprungstests auf die Writer- und Rewriter APIs auf localhost zugreifen möchten, müssen Sie Chrome auf die neueste Version aktualisieren. Folgen Sie anschließend dieser Anleitung:

  1. Öffnen Sie chrome://flags/#rewriter-api-for-gemini-nano.
  2. Wählen Sie Aktiviert aus.
  3. Klicken Sie auf Neu starten oder starten Sie Chrome neu.

Rewriter API verwenden

Führen Sie zuerst die Funktionserkennung aus, um zu prüfen, ob der Browser diese APIs unterstützt.


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

Die Rewriter API und alle anderen integrierten KI-APIs sind in den Browser integriert. Gemini Nano wird separat heruntergeladen, wenn eine Website zum ersten Mal eine integrierte KI-API verwendet. In der Praxis hat ein Nutzer, der bereits mit einer integrierten API interagiert hat, das Modell in seinen Browser heruntergeladen.

Rufen Sie die asynchrone Funktion Rewriter.availability() auf, um zu prüfen, ob das Modell einsatzbereit ist. Sie gibt einen String zurück, der vier mögliche Werte annehmen kann:

  • unavailable: Der Browser unterstützt die Rewriter API, sie kann aber derzeit nicht verwendet werden. Das kann verschiedene Gründe haben, z. B. nicht genügend Speicherplatz zum Herunterladen des Modells.
  • available: Der Browser unterstützt die Rewriter API und kann sofort verwendet werden.
  • downloadable: Der Browser unterstützt die Rewriter API, muss aber zuerst das Modell herunterladen.
  • downloading: Der Browser unterstützt die Rewriter API und lädt derzeit das Modell herunter.

Rufen Sie die Funktion Rewriter.create() auf, um den Modelldownload auszulösen und den Umschreiber zu starten. Wenn die Antwort auf availability() downloadable war, warte auf den Downloadfortschritt und informiere den Nutzer, da der Download einige Zeit in Anspruch nehmen kann.

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

API-Funktionen

Mit der Funktion create() können Sie ein neues Rewrite-Objekt konfigurieren. Es nimmt ein optionales options-Objekt mit den folgenden Parametern an:

  • tone: Der Tonfall kann sich auf den Stil, den Charakter oder die Haltung der Inhalte beziehen. Der Wert kann auf more-formal, as-is (Standard) oder more-casual festgelegt werden.
  • format: Die Ausgabeformatierung mit den zulässigen Werten as-is (Standard), markdown und plain-text.
  • length: Die Länge der Ausgabe. Zulässige Werte sind shorter, as-is (Standard) und longer.
  • sharedContext: Wenn Sie mehrere Inhalte umschreiben, kann ein gemeinsamer Kontext dem Modell helfen, Inhalte zu erstellen, die besser Ihren Erwartungen entsprechen.

Das folgende Beispiel zeigt, wie ein rewriter-Objekt initiiert wird:

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

Neuschreiben starten

Es gibt zwei Möglichkeiten, Inhalte aus dem Modell auszugeben: ohne Streaming und mit Streaming.

Nicht-Streaming-Ausgabe

Beim nicht-streamingbasierten Umschreiben verarbeitet das Modell die Eingabe als Ganzes und generiert dann die Ausgabe.

Wenn Sie eine nicht gestreamte Ausgabe erhalten möchten, rufen Sie die asynchrone rewrite()-Funktion auf. Sie müssen den ursprünglichen Text angeben, der umformuliert werden soll. Sie können ein optionales context hinzufügen, um Hintergrundinformationen zum Modell anzugeben. So kann das Modell Ihre Erwartungen an die Ausgabe besser erfüllen.

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

Stream-Umschreibungsausgabe

Streaming bietet Ergebnisse in Echtzeit. Die Ausgabe wird kontinuierlich aktualisiert, während die Eingabe hinzugefügt und angepasst wird.

Rufen Sie die Funktion rewriteStreaming() auf und iterieren Sie über die verfügbaren Textsegmente im Stream, um einen Streaming-Umschreiber zu erhalten. Sie können ein optionales context hinzufügen, um Hintergrundinformationen zum Modell anzugeben. So kann das Modell Ihre Erwartungen an die Ausgabe besser erfüllen.

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

Kontext für mehrere Aufgaben teilen

Sie können rewriter verwenden, um mehrere Inhalte zu generieren. In diesem Fall ist es hilfreich, sharedContext hinzuzufügen. Sie können beispielsweise Prüfern helfen, besseres Feedback in Kommentaren zu geben.

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

Umformulierer wiederverwenden

Sie können denselben Rewriter verwenden, um mehrere Inhalte zu bearbeiten. Das kann besonders nützlich sein, wenn Sie den Umformulierer einem Feedback- oder Kommentartool hinzufügen, um Autoren dabei zu helfen, konstruktives Feedback zu geben.

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

Umwandlung beenden

Wenn Sie den Neuschreibenvorgang beenden möchten, brechen Sie den Controller ab und löschen Sie die 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

Feedback geben und erhalten

Die Writer und Rewriter APIs befinden sich in der aktiven Diskussion und können sich daher ändern. Wenn Sie diese API ausprobieren und Feedback haben, würden wir uns sehr darüber freuen.

Hier finden Sie alle integrierten KI-APIs, die Modelle wie Gemini Nano und andere Expertenmodelle im Browser verwenden.