Data publikacji: 11 listopada 2024 r.
Wyobraź sobie, że możesz zaoferować użytkownikom możliwość przekształcania długich artykułów, złożonych dokumentów, a nawet burzliwych rozmów na czacie w zwięzłe i przenikliwe podsumowania.
Interfejsu Summarizer API można używać 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 najważniejszych 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 teasera książki na podstawie recenzji.
Dostępność
- Dołącz do testowania origin interfejsu Summarizer API, które odbywa się w wersjach Chrome od 131 do 136. Wersje próbne origin umożliwiają oferowanie funkcji prawdziwym użytkownikom w Chrome.
- Śledź postępy w wdrażaniu w Raporcie o stanie Chrome.
- Proponowana usługa API do podsumowywania jest częścią zestawu interfejsów API do pisania i jest otwarta na dyskusję.
- Dołącz do programu wczesnej wersji zapoznawczej, aby wcześniej zapoznać się z nowymi wbudowanymi interfejsami API AI i uzyskać dostęp do dyskusji na naszej liście mailingowej.
Rejestrowanie się w wersji próbnej origin
Aby zacząć korzystać z interfejsu Summarizer API:
- Potwierdź zasady Google dotyczące niedozwolonych zastosowań generatywnej AI.
- Przejdź do testowania origin interfejsu Summarizer API.
- Kliknij Zarejestruj się i wypełnij formularz.
- W polu Źródło internetowe podaj źródło lub identyfikator rozszerzenia,
chrome-extension://YOUR_EXTENSION_ID
.
- W polu Źródło internetowe podaj źródło lub identyfikator rozszerzenia,
- Aby przesłać dane, kliknij Zarejestruj.
- Skopiuj podany token i dodaj go do każdej strony internetowej w źródle lub pliku rozszerzenia, na której chcesz włączyć wersję próbną.
- Jeśli tworzysz rozszerzenie, postępuj zgodnie z instrukcjami dotyczącymi wersji próbnej origin.
- Zacznij używać interfejsu Summarizer API.
Dowiedz się więcej o tym, jak rozpocząć okres próbny.
Ograniczenia w okresie próbnym
Podczas testowania origin interfejsu Summarizer API obsługuje tylko streszczanie tekstów w języku angielskim, ponieważ jakość modelu została dokładnie przetestowana tylko w przypadku treści w tym języku. Zamierzamy znieść to ograniczenie, gdy przetestujemy dodatkowe języki pod kątem jakości i bezpieczeństwa, a interfejs API będzie dostępny dla wszystkich.
Dodawanie obsługi localhost
Aby uzyskać dostęp do interfejsu Summarizer API w localhost
podczas testowania origin, musisz mieć Chrome Canary. Następnie wykonaj te czynności:
- Otwórz Chrome Canary na jednej z tych platform: Windows, Mac lub Linux.
- Jedź do:
chrome://flags/#summarization-api-for-gemini-nano
. - Kliknij Włączono.
- Kliknij Uruchom ponownie lub uruchom ponownie Chrome.
Korzystanie z interfejsu Summarizer API
Najpierw uruchom wykrywanie funkcji, aby sprawdzić, czy przeglądarka obsługuje interfejs Summarizer API.
if ('ai' in self && 'summarizer' in self.ai) {
// The Summarizer API is supported.
}
Pobieranie modelu
Interfejs Summarizer API korzysta z potężnego modelu AI, który został przeszkolony do generowania wysokiej jakości streszczeń. Chociaż interfejs API jest wbudowany w Chrome, model jest pobierany osobno przy pierwszym użyciu interfejsu API przez witrynę.
Aby sprawdzić, czy model jest gotowy do użycia, wywołaj asynchroniczną funkcję ai.summarizer.capabilities()
. Zwraca obiekt AISummarizerCapabilities
z polem available
, które może przyjmować 3 możliwe wartości:
no
: bieżąca przeglądarka obsługuje interfejs Summarizer API, ale nie można go obecnie używać. Może to wynikać z różnych powodów, np. z niewystarczającej ilości wolnego miejsca na dysku do pobrania modelu.readily
: przeglądarka obsługuje interfejs Summarizer API i można go od razu używać.after-download
: przeglądarka obsługuje interfejs Summarizer API, ale musi najpierw pobrać model.
Aby wywołać pobieranie modelu i utworzyć funkcję podsumowującą, wywołaj asynchroniczną funkcję ai.summarizer.create()
. Jeśli odpowiedź na capabilities()
to
after-download
, zalecamy sprawdzenie postępu pobierania. Dzięki temu możesz poinformować użytkownika, jeśli pobieranie zajmuje dużo czasu.
const summarizer = await ai.summarizer.create({
monitor(m) {
m.addEventListener('downloadprogress', (e) => {
console.log(`Downloaded ${e.loaded} of ${e.total} bytes.`);
});
}
});
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 generowania podsumowania.type
: typ podsumowania, z dozwolonymi wartościamikey-points
(domyślna),tl;dr
,teaser
iheadline
.format
: format podsumowania z dozwolonymi wartościamimarkdown
(domyślnie) iplain-text
.length
: długość podsumowania, z dozwolonymi wartościamishort
,medium
(domyślna) ilong
. Znaczenie tych długości zależy odtype
. Na przykład w przypadku Chrome krótkie podsumowanie kluczowych informacji składa się z 3 punktów, a krótkie podsumowanie – z 1 zdania. Długie podsumowanie kluczowych informacji składa się z 7 punktów, a długie podsumowanie – z 1 akapitu.
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 available = (await self.ai.summarizer.capabilities()).available;
let summarizer;
if (available === 'no') {
// The Summarizer API isn't usable.
return;
}
if (available === 'readily') {
// The Summarizer API can be used immediately .
summarizer = await self.ai.summarizer.create(options);
} else {
// The Summarizer API can be used after the model is downloaded.
summarizer = await self.ai.summarizer.create(options);
summarizer.addEventListener('downloadprogress', (e) => {
console.log(e.loaded, e.total);
});
await summarizer.ready;
}
Uruchamianie podsumowania
Istnieją 2 sposoby uruchomienia narzędzia do generowania podsumowania: z przesyłaniem strumieniowym i bez niego.
Podsumowanie bez strumieniowania
W przypadku podsumowywania niestrumieniowego model przetwarza dane wejściowe jako całość, a następnie generuje dane wyjściowe.
Aby uzyskać podsumowanie niestrumieniowe, wywołaj asynchroniczną funkcję summarize()
. Pierwszym argumentem funkcji jest tekst, który chcesz podsumować. Drugi, opcjonalny argument to obiekt 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
Streszczony strumień danych zawiera wyniki w czasie rzeczywistym. Dane wyjściowe są aktualizowane na bieżąco w miarę dodawania i dostosowywania danych wejściowych.
Aby uzyskać podsumowanie strumieniowania, wywołaj funkcję summarizeStreaming()
. Następnie przejdź przez dostępne segmenty tekstu w strumieniach.
let result = '';
let previousChunk = '';
for await (const chunk of stream) {
const newChunk = chunk.startsWith(previousChunk)
? chunk.slice(previousChunk.length) : chunk;
console.log(newChunk);
result += newChunk;
previousChunk = chunk;
}
console.log(result);
Funkcja summarizeStreaming()
zwraca ReadableStream
, w którym segmenty odpowiedzi nakładają się na siebie. Oznacza to, że każda odpowiedź zawiera całe podsumowanie wygenerowane do tego momentu, a nie tylko następny segment, co nie jest pożądanym działaniem.
Chcemy dostosować się do innych interfejsów API przesyłania strumieniowego na platformie, w których segmenty to kolejne części jednego długiego strumienia. Aby osiągnąć zamierzone zachowanie, możesz wdrożyć te rozwiązania:
let result = '';
let previousLength = 0;
for await (const segment of stream) {
const newContent = segment.slice(previousLength);
console.log(newContent);
previousLength = segment.length;
result += newContent;
}
console.log(result);
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 W3C Web Incubator Community Group w celu dalszej dyskusji. Zespół Chrome poprosił W3C Technical Architecture Group o opinię, a także Mozilla i WebKit o ich stanowisko w sprawie standardów.
Udział w testach i przesyłanie opinii
Zacznij testować interfejs Summarizer API, dołączając do testu wersji źródłowej i przesyłając opinię. Twoja opinia może mieć bezpośredni wpływ na to, jak tworzymy i wdrażamy przyszłe wersje tego interfejsu API oraz wszystkie wbudowane interfejsy API AI.
- Aby przekazać opinię na temat implementacji Chrome, prześlij raport o błędzie lub prośbę o dodanie funkcji.
- Porozmawiaj o projektowaniu interfejsu Summarizer API na GitHubie, komentując istniejący problem lub otwierając nowy.
- Aby wziąć udział w pracowaniu nad standardami, dołącz do grupy społecznościowej Web Incubator.