Rewriter API

Data publikacji: 20 maja 2025 r.

Wyjaśnienie Sieć Rozszerzenia Stan Chrome Intencja
GitHub Wersja próbna origin Wersja próbna origin Wersja próbna origin Wersja próbna origin Wyświetl Zamiar przeprowadzenia eksperymentu

Interfejs Rewriter API pomaga w poprawianiu i restrukturyzacji tekstu. Ten interfejs API i interfejs Writer API są częścią propozycji interfejsów API do pomocy w pisaniu.

Te interfejsy API mogą pomóc Ci ulepszyć treści tworzone przez użytkowników.

Przypadki użycia

Ulepsz istniejący tekst, wydłużając go, skracając lub zmieniając jego ton. Możesz na przykład:

  • Przeredaguj krótki e-mail, aby brzmiał bardziej uprzejmie i formalnie.
  • sugerować zmiany w opiniach klientów, aby pomóc innym klientom zrozumieć opinię lub usunąć toksyczne treści;
  • Formatuj treści tak, aby spełniały oczekiwania określonych odbiorców.

Nie widzisz swojego przypadku użycia? Dołącz do programu wcześniejszego dostępu, aby podzielić się swoją opinią.

Rozpocznij

Dołącz do testowania origin interfejsu Rewriter API, które będzie prowadzone w Chrome w wersjach od 137 do 142.

Sprawdzanie wymagań sprzętowych

Deweloperzy i użytkownicy, którzy korzystają z funkcji używających tych interfejsów API w Chrome, muszą spełniać te wymagania. Inne przeglądarki mogą mieć inne wymagania dotyczące działania.

Interfejsy Language Detector API i Translator API działają w Chrome na komputerze. Te interfejsy API nie działają na urządzeniach mobilnych. Interfejsy Prompt API, Summarizer API, Writer API i Rewriter API działają w Chrome, gdy spełnione są te warunki:

  • System operacyjny: Windows 10 lub 11, macOS 13 lub nowszy (Ventura i nowsze) lub Linux. Interfejsy API, które korzystają z Gemini Nano, nie są jeszcze obsługiwane w Chrome na Androida, iOS i ChromeOS.
  • Miejsce na dane: co najmniej 22 GB na woluminie zawierającym profil Chrome.
  • GPU: co najmniej 4 GB pamięci VRAM.
  • Sieć: nieograniczona transmisja danych lub połączenie bez limitu.

Dokładny rozmiar Gemini Nano może się nieznacznie różnić. Aby sprawdzić aktualny rozmiar, otwórz stronę chrome://on-device-internals i kliknij Stan modelu. Otwórz podaną ścieżkę do pliku, aby określić rozmiar modelu.

Rejestracja w okresie próbnym

Interfejs Rewriter API jest dostępny w ramach wspólnego testowania origin z interfejsem Writer API. Aby zacząć korzystać z tych interfejsów API:

  1. Potwierdź znajomość zasad Google dotyczących niedozwolonych zastosowań generatywnej AI.
  2. Otwórz testowanie origin interfejsu Rewriter API.
  3. Kliknij Zarejestruj się i wypełnij formularz. W polu Źródło internetowe podaj źródło lub identyfikator rozszerzenia, chrome-extension://YOUR_EXTENSION_ID.
  4. Aby przesłać zgłoszenie, kliknij Zarejestruj.
  5. Skopiuj podany token i dodaj go do każdej uczestniczącej w programie strony internetowej w swojej domenie lub umieść go w pliku manifestu rozszerzenia.
  6. Zacznij korzystać z interfejsu Rewriter API.

Dowiedz się więcej o tym, jak zacząć korzystać z okresów próbnych.

Dodawanie obsługi hosta lokalnego

Aby uzyskać dostęp do interfejsów API Writer i Rewriter na hoście lokalnym podczas wersji próbnej origin, musisz zaktualizować Chrome do najnowszej wersji. Następnie wykonaj poniższe czynności:

  1. Jedź do: chrome://flags/#rewriter-api-for-gemini-nano.
  2. Kliknij Włączono.
  3. Kliknij Uruchom ponownie lub uruchom ponownie Chrome.

Korzystanie z interfejsu Rewriter API

Najpierw uruchom wykrywanie funkcji, aby sprawdzić, czy przeglądarka obsługuje te interfejsy API.


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

Interfejs Rewriter API i wszystkie inne wbudowane interfejsy API AI są zintegrowane z przeglądarką. Gemini Nano jest pobierany osobno, gdy po raz pierwszy jakakolwiek witryna używa wbudowanego interfejsu AI API. W praktyce, jeśli użytkownik wszedł już w interakcję z wbudowanym interfejsem API, pobrał model do przeglądarki.

Aby sprawdzić, czy model jest gotowy do użycia, wywołaj asynchroniczną funkcję Rewriter.availability(). Zwraca ciąg znaków, który może przyjmować 4 wartości:

  • unavailable: przeglądarka obsługuje interfejs Rewriter API, ale w tej chwili nie można go używać. Może to wynikać z różnych przyczyn, np. z niewystarczającej ilości miejsca na dysku, aby pobrać model.
  • available: przeglądarka obsługuje interfejs Rewriter API i można go od razu używać.
  • downloadable: przeglądarka obsługuje interfejs Rewriter API, ale najpierw musi pobrać model.
  • downloading: przeglądarka obsługuje interfejs Rewriter API i obecnie pobiera model.

Aby wywołać pobieranie modelu i uruchomić narzędzie do przepisywania, wywołaj funkcję Rewriter.create(). Jeśli odpowiedź na pytanie availability() brzmiała downloadable, sprawdź postęp pobierania i poinformuj o nim użytkownika, ponieważ pobieranie może zająć trochę czasu.

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

Funkcje interfejsu API

Funkcja create() umożliwia skonfigurowanie nowego obiektu modułu do przepisywania. Przyjmuje opcjonalny obiekt options z tymi parametrami:

  • tone: Ton wypowiedzi może odnosić się do stylu, charakteru lub postawy treści. Wartość może być ustawiona na more-formal, as-is (domyślnie) lub more-casual.
  • format: formatowanie danych wyjściowych. Dozwolone wartości to as-is (domyślna), markdownplain-text.
  • length: długość wygenerowanego tekstu. Dozwolone wartości to shorter, as-is (domyślna) i longer.
  • sharedContext: Podczas przepisywania wielu treści wspólny kontekst może pomóc modelowi w tworzeniu treści lepiej dopasowanych do Twoich oczekiwań.

Poniższy przykład pokazuje, jak zainicjować obiekt rewriter:

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

Rozpocznij przepisywanie

Treści z modelu można wyświetlać na 2 sposoby: bez przesyłania strumieniowego i z przesyłaniem strumieniowym.

Dane wyjściowe inne niż strumieniowe

W przypadku przepisywania bez przesyłania strumieniowego model przetwarza dane wejściowe w całości, a następnie generuje dane wyjściowe.

Aby uzyskać dane wyjściowe bez przesyłania strumieniowego, wywołaj asynchroniczną funkcję rewrite(). Musisz podać tekst początkowy, który chcesz zmienić. Możesz dodać opcjonalny parametr context, aby przekazać modelowi informacje o kontekście, co może pomóc mu lepiej spełniać Twoje oczekiwania dotyczące danych wyjściowych.

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

Dane wyjściowe przepisywania strumienia

Strumieniowanie zapewnia wyniki w czasie rzeczywistym. Dane wyjściowe są aktualizowane na bieżąco w miarę dodawania i dostosowywania danych wejściowych.

Aby uzyskać narzędzie do przepisywania strumieniowego, wywołaj funkcję rewriteStreaming() i przejdź przez dostępne segmenty tekstu w strumieniu. Możesz dodać opcjonalny context, aby podać modelowi informacje o kontekście, co może pomóc mu lepiej spełnić Twoje oczekiwania dotyczące wyniku.

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

Udostępnianie kontekstu wielu zadań

Możesz użyć rewriter, aby wygenerować wiele treści. W takim przypadku warto dodać sharedContext. Możesz na przykład pomóc recenzentom w przekazywaniu lepszych opinii w komentarzach.

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

Ponowne używanie narzędzia do zmiany stylu

Możesz używać tego samego narzędzia do zmiany treści do edytowania wielu treści. Może to być szczególnie przydatne w przypadku dodania narzędzia do zmiany stylu do narzędzia do przesyłania opinii lub komentowania, aby pomóc autorom w przekazywaniu przydatnych i konstruktywnych opinii.

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

Zatrzymaj narzędzie do przepisywania

Aby zakończyć proces ponownego zapisu, przerwij działanie kontrolera i zniszcz 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();

Prezentacja

Angażowanie się i przesyłanie opinii

Interfejsy API Writer i Rewriter są obecnie omawiane i w przyszłości mogą ulec zmianie. Jeśli wypróbujesz ten interfejs API i chcesz podzielić się opinią, chętnie ją poznamy.

Odkryj wszystkie wbudowane interfejsy API AI, które korzystają z modeli, w tym Gemini Nano i innych modeli eksperckich, w przeglądarce.