Опубликовано: 11 ноября 2024 г., Последнее обновление: 20 мая 2025 г.
Объяснитель | Интернет | Расширения | Статус Chrome | Намерение |
---|---|---|---|---|
МДН | Вид | Намерение отправить |
Вы можете предоставить своим пользователям возможность преобразовывать длинные статьи, сложные документы или даже оживленные беседы в краткие и содержательные резюме.
API Summarizer можно использовать для создания различных типов сводок различной длины и формата, таких как предложения, абзацы, маркированные списки и т. д. Мы считаем, что этот API будет полезен в следующих сценариях:
- Подведение итогов основным моментам статьи или беседы в чате.
- Предложение названий и заголовков для статей.
- Создание краткого и информативного резюме длинного текста.
- Создание тизера для книги на основе рецензии.
Начать
API Summarizer доступен в стабильной версии Chrome 138 .
Перед использованием этого API ознакомьтесь с Политикой Google в отношении запрещенного использования генеративного ИИ .
Запустите обнаружение функций, чтобы узнать, поддерживает ли браузер API Summarizer.
if ('Summarizer' in self) {
// The Summarizer API is supported.
}
Ознакомьтесь с требованиями к оборудованию
Для разработчиков и пользователей, использующих эти API в Chrome, действуют следующие требования. Требования к работе других браузеров могут отличаться.
API определения языка и переводчика работают в Chrome на десктопе. Эти API не работают на мобильных устройствах. API Prompt, API Summarizer, API Writer и API Rewriter работают в Chrome при соблюдении следующих условий:
- Операционная система : Windows 10 или 11; macOS 13+ (Ventura и выше); или Linux. Chrome для Android, iOS и ChromeOS пока не поддерживаются API, использующими Gemini Nano.
- Хранилище : не менее 22 ГБ на томе, содержащем ваш профиль Chrome.
- Видеокарта : строго более 4 ГБ видеопамяти.
- Сеть : Безлимитные данные или безлимитное соединение.
Точный размер Gemini Nano может незначительно отличаться. Чтобы узнать текущий размер, посетите chrome://on-device-internals
и перейдите в раздел «Статус модели» . Откройте указанный путь к файлу , чтобы определить размер модели.
Загрузка модели
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()
позволяет настроить новый объект-сумматор в соответствии с вашими потребностями. Она принимает необязательный объект options
со следующими параметрами:
-
sharedContext
: Дополнительный общий контекст, который может помочь составителю резюме. -
type
: тип реферирования с допустимыми значениямиkey-points
(по умолчанию),tldr
,teaser
иheadline
. Подробности см. в следующей таблице. -
format
: Формат реферирования с допустимыми значениямиmarkdown
(по умолчанию) иplain-text
. -
length
: длина реферата. Допустимые значения:short
(короткая),medium
(по умолчанию) иlong
. Значения этих значений варьируются в зависимости от запрошенногоtype
. Например, в реализации Chrome краткое изложение ключевых моментов состоит из трёх пунктов, а краткое изложение — из одного предложения.
После установки параметры изменить нельзя. Создайте новый объект-результат, если вам нужно изменить параметры.
В следующей таблице представлены различные типы сводок и их длина. Длина соответствует максимально возможному значению, поскольку иногда результаты могут быть короче.
Тип | Значение | Длина | ||||||
---|---|---|---|---|---|---|---|---|
"tldr" | Резюме должно быть кратким и по существу, обеспечивающим быстрый обзор введенной информации и подходящим для занятого читателя. |
| ||||||
"teaser" | Резюме должно быть сосредоточено на самых интересных и интригующих частях текста, чтобы побудить читателя прочитать больше. |
| ||||||
"key-points" | В резюме следует выделить наиболее важные моменты из представленной информации и представить их в виде маркированного списка. |
| ||||||
"headline" | Резюме должно эффективно содержать основную мысль статьи в одном предложении в формате заголовка. |
|
В следующем примере показано, как инициализировать сумматор.
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;
}
const summarizer = await Summarizer.create(options);
Запустить реферер
Существует два способа запуска сумматора: потоковый и пакетный (не потоковый).
Пакетное суммирование
При пакетном суммировании модель обрабатывает входные данные как единое целое, а затем выдает выходные данные.
Чтобы получить сводку по пакету, вызовите функцию 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 .
Стандартизация усилий
Мы работаем над стандартизацией API Summarizer, чтобы обеспечить совместимость со всеми браузерами.
Наше предложение по API получило поддержку сообщества и было передано в группу сообщества W3C Web Incubator для дальнейшего обсуждения. Команда Chrome запросила обратную связь от группы технической архитектуры W3C и обратилась к Mozilla и WebKit с просьбой высказать свою позицию по стандартам.
Примите участие в работе над стандартами, присоединившись к группе сообщества Web Incubator .
Поделиться отзывом
Мы хотим увидеть, что вы создаёте с помощью Summarizer API. Поделитесь с нами своими веб-сайтами и веб-приложениями на X , YouTube и LinkedIn .
Чтобы оставить отзыв о реализации Chrome, отправьте отчет об ошибке или запрос на новую функцию .