Data publikacji: 11 listopada 2024 r., ostatnia aktualizacja: 30 lipca 2025 r.
Możesz zaoferować użytkownikom możliwość streszczania długich artykułów, złożonych dokumentów, a nawet rozmów na czacie w zwięzłe i przydatne podsumowania.
Interfejs Summarizer API umożliwia generowanie różnych typów podsumowań o różnej długości i w różnych formatach, np. zdań, akapitów, list wypunktowanych itp. Uważamy, że ten interfejs API jest przydatny w tych przypadkach:
- 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.
Uruchom wykrywanie funkcji, aby sprawdzić, czy przeglądarka obsługuje interfejs Summarizer API.
if ('Summarizer' in self) {
// The Summarizer API is supported.
}
Sprawdź wymagania sprzętowe
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, Rewriter API i Proofreader API działają w Chrome, gdy spełnione są te warunki:
- System operacyjny: Windows 10 lub 11; macOS 13+ (Ventura i nowsze); Linux; lub ChromeOS (od platformy 16389.0.0) na Chromebookach Plus. Chrome na Androida, iOS i ChromeOS na urządzeniach innych niż Chromebook Plus nie są jeszcze obsługiwane przez interfejsy API, które korzystają z Gemini Nano.
- Miejsce na dane: co najmniej 22 GB wolnego miejsca na dysku, na którym znajduje się profil Chrome.
- GPU lub CPU: wbudowane modele mogą działać z GPU lub CPU.
- GPU: ściśle więcej niż 4 GB pamięci VRAM.
- CPU: co najmniej 16 GB pamięci RAM i co najmniej 4 rdzenie CPU.
- Uwaga: interfejs Prompt API z wejściem audio wymaga GPU.
- Sieć: nieograniczona transmisja danych lub połączenie bez limitu danych. Połączenia Wi-Fi i Ethernet są domyślnie bez pomiaru, a połączenia komórkowe często są z pomiarem użycia danych.
Dokładny rozmiar Gemini Nano może się różnić w zależności od aktualizacji modelu przez przeglądarkę. Aby sprawdzić bieżący rozmiar, otwórz chrome://on-device-internals.
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, gdy witryna po raz pierwszy używa tego interfejsu.
Aby sprawdzić, czy model jest gotowy do użycia, wywołaj asynchroniczną
Summarizer.availability() funkcję.
Jeśli odpowiedź na availability() to downloadable, nasłuchuj postępu pobierania, aby informować użytkownika o jego postępie, ponieważ może to zająć trochę czasu.
const availability = await Summarizer.availability();
Aby uruchomić pobieranie modelu i utworzyć podsumowanie, 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 podsumowania zgodnie z Twoimi potrzebami. Przyjmuje ona opcjonalny obiekt options z tymi parametrami:
sharedContext: dodatkowy kontekst współdzielony, który może pomóc w podsumowaniu.type: typ podsumowania, z dozwolonymi wartościamikey-points(domyślnie),tldr,teaseriheadline. Szczegółowe informacje znajdziesz w poniższej tabeli.format: format podsumowania, z dozwolonymi wartościamimarkdown(domyślnie) iplain-text.length: długość podsumowania, z dozwolonymi wartościamishort(domyślnie),mediumilong. Znaczenie tych długości różni się w zależności od żądanegotype. Na przykład w implementacji Chrome krótkie podsumowanie najważniejszych punktów składa się z 3 punktów, a krótkie podsumowanie to 1 zdanie.preference: mechanizm, który umożliwia deweloperom wskazanie, czy priorytetem jest szybkie wykonanie czy kompleksowe możliwości.auto: przeglądarka równoważy szybkość wykonywania z możliwością podsumowania i może dynamicznie dostosowywać przetwarzanie wewnętrzne na podstawie środowiska, ograniczeń systemu lub kontekstu.speed: przeglądarka powinna priorytetowo traktować niskie opóźnienie i szybkie wykonanie. To podejście priorytetowo traktuje wydajność, co może ograniczyć możliwość podsumowania, co może skutkować mniej szczegółowym wyodrębnianiem lub prostszą syntezą tekstu źródłowego.capability: przeglądarka powinna priorytetowo traktować kompleksowość i spójność podsumowania oraz model, który oferuje większą elastyczność pod względem typów podsumowań i innych opcji konfigurowalnych. To podejście koncentruje się na dokładnym wychwytywaniu subtelnego kontekstu i tworzeniu wysoce dopracowanych podsumowań, co może skutkować większym opóźnieniem i wolniejszymi prędkościami wykonywania.
Po ustawieniu parametrów nie można ich zmienić. Jeśli chcesz wprowadzić zmiany w parametrach, utwórz nowy obiekt podsumowania.
W tabeli poniżej przedstawiamy różne typy podsumowań i ich długości. Długości reprezentują 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, zawierające szybki przegląd danych wejściowych, odpowiednie dla zapracowanego czytelnika. |
|
||||||
"teaser" |
Podsumowanie powinno koncentrować się na najciekawszych lub najbardziej intrygujących częściach danych wejściowych, aby zachęcić czytelnika do przeczytania więcej. |
|
||||||
"key-points" |
Podsumowanie powinno wyodrębniać najważniejsze punkty z danych wejściowych, przedstawiać je w postaci listy wypunktowanej. |
|
||||||
"headline" |
Podsumowanie powinno skutecznie zawierać główny punkt danych wejściowych w a pojedynczym zdaniu w formacie nagłówka artykułu. |
|
||||||
Możesz na przykład zainicjować podsumowanie, aby wyświetlać średniej długości najważniejsze 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);
}
Przypisz oczekiwane języki
Interfejs Summarizer API akceptuje języki "en", "ja", "es", "de" i "fr". Trwają prace nad obsługą dodatkowych języków.`"Podczas tworzenia sesji ustaw oczekiwane języki wejściowe, wyjściowe i kontekstowe. Dzięki temu przeglądarka może odrzucić żądanie, jeśli nie obsługuje określonej kombinacji języków.
const summarizer = await Summarizer.create({
type: 'key-points',
expectedInputLanguages: ['en', 'ja', 'es'],
outputLanguage: 'es',
expectedContextLanguages: ['en'],
sharedContext: 'These are requests to summarize articles from a multilanguage newspaper. The users expect a response in Spanish.',
});
Podsumowanie można uruchomić na 2 sposoby: strumieniowo i zbiorczo (dane wyjściowe na podstawie żądania).
Podsumowanie zbiorcze
W przypadku podsumowania zbiorczego model przetwarza dane wejściowe jako całość, a następnie generuje dane wyjściowe.
Aby uzyskać podsumowanie zbiorcze, wywołaj funkcję summarize(). Pierwszy argument to tekst, który chcesz streścić. Drugi, opcjonalny argument to obiekt z polem context. To pole umożliwia dodanie szczegółów, które mogą poprawić podsumowanie.
const longText = document.querySelector('article').innerHTML;
const summary = await summarizer.summarize(longText, {
context: 'This article is intended for a tech-savvy audience.',
});
Podsumowanie strumieniowe
Podsumowanie strumieniowe oferuje wyniki w czasie rzeczywistym.
Dane wyjściowe są stale aktualizowane w miarę dodawania i dostosowywania danych wejściowych. Aby uzyskać podsumowanie strumieniowe, wywołaj funkcję 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
Możesz wypróbować interfejs Summarizer API w narzędziu Summarizer API Playground.
Zasady dotyczące uprawnień, elementy iframe i Web Workers
Domyślnie interfejs Summarizer API jest dostępny tylko w oknach najwyższego poziomu i ich elementach iframe z tej samej domeny. Dostęp do interfejsu API można przekazać elementom iframe z innych domen
za pomocą atrybutu allow="" w zasadach 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 ustanowienia odpowiedzialnego dokumentu dla każdego pracownika, aby sprawdzić stan zgodności z zasadami dotyczącymi uprawnień.
Podziel się opinią
Chcemy zobaczyć, co tworzysz za pomocą interfejsu Summarizer API. Udostępnij nam swoje witryny i aplikacje internetowe na X, YouTube i LinkedIn.
Jeśli chcesz przesłać opinię o implementacji Chrome, zgłoś błąd lub prześlij prośbę o dodanie funkcji.