Data publikacji: 20 maja 2025 r.
Objaśnienie | Sieć | Rozszerzenia | Stan Chrome | Intencja |
---|---|---|---|---|
GitHub | Wyświetl | Zamierzasz przeprowadzić eksperyment |
Interfejs Rewriter API pomaga poprawiać i restrukturyzować tekst. Ten interfejs API i interfejs Writer API są częścią oferty interfejsów API do pomocy przy pisaniu.
Te interfejsy API mogą Ci pomóc w ulepszaniu treści tworzonych przez użytkowników.
Przypadki użycia
Ulepszyć istniejący tekst, wydłużając go lub skracając albo 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;
- Formatowanie treści zgodnie z oczekiwaniami określonych odbiorców.
Brakuje Twojego przypadku użycia? Dołącz do programu wczesnego testowania, aby podzielić się opinią.
Rozpocznij
Dołącz do testów origin interfejsu Rewriter API, które są prowadzone w wersjach Chrome 137–142.
Wymagania sprzętowe
Interfejsy Language Detector i Translator API działają na komputerach tylko w Chrome.
Interfejsy Prompt API, Summarizer API, Writer API i Rewriter API działają w Chrome, gdy są spełnione te warunki:
- System operacyjny: Windows 10 lub 11, macOS 13 lub nowszy (Ventura lub nowszy) lub Linux. Chrome na Androida, iOS i ChromeOS nie są jeszcze obsługiwane przez nasze interfejsy API obsługiwane przez Gemini Nano.
- Pamięć: co najmniej 22 GB na woluminie zawierającym profil Chrome.
- GPU więcej niż 4 GB pamięci VRAM.
- Sieć: nieograniczona transmisja danych lub nielimitowane połączenie.
Te wymagania obowiązują w procesie tworzenia aplikacji oraz w przypadku użytkowników, którzy korzystają z Twoich funkcji.
Rejestrowanie się w wersji próbnej origin
Interfejs Rewriter API jest dostępny w ramach wspólnego testowania origin interfejsu Writer API. Aby zacząć korzystać z tych interfejsów API:
- Potwierdź zasady Google dotyczące niedozwolonych zastosowań generatywnej AI.
- Przejdź do testowania origin interfejsu Rewriter API.
- Kliknij Zarejestruj się i wypełnij formularz. W polu źródła internetowego podaj źródło lub identyfikator rozszerzenia,
chrome-extension://YOUR_EXTENSION_ID
. - Aby je przesłać, kliknij Zarejestruj.
- Skopiuj podany token i dodaj go do każdej strony internetowej, która uczestniczy w programie, lub umieść go w pliku manifestu rozszerzenia.
- Zacznij używać interfejsu Rewriter API.
Dowiedz się więcej o rozpoczynaniu okresów próbnych z użyciem pochodzenia.
Dodawanie obsługi localhost
Aby uzyskać dostęp do interfejsów Writer i Rewriter w usłudze localhost w ramach wersji próbnej origin, musisz zaktualizować Chrome do najnowszej wersji. Następnie wykonaj poniższe czynności:
- Jedź do:
chrome://flags/#rewriter-api-for-gemini-nano
. - Kliknij Włączono.
- 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 przy pierwszym użyciu przez dowolną witrynę 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 możliwe wartości:
unavailable
: przeglądarka obsługuje interfejs Rewriter API, ale obecnie nie można z niego korzystać. Może to być spowodowane wieloma czynnikami, np. niewystarczającą ilością wolnego miejsca na dysku do pobrania modelu.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 musi najpierw pobrać model.downloading
: przeglądarka obsługuje interfejs Rewriter API i obecnie pobiera model.
Aby wywołać pobieranie modelu i uruchomić przekształcacz, wywołaj funkcję Rewriter.create()
. Jeśli odpowiedź na availability()
to downloadable
, sprawdź postęp pobierania i poinformuj 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 przekształcacza. Przyjmuje opcjonalny obiekt options
z tymi parametrami:
tone
: ton tekstu może odnosić się do stylu, charakteru lub postawy zawartych treści. Wartość może wynosićmore-formal
,as-is
(domyślnie) lubmore-casual
.format
: formatowanie danych wyjściowych, dozwolone wartości:as-is
(domyślna),markdown
iplain-text
.length
: długość danych wyjściowych. Dozwolone wartości toshorter
,as-is
(domyślna) ilonger
.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 wyprowadzać na 2 sposoby: bez strumieniowego przesyłania danych i z nim.
Dane wyjściowe niebędące strumieniem
W przypadku przekształcania niestrumieniowego model przetwarza dane wejściowe jako całość, a potem generuje dane wyjściowe.
Aby uzyskać wyjście niestrumieniowe, wywołaj asynchroniczną funkcję rewrite()
. Musisz podać początkowy tekst, który chcesz przerobić. Możesz dodać opcjonalny element context
, aby podać informacje o modelu, które pomogą 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."
});
Wyjście przekształcania strumienia
Strumieniowanie zapewnia wyniki w czasie rzeczywistym. Dane wyjściowe są aktualizowane w miarę dodawania i dostosowywania danych wejściowych.
Aby uzyskać przekształcacz strumieniowy, wywołaj funkcję rewriteStreaming()
i przejrzyj dostępne segmenty tekstu w strumieniach. Możesz dodać opcjonalny parametr context
, aby podać informacje o modelu, które mogą pomóc mu lepiej spełniać Twoje oczekiwania dotyczące danych wyjściowych.
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 tym przypadku warto dodać sharedContext
. Możesz na przykład pomóc recenzentom w dawaniu 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 przepisywania
Możesz używać tego samego narzędzia do poprawiania wielu treści. Może to być szczególnie przydatne, jeśli dodasz narzędzie do ulepszania tekstu do narzędzia do udzielania opinii lub komentowania, aby pomóc autorom w udostępnianiu przydatnych 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",
})
),
);
Zatrzymanie przerabiacza
Aby zakończyć proces przepisywania, 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
Zaangażowanie i przesyłanie opinii
Interfejsy Writer i Rewriter są obecnie przedmiotem dyskusji i mogą ulec zmianie w przyszłości. Jeśli wypróbujesz ten interfejs API i masz opinię na jego temat, chętnie ją poznamy.
- Przeczytaj wyjaśnienie, zadaj pytania i weź udział w dyskusji.
- Zapoznaj się z wdrożeniem w Chrome na stronie Stan Chrome.
- Dołącz do programu wczesnej wersji zapoznawczej, aby wcześniej zapoznać się z nowymi interfejsami API i zyskać dostęp do naszej listy mailingowej.
- Jeśli chcesz podzielić się opinią na temat implementacji w Chrome, zgłoś błąd w Chromium.
Poznaj wszystkie wbudowane interfejsy API AI, które w przeglądarce korzystają z modeli, w tym Gemini Nano i innych zaawansowanych modeli.