Опубликовано: 11 ноября 2024 г., Последнее обновление: 30 июля 2025 г.
Browser Support
Вы можете предоставить пользователям возможность сокращать длинные статьи, сложные документы или даже оживленные чаты, превращая их в краткие и содержательные резюме.
API Summarizer позволяет создавать различные типы резюме разной длины и формата, например, в виде предложений, абзацев, маркированных списков и многого другого. Мы считаем, что этот API полезен в следующих сценариях:
- Подведение итогов статьи или разговора в чате.
- Предложение заголовков и подзаголовков для статей.
- Создание краткого и информативного резюме объёмного текста.
- Создание аннотации к книге на основе рецензии на неё.
Начать
API для создания кратких обзоров доступен начиная со стабильной версии Chrome 138 .
Прежде чем использовать этот API, ознакомьтесь с Политикой Google в отношении запрещенных способов использования генеративного ИИ .
Запустите проверку функциональности, чтобы узнать, поддерживает ли браузер API Summarizer.
if ('Summarizer' in self) {
// The Summarizer API is supported.
}
Ознакомьтесь с требованиями к оборудованию.
Для разработчиков и пользователей, использующих функции этих API в Chrome, существуют следующие требования. Для других браузеров могут действовать иные требования.
API для определения языка и перевода работают в Chrome на настольных компьютерах. На мобильных устройствах эти API не работают.
API-интерфейсы Prompt , Summarizer , Writer , Rewriter и Proofreader работают в Chrome при соблюдении следующих условий:
- Операционная система : Windows 10 или 11; macOS 13+ (Ventura и более поздние версии); Linux; или ChromeOS (начиная с платформы 16389.0.0 и далее) на устройствах Chromebook Plus . Chrome для Android, iOS и ChromeOS на устройствах, отличных от Chromebook Plus, пока не поддерживаются API, использующими Gemini Nano.
- Место на диске : не менее 22 ГБ свободного места на томе, где находится ваш профиль Chrome.
- GPU или CPU : Встроенные модели могут работать как с GPU, так и с CPU.
- Графический процессор : строго более 4 ГБ видеопамяти.
- Процессор : 16 ГБ оперативной памяти или больше и 4 ядра или больше.
- Сеть : Безлимитный трафик или безлимитное подключение.
Точный размер Gemini Nano может измениться после обновления браузером модели. Чтобы узнать текущий размер, посетите chrome://on-device-internals .
Загрузка модели
API Summarizer использует модель, обученную для генерации высококачественных резюме. API встроен в Chrome, и Gemini Nano — это модель, загружаемая при первом использовании этого API веб-сайтом.
Чтобы определить, готова ли модель к использованию, вызовите асинхронную функцию Summarizer.availability() . Если ответ на вызов availability() содержит downloadable , отслеживайте ход загрузки, чтобы информировать пользователя о её выполнении, поскольку это может занять некоторое время.
const availability = await Summarizer.availability();
Чтобы запустить загрузку модели и создать сумматор, проверьте активацию пользователя , а затем вызовите асинхронную функцию Summarizer.create() .
// Proceed to request batch or streaming summarization
const summarizer = await Summarizer.create({
monitor(m) {
m.addEventListener('downloadprogress', (e) => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
}
});
Функции API
Функция create() позволяет настроить новый объект сумматора в соответствии с вашими потребностями. Она принимает необязательный объект options со следующими параметрами:
-
sharedContext: Дополнительный общий контекст, который может помочь сумматору. -
type: Тип резюме с допустимыми значениямиkey-points(по умолчанию),tldr,teaserиheadline. Подробности см. в следующей таблице. -
format: Формат сводки с допустимыми значениямиmarkdown(по умолчанию) иplain-text. -
length: Длина резюме, допустимые значения:short(по умолчанию),mediumиlong. Значения этих длин различаются в зависимости от запрашиваемогоtype. Например, в реализации Chrome краткое резюме состоит из трех пунктов, а краткое резюме — из одного предложения.
После установки параметры изменить нельзя. Если вам необходимо внести изменения в параметры, создайте новый объект сумматора.
В таблице ниже представлены различные типы сводных данных и их соответствующая длина. Указанная длина представляет собой максимально возможное значение, поскольку иногда результаты могут быть короче.
| Тип | Значение | Длина | ||||||
|---|---|---|---|---|---|---|---|---|
"tldr" | Краткое изложение должно быть лаконичным и по существу, давая быстрый обзор представленной информации и подходящим для занятого читателя. |
| ||||||
"teaser" | В резюме следует сосредоточиться на наиболее интересных или интригующих моментах представленной информации, чтобы заинтересовать читателя и побудить его прочитать больше. |
| ||||||
"key-points" | В резюме следует выделить наиболее важные моменты из исходных данных и представить их в виде маркированного списка. |
| ||||||
"headline" | В резюме следует эффективно изложить основную мысль в одном предложении, в формате заголовка статьи. |
| ||||||
Например, вы можете инициализировать сумматор для вывода ключевых пунктов средней длины в формате Markdown.
const options = {
sharedContext: 'This is a scientific article',
type: 'key-points',
format: 'markdown',
length: 'medium',
monitor(m) {
m.addEventListener('downloadprogress', (e) => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
}
};
const availability = await Summarizer.availability();
if (availability === 'unavailable') {
// The Summarizer API isn't usable.
return;
}
// Check for user activation before creating the summarizer
if (navigator.userActivation.isActive) {
const summarizer = await Summarizer.create(options);
}
Назначьте ожидаемые языки
API Summarizer поддерживает несколько языков. При создании сессии укажите ожидаемые языки ввода, вывода и контекста. Это позволит браузеру отклонить запрос, если он не поддерживает определенную комбинацию языков.
const summarizer = await Summarizer.create({
type: 'key-points',
expectedInputLanguages: ['en', 'ja', 'es'],
outputLanguage: 'es',
expectedContextLanguages: ['en'],
sharedContext: 'These are requests to summarize articles from a multilanguage newspaper. The users expect a response in Spanish.',
});
Существует два способа запуска сумматора: потоковый и пакетный (вывод по запросу).
Пакетное суммирование
При пакетном суммировании модель обрабатывает входные данные целиком, а затем выдает выходные.
Для получения сводки по пакету вызовите функцию 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 stream = summarizer.summarizeStreaming(longText, {
context: 'This article is intended for junior developers.',
});
for await (const chunk of stream) {
console.log(chunk);
}
Демо
Вы можете протестировать API Summarizer в тестовой среде Summarizer API Playground .
Политика разрешений, iframe и веб-воркеры
По умолчанию API Summarizer доступен только окнам верхнего уровня и их iframe-элементам того же источника. Доступ к API можно делегировать iframe-элементам другого источника с помощью атрибута allow="" в политике разрешений:
<!--
The hosting site at https://main.example.com can grant a cross-origin iframe
at https://cross-origin.example.com/ access to the Summarizer API by
setting the `allow="summarizer"` attribute.
-->
<iframe src="https://cross-origin.example.com/" allow="summarizer"></iframe>
API сумматора пока недоступен в веб-воркерах. Это связано со сложностью создания ответственного документа для каждого воркера, необходимого для проверки статуса политики разрешений.
Поделитесь своим мнением
Мы хотим увидеть, что вы создаёте с помощью API Summarizer. Поделитесь с нами своими веб-сайтами и веб-приложениями на X , YouTube и LinkedIn .
Чтобы оставить отзыв о реализации Chrome, отправьте сообщение об ошибке или запрос на добавление новой функции .