Podsumowanie za pomocą wbudowanej AI

Thomas Steiner
Thomas Steiner

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, wypunktowane listy 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.

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ą w procesie tworzenia aplikacji oraz w przypadku użytkowników, którzy korzystają z Twoich funkcji.

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, którego dozwolone wartości to key-points (domyślnie), tldr, teaser i headline. 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 żądanego typu danych 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 odnoszą się do maksymalnej możliwej wartości, 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 jasny 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, 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ą aktualizowane na bieżąco 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.

Standaryzacja

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 witryny 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.