Data publikacji: 11 listopada 2024 r.
Objaśnienie | Sieć | Rozszerzenia | Stan Chrome | Intencja |
---|---|---|---|---|
GitHub | Wyświetl | Zamierzasz przeprowadzić eksperyment |
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, 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
Dołącz do testowania origin interfejsu Summarizer API, które odbywa się w wersjach Chrome od 131 do 136. Testy wersji źródłowej umożliwiają oferowanie funkcji prawdziwym użytkownikom w źródle w Chrome.
Rejestracja w wersji próbnej origin
Aby zacząć korzystać z interfejsu Summarizer API, wykonaj te czynności:
- 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 je przesłać, kliknij Zarejestruj.
- Skopiuj podany token i dodaj go do każdej strony internetowej w źródłowej witrynie lub pliku rozszerzenia, w 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 funkcji pochodzenia.
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 w przypadku localhost
Aby uzyskać dostęp do interfejsu Summarizer API w localhost
podczas wersji próbnej origin, musisz mieć Chrome Canary. Następnie wykonaj te czynności:
- 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.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 zanim będzie można cokolwiek zrobić, musi pobrać coś (np. model uczenia maszynowego lub dostosowanie)."downloading"
oznacza, że implementacja obsługuje żądane opcje, ale musi najpierw dokończyć bieżące pobieranie."available"
oznacza, że implementacja obsługuje żądane opcje bez konieczności pobierania nowych plików.
Aby wywołać pobieranie modelu i utworzyć funkcję podsumowującą, wywołaj asynchroniczną funkcję ai.summarizer.create()
. Jeśli odpowiedź na availability()
to downloadable
lub downloading
, najlepiej poczekać na zakończenie pobierania. Dzięki temu możesz poinformować użytkownika, jeśli pobieranie trwa.
const summarizer = await ai.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ś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 to jedno zdanie. Długie podsumowanie kluczowych informacji składa się z 7 punktów, a długie podsumowanie to jeden akapit.
Poniższy przykład pokazuje, jak zainicjować funkcję do podsumowywania.
const options = {
sharedContext: 'This is a scientific article',
type: 'key-points',
format: 'markdown',
length: 'medium',
};
const availability = await self.ai.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 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(`Downloaded ${e.loaded * 100}%`);
});
await summarizer.ready;
}
Uruchamianie podsumowania
Istnieją 2 sposoby uruchomienia narzędzia do podsumowywania: z przesyłaniem strumieniowym i bez niego.
Podsumowanie bez strumieniowania
W przypadku podsumowywania niestrumieniowego model przetwarza dane wejściowe jako całość, a potem 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 strumieniowania na platformie, w których segmenty są kolejnymi częściami 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.
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 Mozilla i WebKit o ich stanowisko w sprawie standardów.
Udział w badaniu i przesyłanie opinii
Zacznij testować interfejs Summarizer API, dołączając do testu wersji źródłowej i przesyłając opinię. Twoje opinie mogą mieć bezpośredni wpływ na sposób tworzenia i wdrażania przyszłych wersji tego interfejsu API oraz wszystkich wbudowanych interfejsów 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 tworzeniu standardów, dołącz do grupy społecznościowej Web Incubator Community Group.