Podsumowanie za pomocą wbudowanej AI

Data publikacji: 11 listopada 2024 r., ostatnia aktualizacja: 20 maja 2025 r.

Wyjaśnienie Sieć Rozszerzenia Stan Chrome Intencja
MDN Chrome 138 Chrome 138 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 to key-points (domyślnie), tldr, teaserheadline. Szczegółowe informacje znajdziesz w poniższej tabeli.
  • format: format podsumowania. Dozwolone wartości to markdown (domyślnie) i plain-text.
  • length: długość podsumowania. Dozwolone wartości to short, medium (domyślna) i long. Znaczenie tych długości różni się w zależności od type. 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.
krótki 1 zdanie
średni 3 zdania
Liczba długa 5 zdań
"teaser" Podsumowanie powinno koncentrować się na najciekawszych lub najbardziej intrygujących fragmentach danych wejściowych, aby zachęcić czytelnika do dalszego czytania.
krótki 1 zdanie
średni 3 zdania
Liczba długa 5 zdań
"key-points" Podsumowanie powinno zawierać najważniejsze punkty z danych wejściowych w formie listy punktowanej.
krótki 3 punkty
średni 5 punktów
Liczba długa 7 punktów
"headline" Podsumowanie powinno zawierać główną myśl danych wejściowych w jednym zdaniu w formacie nagłówka artykułu.
krótki 12 słów
średni 17 słów
Liczba długa 22 słowa

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 MozillaWebKit 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, YouTubeLinkedIn.

Jeśli chcesz przesłać opinię na temat implementacji Chrome, prześlij raport o błędzie lub prośbę o dodanie funkcji.