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.
Zasady dotyczące uprawnień, elementy iframe i skrypty Web Worker
Domyślnie interfejs Summarizer API jest dostępny tylko w oknach najwyższego poziomu i w ramkach iframe z tej samej domeny. Dostęp do interfejsu API można delegować na elementy iframe z innych domen za pomocą atrybutu allow=""
zasad dotyczących uprawnień:
<!-- The hosting site at https://main.example.com can grant a cross-origin iframe at https://cross-origin.example.com/ access to the Summarizer API by setting the `allow="summarizer"` attribute. --> <iframe src="https://cross-origin.example.com/" allow="summarizer"></iframe>
Interfejs Summarizer API nie jest obecnie dostępny w przypadku Web Workers ze względu na złożoność procesu ustalania odpowiedniego dokumentu dla każdego pracownika w celu sprawdzenia stanu zasad dotyczących uprawnień.
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.