Опубликовано: 11 ноября 2024 г., Последнее обновление: 20 мая 2025 г.
Объяснитель | Веб | Расширения | Статус Хрома | Намерение |
---|---|---|---|---|
GitHub | Вид | Намерение отправить |
Вы можете предоставить своим пользователям возможность преобразовывать длинные статьи, сложные документы или даже оживленные беседы в краткие и содержательные резюме.
API Summarizer можно использовать для создания различных типов резюме разной длины и форматов, таких как предложения, абзацы, списки маркеров и т. д. Мы считаем, что этот API полезен в следующих сценариях:
- Обобщение основных моментов статьи или беседы в чате.
- Предложение названий и заголовков для статей.
- Создание краткого и информативного резюме длинного текста.
- Создание тизера для книги на основе рецензии.
Начать
API Summarizer доступен в стабильной версии Chrome 138 .
Запустите обнаружение функций, чтобы узнать, поддерживает ли браузер API Summarizer.
if ('Summarizer' in self) {
// The Summarizer API is supported.
}
Ознакомьтесь с требованиями к оборудованию.
API-интерфейсы определения языка и переводчика работают только на настольных компьютерах в Chrome.
Prompt API, Summarizer API, Writer API и Rewriter API работают в Chrome при соблюдении следующих условий:
- Операционная система : Windows 10 или 11; macOS 13+ (Ventura и выше); или Linux. Chrome для Android, iOS и ChromeOS пока не поддерживаются нашими API, поддерживаемыми Gemini Nano.
- Хранилище : не менее 22 ГБ на томе, содержащем ваш профиль Chrome.
- Графический процессор : строго более 4 ГБ видеопамяти.
- Сеть : Неограниченные данные или безлимитное соединение.
- Графический процессор : строго более 4 ГБ видеопамяти.
- Сеть : Неограниченные данные или безлимитное соединение.
Эти требования существуют для вас в процессе разработки и для ваших пользователей, которые работают с создаваемыми вами функциями.
Модель скачать
API Summarizer использует модель, обученную для создания высококачественных сводок. API встроен в Chrome, а Gemini Nano — это модель, загружаемая при первом использовании веб-сайтом этого API.
Чтобы определить, готова ли модель к использованию, вызовите асинхронную функцию Summarizer.availability()
. Она возвращает обещание со следующими значениями.
-
"unavailable"
означает, что реализация не поддерживает запрошенные параметры. -
"downloadable"
означает, что реализация поддерживает запрошенные параметры, но сначала браузер должен что-то загрузить, например, модель (в случае Chrome — Gemini Nano) или тонкую настройку модели. -
"downloading"
означает, что реализация поддерживает запрошенные параметры, но перед продолжением работы необходимо завершить текущую загрузку. -
"available"
означает, что реализация поддерживает запрошенные параметры и сумматор может продолжить работу.
Чтобы запустить загрузку модели и создать реферер, вызовите асинхронную функцию Summarizer.create()
. Если ответ на availability()
был downloadable
или downloading
, лучше всего прослушивать прогресс загрузки. Таким образом, вы можете проинформировать пользователя и указать, что загрузка может занять некоторое время, прежде чем может быть выполнено реферирование.
const summarizer = await Summarizer.create({
monitor(m) {
m.addEventListener('downloadprogress', (e) => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
}
});
API-функции
Функция create()
позволяет вам настроить новый объект summaryer в соответствии с вашими потребностями. Она принимает необязательный объект options
со следующими параметрами:
-
sharedContext
: Дополнительный общий контекст, который может помочь резюмирующему. -
type
: Тип резюмирования с допустимыми значениямиkey-points
(по умолчанию),tl;dr
,teaser
иheadline
. Подробности см. в следующей таблице. -
format
: Формат реферирования с допустимыми значениямиmarkdown
(по умолчанию) иplain-text
. -
length
: Длина реферирования, допустимые значенияshort
,medium
(по умолчанию) иlong
. Значения этих длин различаются в зависимости от запрошенногоtype
. Например, в реализации Chrome краткое резюме ключевых точек состоит из трех пунктов, а краткое резюме — из одного предложения.
В следующей таблице показаны различные типы сводок и их соответствующие длины. Длины представляют максимально возможное значение, так как иногда результаты могут быть короче.
Тип | Значение | Длина | ||||||
---|---|---|---|---|---|---|---|---|
"tl;dr" | Резюме должно быть кратким и по существу, обеспечивающим быстрый обзор введенной информации и подходящим для занятого читателя. |
| ||||||
"teaser" | Резюме должно быть сосредоточено на самых интересных или интригующих частях текста, чтобы побудить читателя прочитать больше. |
| ||||||
"key-points" | Резюме должно содержать наиболее важные моменты из входных данных, представленные в виде маркированного списка. |
| ||||||
"headline" | Резюме должно эффективно содержать основную мысль материала в одном предложении в формате заголовка статьи. |
|
В следующем примере показано, как инициализировать сумматор.
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;
}
Запустите сумматор
Существует два способа запуска сумматора: потоковый и пакетный (не потоковый).
Пакетное суммирование
При пакетном суммировании модель обрабатывает входные данные как единое целое, а затем выдает выходные данные.
Чтобы получить пакетное резюме, вызовите функцию summarize()
. Первый аргумент — это текст, который вы хотите резюмировать. Второй, необязательный аргумент — это объект с полем context
. Это поле позволяет вам добавлять фоновые детали, которые могут улучшить резюмирование.
const longText = document.querySelector('article').innerHTML;
const summary = await summarizer.summarize(longText, {
context: 'This article is intended for a tech-savvy audience.',
});
Потоковое резюмирование
Потоковое суммирование предлагает результаты в реальном времени. Выходные данные обновляются непрерывно по мере добавления и корректировки входных данных. Чтобы получить потоковое суммирование, вызовите summarizeStreaming()
вместо summarize()
.
const longText = document.querySelector('article').innerHTML;
const summary = await summarizer.summarizeStreaming(longText, {
context: 'This article is intended for junior developers.',
});
Демо
Вы можете попробовать API Summarizer в Summarizer API Playground .
Усилия по стандартизации
Мы работаем над стандартизацией API Summarizer, чтобы обеспечить кроссбраузерную совместимость.
Наше предложение API получило поддержку сообщества и было перемещено в группу сообщества W3C Web Incubator для дальнейшего обсуждения. Команда Chrome запросила обратную связь от группы технической архитектуры W3C и попросила Mozilla и WebKit высказать свои позиции по стандартам.
Примите участие в работе над стандартами, присоединившись к группе сообщества Web Incubator .
Поделиться отзывом
Мы хотим увидеть, что вы создаете с помощью Summarizer API. Поделитесь с нами своими веб-сайтами и веб-приложениями на X , YouTube и LinkedIn .
Чтобы оставить отзыв о реализации Chrome, отправьте отчет об ошибке или запрос на добавление функции .