Data publikacji: 11 listopada 2024 r., ostatnia aktualizacja: 30 lipca 2025 r.
Wyjaśnienie | Sieć | Rozszerzenia | Stan Chrome | Intencja |
---|---|---|---|---|
MDN | Wyświetl | Zamiar wysłania |
Możesz zaoferować użytkownikom możliwość streszczania długich artykułów, złożonych dokumentów, a nawet żywych rozmów na czacie w zwięzłe i trafne podsumowania.
Interfejs Summarizer API może służyć do generowania różnych typów podsumowań o różnej długości i w różnych formatach, np. zdań, akapitów, list punktowanych itp. Uważamy, że ten interfejs API jest przydatny w tych sytuacjach:
- podsumowywanie najważniejszych punktów artykułu lub rozmowy na czacie;
- sugerowanie tytułów i nagłówków artykułów;
- tworzenie zwięzłego i informacyjnego podsumowania długiego tekstu;
- Generowanie zapowiedzi książki na podstawie recenzji.
Rozpocznij
Interfejs Summarizer API jest dostępny w stabilnej wersji Chrome 138.
Przed użyciem tego interfejsu API zapoznaj się z zasadami Google dotyczącymi niedozwolonych zastosowań generatywnej AI i potwierdź, że je akceptujesz.
Uruchom wykrywanie funkcji, aby sprawdzić, czy przeglądarka obsługuje interfejs Summarizer API.
if ('Summarizer' in self) {
// The Summarizer API is supported.
}
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.
- Pamięć: co najmniej 22 GB wolnego miejsca 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ę zmieniać w miarę aktualizowania modelu przez przeglądarkę. Aby sprawdzić aktualny rozmiar, otwórz chrome://on-device-internals
i przejdź do sekcji Stan modelu. Otwórz podaną ścieżkę do pliku, aby określić rozmiar modelu.
Pobieranie modelu
Interfejs Summarizer API korzysta z modelu wytrenowanego do generowania wysokiej jakości podsumowań. Interfejs API jest wbudowany w Chrome, a Gemini Nano to model pobierany przy pierwszym użyciu tego interfejsu API przez witrynę.
Aby sprawdzić, czy model jest gotowy do użycia, wywołaj asynchroniczną funkcję Summarizer.availability()
.
Jeśli odpowiedź na availability()
to downloadable
, nasłuchuj postępu pobierania, aby informować użytkownika o jego przebiegu, ponieważ może to zająć trochę czasu.
const availability = await Summarizer.availability();
Aby wywołać pobieranie modelu i utworzyć narzędzie do podsumowywania, sprawdź aktywację użytkownika, a następnie wywołaj asynchroniczną funkcję Summarizer.create()
.
// Proceed to request batch or streaming summarization
const summarizer = await Summarizer.create({
monitor(m) {
m.addEventListener('downloadprogress', (e) => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
}
});
Funkcje interfejsu API
Funkcja create()
umożliwia skonfigurowanie nowego obiektu podsumowującego zgodnie z Twoimi potrzebami. Przyjmuje opcjonalny obiekt options
z tymi parametrami:
sharedContext
: dodatkowy kontekst udostępniony, który może pomóc w tworzeniu podsumowania.type
: typ podsumowania. Dozwolone wartości tokey-points
(domyślnie),tldr
,teaser
iheadline
. Szczegółowe informacje znajdziesz w poniższej tabeli.format
: format podsumowania. Dozwolone wartości tomarkdown
(domyślnie) iplain-text
.length
: długość podsumowania. Dozwolone wartości toshort
,medium
(domyślna) ilong
. Znaczenie tych długości różni się w zależności odtype
. Na przykład w implementacji Chrome krótkie podsumowanie najważniejszych informacji składa się z 3 punktów, a krótkie podsumowanie to 1 zdanie.
Po ustawieniu parametrów nie można ich zmienić. Utwórz nowy obiekt podsumowujący, jeśli chcesz wprowadzić zmiany w parametrach.
W tabeli poniżej przedstawiamy różne typy podsumowań i ich długość. Długości te oznaczają maksymalną możliwą wartość, ponieważ czasami wyniki mogą być krótsze.
Typ | Znaczenie | Długość | ||||||
---|---|---|---|---|---|---|---|---|
"tldr" |
Podsumowanie powinno być krótkie i zwięzłe, aby zapracowany czytelnik mógł szybko zapoznać się z informacjami. |
|
||||||
"teaser" |
Podsumowanie powinno koncentrować się na najciekawszych lub najbardziej intrygujących fragmentach danych wejściowych, aby zachęcić czytelnika do dalszego czytania. |
|
||||||
"key-points" |
Podsumowanie powinno zawierać najważniejsze punkty z danych wejściowych w formie listy punktowanej. |
|
||||||
"headline" |
Podsumowanie powinno skutecznie zawierać główną myśl danych wejściowych w jednym zdaniu w formacie nagłówka artykułu. |
|
Możesz na przykład zainicjować narzędzie do podsumowywania, aby generowało średniej długości kluczowe punkty w formacie Markdown.
const options = {
sharedContext: 'This is a scientific article',
type: 'key-points',
format: 'markdown',
length: 'medium',
monitor(m) {
m.addEventListener('downloadprogress', (e) => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
}
};
const availability = await Summarizer.availability();
if (availability === 'unavailable') {
// The Summarizer API isn't usable.
return;
}
// Check for user activation before creating the summarizer
if (navigator.userActivation.isActive) {
const summarizer = await Summarizer.create(options);
}
Uruchamianie podsumowywania
Podsumowywanie można uruchomić na 2 sposoby: strumieniowo i wsadowo (bez strumieniowania).
Podsumowywanie zbiorcze
W przypadku podsumowywania wsadowego model przetwarza dane wejściowe jako całość, a następnie generuje dane wyjściowe.
Aby uzyskać podsumowanie pakietu, wywołaj funkcję summarize()
. Pierwszym argumentem jest tekst, który chcesz streścić. Drugi, opcjonalny argument to obiekt z polem context
. W tym polu możesz dodać informacje o kontekście, które mogą ulepszyć podsumowanie.
const longText = document.querySelector('article').innerHTML;
const summary = await summarizer.summarize(longText, {
context: 'This article is intended for a tech-savvy audience.',
});
Podsumowanie transmisji
Strumieniowe podsumowywanie zapewnia wyniki w czasie rzeczywistym.
Dane wyjściowe są aktualizowane na bieżąco w miarę dodawania i dostosowywania danych wejściowych. Aby uzyskać podsumowanie transmisji strumieniowej, zadzwoń pod numer summarizeStreaming()
zamiast summarize()
.
const longText = document.querySelector('article').innerHTML;
const stream = summarizer.summarizeStreaming(longText, {
context: 'This article is intended for junior developers.',
});
for await (const chunk of stream) {
console.log(chunk);
}
Prezentacja
Interfejs Summarizer API możesz wypróbować na platformie Summarizer API Playground.
Działania na rzecz standaryzacji
Pracujemy nad ujednoliceniem interfejsu Summarizer API, aby był zgodny z różnymi przeglądarkami.
Interfejs Summarizer API i inne interfejsy Writing Assistance API zostały przyjęte przez grupę roboczą W3C WebML. Poprosiliśmy Mozilla i WebKit o zajęcie stanowiska w sprawie standardów.
Podziel się opinią
Chcemy zobaczyć, co tworzysz za pomocą interfejsu Summarizer API. Podziel się z nami swoimi stronami i aplikacjami internetowymi na X, YouTube i LinkedIn.
Jeśli chcesz przesłać opinię na temat implementacji Chrome, prześlij raport o błędzie lub prośbę o dodanie funkcji.