Data publikacji: 11 listopada 2024 r., ostatnia aktualizacja: 20 maja 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 zajawki 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ę różnić, ponieważ przeglądarka aktualizuje model. 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()
. Zwraca obietnicę z tymi wartościami:
"unavailable"
oznacza, że implementacja nie obsługuje żądanych opcji."downloadable"
oznacza, że implementacja obsługuje żądane opcje, ale najpierw przeglądarka musi pobrać coś, np. model (w przypadku Chrome jest to Gemini Nano) lub dostrajanie modelu."downloading"
oznacza, że implementacja obsługuje żądane opcje, ale musi zakończyć trwające pobieranie, zanim będzie można kontynuować."available"
oznacza, że implementacja obsługuje żądane opcje i podsumowujący może kontynuować.
Aby wywołać pobieranie modelu i utworzyć narzędzie do podsumowywania, wywołaj funkcję asynchroniczną
Summarizer.create()
. Jeśli odpowiedź na availability()
to downloadable
lub downloading
, warto nasłuchiwać postępu pobierania. W ten sposób możesz poinformować użytkownika, że pobieranie może zająć trochę czasu, zanim będzie można wygenerować podsumowanie.
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 zawierać główną myśl danych wejściowych w jednym zdaniu w formacie nagłówka artykułu. |
|
Poniższy przykład pokazuje, jak zainicjować narzędzie do podsumowywania.
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;
}
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 zapewnić zgodność z różnymi przeglądarkami.
Nasza propozycja interfejsu API zyskała poparcie społeczności i została przekazana do grupy społecznościowej W3C Web Incubator w celu dalszego omówienia. Zespół Chrome poprosił o opinię grupę W3C Technical Architecture Group oraz Mozilla i WebKit o ich stanowiska w sprawie standardów.
Weź udział w pracach nad standardami, dołączając do Web Incubator Community Group.
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.