Rewriter API

Veröffentlicht: 20. Mai 2025

Erklärung Web Erweiterungen Chrome-Status Absicht
GitHub Ursprungstest Origin Trial Ursprungstest Origin Trial Ansicht Absichtserklärung für Tests

Mit der Rewriter API können Sie Text überarbeiten und umstrukturieren. Diese API und die Writer API sind Teil des Vorschlags für Writing Assistance APIs.

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

Anwendungsfälle

Vorhandenen Text verfeinern, indem Sie ihn verlängern oder kürzen oder den Stil ändern Beispielsweise können Sie:

  • Formuliere eine kurze E‑Mail so um, dass sie höflicher und formeller klingt.
  • Änderungen an Kundenrezensionen vorschlagen, damit andere Kunden das Feedback besser verstehen oder um schädliche Inhalte zu entfernen.
  • Inhalte so formatieren, dass sie den Erwartungen bestimmter Zielgruppen entsprechen

Fehlt Ihr Anwendungsfall? Nehmen Sie am Early-Access-Programm teil, um uns Feedback zu geben.

Jetzt starten

Nehmen Sie am Ursprungstest für die Rewriter API teil, der in Chrome 137 bis 142 läuft.

Hardwareanforderungen prüfen

Für Entwickler und Nutzer, die Funktionen mit diesen APIs in Chrome verwenden, gelten die folgenden Anforderungen. Bei anderen Browsern gelten möglicherweise andere Betriebsanforderungen.

Die APIs für die Spracherkennung und die Übersetzung funktionieren in der Desktopversion von Chrome. Diese APIs funktionieren nicht auf Mobilgeräten. Die Prompt API, Summarizer API, Writer API und 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 wird von den APIs, die Gemini Nano verwenden, noch nicht unterstützt.
  • Speicherplatz: Mindestens 22 GB auf dem Volume, das Ihr Chrome-Profil enthält.
  • GPU: Mehr als 4 GB VRAM.
  • Netzwerk: Unbegrenzte Daten oder eine Verbindung ohne Volumenbegrenzung.

Die genaue Größe von Gemini Nano kann leicht variieren. Die aktuelle Größe finden Sie unter chrome://on-device-internals im Bereich Modellstatus. Öffnen Sie den aufgeführten Dateipfad, um die Modellgröße zu ermitteln.

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. Bestätigen Sie die Richtlinie zur unzulässigen Nutzung von generativer KI von Google.
  2. Rufen Sie die Rewriter API-Testversion auf.
  3. Klicken Sie auf Registrieren und füllen Sie das Formular aus. Geben Sie im Feld „Webursprung“ Ihren Ursprung oder Ihre Erweiterungs-ID ein, chrome-extension://YOUR_EXTENSION_ID.
  4. Klicken Sie zum Einreichen auf Registrieren.
  5. Kopieren Sie das bereitgestellte Token und fügen Sie es auf jeder teilnehmenden Webseite Ihres Ursprungs ein oder fügen Sie es in Ihr Erweiterungsmanifest ein.
  6. Beginnen Sie mit der Verwendung der Rewriter API.

Weitere Informationen zum Einstieg in Origin Trials

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 beim ersten Mal, wenn eine Website eine integrierte KI-API verwendet, separat heruntergeladen. Wenn ein Nutzer bereits mit einer integrierten API interagiert hat, hat er das Modell in seinen Browser heruntergeladen.

Rufen Sie die asynchrone Funktion Rewriter.availability() auf, um festzustellen, ob das Modell einsatzbereit ist. Es wird ein String zurückgegeben, 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. unzureichender Speicherplatz zum Herunterladen des Modells.
  • available: Der Browser unterstützt die Rewriter API und sie kann sofort verwendet werden.
  • downloadable: Der Browser unterstützt die Rewriter API, muss das Modell aber erst herunterladen.
  • downloading: Der Browser unterstützt die Rewriter API und lädt das Modell gerade herunter.

Rufen Sie die Funktion Rewriter.create() auf, um den Modelldownload auszulösen und den Rewriter zu starten. Wenn die Antwort auf availability() downloadable war, höre auf den Downloadfortschritt und informiere den Nutzer, da der Download einige Zeit dauern 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 Rewriter-Objekt konfigurieren. Es verwendet ein optionales options-Objekt mit den folgenden Parametern:

  • tone: Der Schreibstil kann sich auf den Stil, den Charakter oder die Haltung des Inhalts 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 mit den zulässigen Werten 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 initialisiert 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);
  });
}

Umschreiben starten

Es gibt zwei Möglichkeiten, Inhalte aus dem Modell auszugeben: nicht streamend und streamend.

Nicht-Streaming-Ausgabe

Beim Umschreiben ohne Streaming verarbeitet das Modell die Eingabe als Ganzes und gibt dann die Ausgabe aus.

Wenn Sie eine Ausgabe ohne Streaming erhalten möchten, rufen Sie die asynchrone Funktion rewrite() auf. Sie müssen den ursprünglichen Text angeben, der umgeschrieben werden soll. Sie können optional ein context hinzufügen, um dem Modell Hintergrundinformationen zu geben. So kann das Modell Ihre Erwartungen an die Ausgabe möglicherweise 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."
});

Ausgabe der Stream-Umschreibung

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

Um einen Streaming-Rewriter zu erhalten, rufen Sie die Funktion rewriteStreaming() auf und durchlaufen Sie die verfügbaren Textsegmente im Stream. Sie können optional ein context hinzufügen, um dem Modell Hintergrundinformationen zu geben. Das kann dem Modell helfen, Ihre Erwartungen an die Ausgabe besser zu 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 freigeben

Möglicherweise möchten Sie ein rewriter verwenden, um mehrere Inhalte zu generieren. In diesem Fall ist es sinnvoll, sharedContext hinzuzufügen. So können Sie 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);
}

Rewriter wiederverwenden

Sie können denselben Rewriter verwenden, um mehrere Inhalte zu bearbeiten. Das kann besonders nützlich sein, wenn Sie den Rewriter in ein Feedback- oder Kommentar-Tool einfügen, um Autoren dabei zu helfen, produktives und hilfreiches 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",
    })
  ),
);

Rewriter beenden

Um den Prozess des Umschreibens zu beenden, brechen Sie den Controller ab und zerstören Sie 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

Die Writer- und Rewriter-APIs werden derzeit aktiv diskutiert und können sich in Zukunft ändern. Wenn Sie diese API ausprobieren und Feedback haben, freuen wir uns darauf.

Entdecken Sie alle integrierten KI-APIs, die Modelle verwenden, einschließlich Gemini Nano und anderer Expertenmodelle, im Browser.