Veröffentlicht am 22. Oktober 2025
| Erklärer | Web | Erweiterungen | Chrome-Status | Absicht |
|---|---|---|---|---|
| GitHub | Ansicht | Absicht zum Experimentieren |
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
Sie können vorhandenen Text verfeinern, indem Sie ihn verlängern oder verkürzen oder den Ton ändern. Beispiele:
- Eine kurze E-Mail so umformulieren, dass sie höflicher und formeller klingt.
- Änderungen an Kundenrezensionen vorschlagen, damit andere Kunden das Feedback besser verstehen oder toxische Inhalte entfernen können.
- Inhalte so formatieren, dass sie den Erwartungen bestimmter Zielgruppen entsprechen.
Ist Ihr Anwendungsfall nicht dabei? Nehmen Sie am Vorabprogramm teil und geben Sie uns Feedback.
Jetzt starten
Nehmen Sie am Ursprungstest für die Rewriter API teil, der in Chrome 137 bis 148 läuft.
Hardwareanforderungen prüfen
Die folgenden Anforderungen gelten für Entwickler und Nutzer, die Funktionen mit diesen APIs in Chrome verwenden. Bei anderen Browsern können andere Betriebsanforderungen gelten.
Die Language Detector API und die Translator API funktionieren in Chrome auf dem Desktop. Auf Mobilgeräten funktionieren diese APIs nicht.
Die Prompt API, Summarizer API, Writer API, Rewriter API und Proofreader 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), Linux oder ChromeOS (ab Plattform 16389.0.0) auf Chromebook Plus-Geräten. Chrome für Android, iOS und ChromeOS auf Nicht-Chromebook Plus-Geräten wird von den APIs, die Gemini Nano verwenden, noch nicht unterstützt.
- Speicher: Mindestens 22 GB freier Speicherplatz auf dem Volume, das Ihr Chrome-Profil enthält.
- GPU oder CPU: Integrierte Modelle können mit GPU oder CPU ausgeführt werden.
- GPU: Mindestens 4 GB VRAM.
- CPU: Mindestens 16 GB RAM und mindestens 4 CPU-Kerne.
- Hinweis: Für die Prompt API mit Audioeingabe ist eine GPU erforderlich.
- Netzwerk: Unbegrenzte Daten oder eine nicht getaktete Verbindung.
Die genaue Größe von Gemini Nano kann variieren, da der Browser das Modell aktualisiert. Die aktuelle Größe finden Sie unter chrome://on-device-internals.
Für den Ursprungstest registrieren
Die Rewriter API ist in einem gemeinsamen Ursprungstest mit der Writer API verfügbar. So verwenden Sie diese APIs:
- Rufen Sie den Ursprungstest für die Rewriter API auf.
- Klicken Sie auf Registrieren und füllen Sie das Formular aus. Geben Sie im Feld „Web-Ursprung“
Ihren Ursprung oder
Ihre Erweiterungs-ID an:
chrome-extension://YOUR_EXTENSION_ID. - Klicken Sie zum Senden auf Registrieren.
- Kopieren Sie das bereitgestellte Token und fügen Sie es auf jeder teilnehmenden Webseite in Ihrem Ursprung ein oder fügen Sie es in das Manifest Ihrer Erweiterung ein.
- Verwenden Sie die Rewriter API.
Weitere Informationen zum Einstieg in Ursprungstests.
Unterstützung für localhost hinzufügen
Wenn Sie auf localhost auf die Rewriter API zugreifen möchten, verwenden Sie Chrome-Flags:
- Setzen Sie
chrome://flags/#optimization-guide-on-device-modelauf Aktiviert. - Setzen Sie die folgenden Flags auf Aktiviert oder Mehrsprachig aktiviert:
chrome://flags/#prompt-api-for-gemini-nano-multimodal-inputchrome://flags/#writer-api-for-gemini-nano
- Klicken Sie auf Neu starten oder starten Sie Chrome neu.
Rewriter API verwenden
Führen Sie zuerst eine 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 separat heruntergeladen, wenn eine Website eine integrierte KI-API verwendet. Wenn ein Nutzer bereits mit einer integrierten API interagiert hat, hat er das Modell bereits in seinen Browser heruntergeladen.
Rufen Sie die asynchrone
Rewriter.availability() Funktion auf, um zu prüfen, ob das Modell einsatzbereit ist.
Wenn die Antwort auf availability() downloadable war, beobachten Sie den Downloadfortschritt und informieren Sie den Nutzer, da der Download einige Zeit dauern kann.
const availability = await Rewriter.availability();
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. Sie verwendet ein optionales options-Objekt mit den folgenden Parametern:
tone: Schreibton kann sich auf den Stil, den Charakter oder die Haltung des Inhalts beziehen. Der Wert kann aufmore-formal,as-is(Standard) odermore-casualgesetzt werden.format: Die Ausgabeformatierung mit den zulässigen Wertenas-is(Standard),markdownundplain-text.length: Die Länge der Ausgabe mit den zulässigen Wertenshorter,as-is(Standard) undlonger.sharedContext: Wenn Sie mehrere Inhalte neu schreiben, kann ein gemeinsamer Kontext dem Modell helfen, Inhalte zu erstellen, die besser Ihren Erwartungen entsprechen.
Das folgende Beispiel zeigt, wie Sie ein rewriter-Objekt initiieren:
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);
});
}
Erwartete Sprachen zuweisen
Die Rewriter API unterstützt mehrere Sprachen. Legen Sie beim Erstellen Ihrer Sitzung die erwarteten Eingabe-, Ausgabe- und Kontextsprachen fest. So kann der Browser die Anfrage ablehnen, wenn er eine bestimmte Sprachkombination nicht unterstützt.
const rewriter = await Rewriter.create({
tone: "more-formal",
expectedInputLanguages: ["en", "ja", "es"],
expectedContextLanguages: ["en", "ja", "es"],
outputLanguage: "es",
sharedContext: "These are requests to rewrite messages to teachers in a
Spanish language program, by students who may speak Spanish, Japanese, or
English. Staff expect questions to be written in Spanish."
});
Neu schreiben starten
Es gibt zwei Möglichkeiten, Inhalte aus dem Modell auszugeben: anfragebasierte Ausgabe und Streaming.
Anfragebasierte Ausgabe
Bei der anfragebasierten Ausgabe (oder „Nicht-Streaming“) wartet das Modell, bis die gesamte Eingabe generiert wurde, verarbeitet diese Eingabe als Ganzes und gibt dann die Ausgabe aus.
Rufen Sie die asynchrone Funktion rewrite() auf, um eine anfragebasierte Ausgabe zu erhalten. Sie müssen den ursprünglichen Text angeben, der neu geschrieben werden soll. Sie können optional einen context hinzufügen, um dem Modell Hintergrundinformationen zu geben. So kann das Modell Ihre Erwartungen an die Ausgabe möglicherweise besser erfüllen.
// Request-based
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 des Rewriters streamen
Beim Streaming werden Ergebnisse in Echtzeit bereitgestellt. Die Ausgabe wird kontinuierlich aktualisiert, während die Eingabe hinzugefügt und angepasst wird.
Wenn Sie einen Streaming-Rewriter verwenden möchten, rufen Sie die Funktion rewriteStreaming() auf und durchlaufen Sie die verfügbaren Textsegmente im Stream. Sie können optional einen context hinzufügen, um dem Modell Hintergrundinformationen zu geben. So kann das Modell Ihre Erwartungen an die Ausgabe möglicherweise 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 freigeben
Möglicherweise möchten Sie mit einem rewriter mehrere Inhalte generieren. In diesem Fall ist es sinnvoll, sharedContext hinzuzufügen. So können Sie beispielsweise Rezensenten 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 einem Feedback- oder Kommentar-Tool hinzufügen, um Autoren 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
Wenn Sie den Prozess des Umschreibens beenden möchten, brechen Sie den Controller ab und zerstören Sie den 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
Berechtigungsrichtlinie, iFrames und Web Worker
Standardmäßig ist die Rewriter API nur für Fenster der obersten Ebene und für ihre iFrames mit demselben Ursprung verfügbar. Der Zugriff auf die API kann mithilfe des Attributs der Berechtigungsrichtlinie an iFrames mit unterschiedlichen Ursprüngen delegiert werden:
allow=""
<!--
The hosting site at https://main.example.com can grant a cross-origin iframe
at https://cross-origin.example.com/ access to the Rewriter API by
setting the `allow="rewriter"` attribute.
-->
<iframe src="https://cross-origin.example.com/" allow="rewriter"></iframe>
Die Rewriter API ist in Web Workern nicht verfügbar. Das liegt daran, dass es komplex ist, für jeden Worker ein verantwortliches Dokument zu erstellen, um den Richtlinienstatus der Berechtigungen zu prüfen.
Feedback geben und sich beteiligen
Die Writer API und die Rewriter API werden aktiv diskutiert und können sich in Zukunft ändern. Wenn Sie diese API testen und Feedback haben, freuen wir uns darauf.
- Lesen Sie den Erklärer, stellen Sie Fragen und beteiligen Sie sich an der Diskussion.
- Im Chrome-Status können Sie die Implementierung der Rewriter API in Chrome sehen.
- Wenn Sie Feedback zur Implementierung von Chrome haben, erstellen Sie in Chromium einen Eintrag für das Problem.
- Nehmen Sie am Vorabprogramm teil, um neue APIs vorab zu testen und Zugriff auf unsere Mailingliste zu erhalten.
Entdecken Sie alle der integrierten KI-APIs, die Modelle verwenden, einschließlich Gemini Nano und anderer Expertenmodelle, im Browser.