Writer API

Veröffentlicht am 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 Writer API können Sie neue Inhalte erstellen, die einer bestimmten Schreibaufgabe entsprechen. Die Writer API und die Rewriter API sind Teil des Vorschlags für Writing Assistance APIs.

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

Anwendungsfälle

Neue Inhalte auf Grundlage Ihrer ursprünglichen Idee und des optionalen Kontexts erstellen Das könnte für Folgendes verwendet werden:

  • Nutzer können damit beliebige Inhalte wie Rezensionen, Blogposts oder E‑Mails verfassen.
  • Nutzer dabei unterstützen, bessere Supportanfragen zu schreiben
  • Verfassen Sie eine Einleitung für eine Reihe von Arbeitsbeispielen, um bestimmte Fähigkeiten besser zu erfassen.

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

Jetzt starten

Nehmen Sie am Ursprungstest für die Writer 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.
  • Speicher: Mindestens 22 GB freier Speicherplatz 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 variieren, da das Modell vom Browser aktualisiert wird. 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 Writer API ist in einem gemeinsamen Ursprungstest mit der Rewriter API verfügbar. So beginnen Sie mit der Verwendung dieser APIs:

  1. Bestätigen Sie die Richtlinie zur unzulässigen Nutzung von generativer KI von Google.
  2. Rufen Sie die Writer 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 Writer- und Rewriter-APIs.

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/#writer-api-for-gemini-nano.
  2. Wählen Sie Aktiviert aus.
  3. Klicken Sie auf Neu starten oder starten Sie Chrome neu.

Writer API verwenden

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

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

Die Writer 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 Writer.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 Writer 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 Writer API und kann sofort verwendet werden.
  • downloadable: Der Browser unterstützt die Writer API, muss das Modell aber zuerst herunterladen.
  • downloading: Der Browser unterstützt die Writer API und lädt das Modell gerade herunter.

Rufen Sie die Funktion Writer.create() auf, um den Modelldownload auszulösen und den Writer 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 writer = await Writer.create({
  monitor(m) {
    m.addEventListener("downloadprogress", e => {
      console.log(`Downloaded ${e.loaded * 100}%`);
    });
  }
});

API-Funktionen

Mit der Funktion create() können Sie ein neues Writer-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 formal, neutral (Standard) oder casual festgelegt werden.
  • format: Die Ausgabeformatierung mit den zulässigen Werten markdown (Standard) und plain-text.
  • length: Die Länge der Ausgabe mit den zulässigen Werten short, medium (Standard) und long.
  • sharedContext: Wenn Sie mehrere Ausgaben schreiben, kann ein gemeinsamer Kontext dem Modell helfen, Inhalte zu erstellen, die besser auf Ihre Erwartungen abgestimmt sind.

Das folgende Beispiel zeigt, wie ein writer-Objekt initialisiert wird:

const options = {
  sharedContext: 'This is an email to acquaintances about an upcoming event.',
  tone: 'casual',
  format: 'plain-text',
  length: 'medium',
};

const available = await Writer.availability();
let writer;
if (available === 'unavailable') {
  // The Writer API isn't usable.
  return;
}
if (available === 'available') {
  // The Writer API can be used immediately .
  writer = await Writer.create(options);
} else {
  // The Writer can be used after the model is downloaded.
  const writer = await Writer.create({
    ...options,
    monitor(m) {
      m.addEventListener("downloadprogress", e => {
        console.log(`Downloaded ${e.loaded * 100}%`);
      });
    }
  });
}

Text schreiben

Es gibt zwei Möglichkeiten, Text vom Modell auszugeben: nicht streamend und streamend.

Nicht-Streaming-Ausgabe

Beim Schreiben 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 write() auf. Sie müssen einen Prompt für die gewünschten Inhalte eingeben. 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.

// Non-streaming
const writer = await Writer.create();
const result = await writer.write(
  "An inquiry to my bank about how to enable wire transfers on my account.", {
    context: "I'm a longstanding customer",
  },
);

Ausgabe streamen

Streaming bietet Ergebnisse in Echtzeit. Die Ausgabe wird kontinuierlich aktualisiert, wenn der Nutzer Eingaben hinzufügt und anpasst.

Rufen Sie die Funktion writeStreaming() auf, um einen Streaming-Writer zu erhalten, und iterieren Sie über 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.

// Streaming
const writer = await Writer.create();
const stream = writer.writeStreaming(
  "An inquiry to my bank about how to enable wire transfers on my account.", {
    context: "I'm a longstanding customer",
  },
);
for await (const chunk of stream) {
  composeTextbox.append(chunk);
}

Kontext für mehrere Aufgaben freigeben

Möglicherweise möchten Sie ein writer 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 writer = await Writer.create({
sharedContext: "This is for publishing on [popular website name], a business and employment-focused social media platform."
});

const stream = writer.writeStreaming(
  "Write a blog post about how I love all this work on gen AI at Google!" +
  "Mention that there's 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."}
);

for await (const chunk of stream) {
  composeTextbox.append(chunk);
}

Autor wiederverwenden

Sie können denselben Autor verwenden, um mehrere Inhalte zu erstellen.

// Reuse a writer
const writer = await Writer.create({ tone: "formal" });

const reviews = await Promise.all(
  Array.from(
    document.querySelectorAll("#reviews > .review"),
    (reviewEl) => writer.write(reviewEl.textContent)
  ),
);

Autor stoppen

Um den Schreibvorgang zu beenden, brechen Sie den Controller ab und zerstören Sie den Writer.

// Aborting a writer
const controller = new AbortController();
stopButton.onclick = () => controller.abort();

const writer = await Writer.create({ signal: controller.signal });
await writer.write(reviewEl.textContent, { signal: controller.signal });

// Destroying a writer
writer.destroy();

Demo

Feedback geben

Die Writer- und Rewriter API 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.