Podsumowanie za pomocą wbudowanej AI

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

Objaśnienie Sieć Rozszerzenia Stan Chrome Intencja
MDN Oznaczenia Chrome 138 beta Oznaczenia Chrome 138 beta Wyświetl Intencja dostawy

Możesz zaoferować użytkownikom możliwość przekształcania długich artykułów, złożonych dokumentów, a nawet żywych rozmów na czacie w zwięzłe i przydatne podsumowania.

Interfejs Summarizer API może służyć do generowania różnych typów streszczeń o zróżnicowanej długości i formatach, takich jak zdania, akapity, listy wypunktowane itp. Uważamy, że ten interfejs API jest przydatny w takich sytuacjach:

  • podsumowanie kluczowych informacji z artykułu lub rozmowy na czacie;
  • sugerowanie tytułów i nagłówków artykułów;
  • tworzenie zwięzłego i pełnego informacji podsumowania długiego tekstu.
  • Generowanie zapowiedzi książki na podstawie recenzji.

Rozpocznij

Interfejs Summarizer API jest dostępny od wersji Chromium 138 stabilnej.

Przed użyciem tego interfejsu API zapoznaj się z zasadami Google dotyczącymi niedozwolonych zastosowań generatywnej AI.

Wykonaj wykrywanie funkcji, aby sprawdzić, czy przeglądarka obsługuje interfejs Summarizer API.

if ('Summarizer' in self) {
  // The Summarizer API is supported.
}

Wymagania sprzętowe

Interfejsy Language Detector i Translator API działają na komputerach tylko w Chrome.

Interfejsy Prompt API, Summarizer API, Writer API i Rewriter API działają w Chrome, gdy są spełnione te warunki:

  • System operacyjny: Windows 10 lub 11, macOS 13 lub nowszy (Ventura lub nowszy) lub Linux. Chrome na Androida, iOS i ChromeOS nie są jeszcze obsługiwane przez nasze interfejsy API obsługiwane przez Gemini Nano.
  • Pamięć: co najmniej 22 GB na woluminie zawierającym profil Chrome.
  • GPU: więcej niż 4 GB pamięci VRAM.
  • Sieć: nieograniczona transmisja danych lub nielimitowane połączenie.

Te wymagania obowiązują Cię w trakcie procesu tworzenia aplikacji oraz Twoich użytkowników, którzy korzystają z funkcji, które tworzysz.

Pobieranie modelu

Interfejs Summarizer API korzysta z modelu wytrenowanego pod kątem generowania wysokiej jakości streszczeń. Interfejs API jest wbudowany w Chrome, a Gemini Nano to model pobierany po raz pierwszy, gdy witryna używa tego interfejsu API.

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 dostosować model.
  • "downloading" oznacza, że implementacja obsługuje żądane opcje, ale musi najpierw dokończyć bieżące pobieranie.
  • "available" oznacza, że implementacja obsługuje żądane opcje i sumator może kontynuować.

Aby wywołać pobieranie modelu i utworzyć funkcję podsumowującą, wywołaj asynchroniczną funkcję Summarizer.create(). Jeśli odpowiedź na availability() to downloadable lub downloading, zalecamy sprawdzenie postępu pobierania. W ten sposób możesz poinformować użytkownika i wskazywać, że pobieranie może zająć trochę czasu, zanim nastąpi 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 summarizer zgodnie z Twoimi potrzebami. Przyjmuje opcjonalny obiekt options z tymi parametrami:

  • sharedContext: dodatkowy udostępniony kontekst, który może pomóc narzędziu do streszczania.
  • type: typ podsumowania, z dozwolonymi wartościami key-points (domyślna), tldr, teaserheadline. Szczegółowe informacje znajdziesz w poniższej tabeli.
  • format: format podsumowania, z dozwolonymi wartościami markdown (domyślnie) i plain-text.
  • length: długość podsumowania, z dozwolonymi wartościami short, medium (domyślna) i long. Znaczenie tych długości zależy od type. Na przykład w przypadku przeglądarki Chrome krótkie podsumowanie najważniejszych informacji składa się z 3 punktów, a krótkie podsumowanie to jedno zdanie.

Po ustawieniu parametrów nie można ich zmienić. Jeśli chcesz zmodyfikować parametry, utwórz nowy obiekt summarizer.

Tabela poniżej przedstawia 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 właściwe, aby w sposób zwięzły i przystępny przedstawić informacje.
krótki 1 zdanie
medium 3 zdania
Liczba długa 5 zdań
"teaser" Podsumowanie powinno skupiać się na najciekawszych lub najbardziej intrygujących częściach danych wejściowych, aby zachęcić czytelnika do przeczytania więcej.
krótki 1 zdanie
medium 3 zdania
Liczba długa 5 zdań
"key-points" Podsumowanie powinno zawierać najważniejsze punkty z danych wejściowych, przedstawione w postaci listy wypunktowanej.
krótki 3 punkty
medium 5 punktów
Liczba długa 7 punktów
"headline" Podsumowanie powinno zawierać główną treść wpisu w jednym zdaniu w formacie nagłówka artykułu.
krótki 12 słów
medium 17 słów
Liczba długa 22 słowa

Poniższy przykład pokazuje, jak zainicjować funkcję podsumowującą.

const options = {
  sharedContext: 'This is a scientific article',
  type: 'key-points',
  format: 'markdown',
  length: 'medium',
};

const availability = await Summarizer.availability();
let summarizer;
if (availability === 'unavailable') {
  // The Summarizer API isn't usable.
  return;
}
if (availability === 'available') {
  // The Summarizer API can be used immediately .
  summarizer = await Summarizer.create(options);
} else {
  // The Summarizer API can be used after the model is downloaded.
  summarizer = await Summarizer.create(options);
  summarizer.addEventListener('downloadprogress', (e) => {
    console.log(`Downloaded ${e.loaded * 100}%`);
  });
  await summarizer.ready;
}

Uruchamianie podsumowania

Istnieją 2 sposoby uruchomienia narzędzia do podsumowywania: strumieniowo i wsadowo (bez przesyłania strumieniowego).

Streszczenia zbiorcze

W przypadku zbiorczego podsumowywania model przetwarza dane wejściowe jako całość, a następnie generuje dane wyjściowe.

Aby uzyskać podsumowanie partii, wywołaj funkcję summarize(). Pierwszy argument to tekst, który chcesz streścić. Drugi, opcjonalny argument jest obiektem z polem context. W tym polu możesz dodać szczegóły dotyczące tła, 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 transmisji

Strumieniowanie podsumowań zapewnia wyniki w czasie rzeczywistym. Dane wyjściowe są ciągle aktualizowane w miarę dodawania i dostosowywania danych wejściowych. Aby uzyskać podsumowanie strumieniowego przesyłania danych, wywołaj summarizeStreaming() zamiast summarize().

const longText = document.querySelector('article').innerHTML;
const summary = await summarizer.summarizeStreaming(longText, {
  context: 'This article is intended for junior developers.',
});

Prezentacja

Interfejs Summarizer API możesz wypróbować w Summarizer API Playground.

Standardizacja

Pracujemy nad ujednoliceniem interfejsu Summarizer API, aby zapewnić zgodność między przeglądarkami.

Nasza propozycja interfejsu API uzyskała wsparcie społeczności i została przeniesiona do grupy społecznościowej W3C Web Incubator w celu dalszych dyskusji. Zespół Chrome poprosił o opinię W3C Technical Architecture Group oraz MozillaWebKit o ich stanowisko w sprawie standardów.

Aby wziąć udział w tworzeniu standardów, dołącz do grupy społecznościowej Web Incubator Community Group.

Podziel się opinią

Chcemy zobaczyć, co tworzysz za pomocą interfejsu Summarizer API. Udostępniaj nam swoje strony internetowe i aplikacje internetowe na X, YouTubeLinkedIn.

Aby przekazać opinię na temat implementacji Chrome, prześlij raport o błędzie lub prośbę o dodanie funkcji.