Подведение итогов с помощью встроенного искусственного интеллекта

Опубликовано: 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" Резюме должно быть кратким и по существу, обеспечивающим быстрый обзор введенной информации и подходящим для занятого читателя.
короткий 1 предложение
середина 3 предложения
длинный 5 предложений
"teaser" Резюме должно быть сосредоточено на самых интересных или интригующих частях текста, чтобы побудить читателя прочитать больше.
короткий 1 предложение
середина 3 предложения
длинный 5 предложений
"key-points" Резюме должно содержать наиболее важные моменты из входных данных, представленные в виде маркированного списка.
короткий 3 пункта
середина 5 пунктов
длинный 7 пунктов
"headline" Резюме должно эффективно содержать основную мысль материала в одном предложении в формате заголовка статьи.
короткий 12 слов
середина 17 слов
длинный 22 слова

В следующем примере показано, как инициализировать сумматор.

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, отправьте отчет об ошибке или запрос на добавление функции .