Data publikacji: 11 listopada 2024 r., ostatnia aktualizacja: 30 lipca 2025 r.
Browser Support
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 wartościowe 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.
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); Linux lub ChromeOS (od platformy 16389.0.0) na urządzeniach [Chromebook Plus](https://www.google.com/chromebook/chromebookplus/). Interfejsy API, które korzystają z Gemini Nano, nie są jeszcze obsługiwane w Chrome na Androida, iOS i ChromeOS na urządzeniach innych niż Chromebook Plus.
- 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);
}
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 Web Workers. Wynika to ze złożoności tworzenia odpowiedniego dokumentu dla każdego pracownika w celu sprawdzenia stanu zasad dotyczących uprawnień.
Podziel się opinią
Chcemy zobaczyć, co tworzysz za pomocą interfejsu Summarizer API. Podziel się z nami swoimi witrynami 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.