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

Опубликовано: 11 ноября 2024 г., Последнее обновление: 1 мая 2025 г.

Объяснитель Веб Расширения Статус Хрома Намерение
GitHub За флагом Исходный суд За флагом Исходный суд Вид Намерение экспериментировать

Представьте, что вы могли бы предоставить своим пользователям возможность преобразовывать длинные статьи, сложные документы или даже оживленные беседы в краткие и содержательные резюме.

API Summarizer можно использовать для создания различных типов резюме разной длины и форматов, таких как предложения, абзацы, списки маркеров и т. д. Мы считаем, что этот API полезен в следующих сценариях:

  • Обобщение основных моментов статьи или беседы в чате.
  • Предложение названий и заголовков для статей.
  • Создание краткого и информативного резюме длинного текста.
  • Создание тизера для книги на основе рецензии.

Начать

Присоединяйтесь к пробной версии API Summarizer Origin , которая действует с Chrome 131 по Chrome 139. Пробные версии Origin позволяют вам предлагать эту функцию реальным пользователям вашего Origin в Chrome.

Ознакомьтесь с требованиями к оборудованию.

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 ГБ видеопамяти.
  • Сеть : Неограниченные данные или безлимитное соединение.

Эти требования существуют для вас в процессе разработки и для ваших пользователей, которые работают с создаваемыми вами функциями.

Зарегистрируйтесь для пробной версии Origin

Чтобы начать использовать API Summarizer, выполните следующие действия:

  1. Примите Политику Google в отношении запрещенного использования генеративного ИИ .
  2. Перейдите на страницу пробной версии API Summarizer .
  3. Нажмите «Зарегистрироваться» и заполните форму.
    • В поле «Веб-источник» укажите идентификатор источника или расширения, chrome-extension://YOUR_EXTENSION_ID .
  4. Для отправки нажмите «Зарегистрироваться» .
  5. Скопируйте предоставленный токен и добавьте его на каждую веб-страницу в вашем источнике или файле для вашего расширения, на котором вы хотите включить пробную версию.
  6. Начните использовать API Summarizer .

Узнайте больше о том, как начать работу с пробными версиями Origin .

Ограничения во время испытания оригинала

В ходе испытаний исходного кода API Summarizer поддерживает только резюмирование английских текстов, поскольку качество модели было тщательно протестировано только на английском контенте. Мы намерены снять это ограничение, как только протестируем дополнительные языки на качество и безопасность, а API станет широкодоступным.

Добавить поддержку на localhost

Для доступа к API Summarizer на localhost во время пробной версии Origin вам понадобится Chrome Canary . Затем выполните следующие действия:

  1. Перейдите по адресу chrome://flags/#summarization-api-for-gemini-nano .
  2. Выберите Включено .
  3. Нажмите «Перезапустить» или перезапустите Chrome.

Используйте API Summarizer

Сначала запустите обнаружение функций, чтобы проверить, поддерживает ли браузер API Summarizer.

if ('Summarizer' in self) {
  // The Summarizer API is supported.
}

Модель скачать

API Summarizer использует модель, обученную для создания высококачественных сводок. Хотя API встроено в Chrome, модель загружается отдельно при первом использовании 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() сумматора. Затем выполните итерацию по доступным сегментам текста в потоке.

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);

summarizeStreaming() возвращает ReadableStream , в котором сегменты ответа последовательно строятся друг на друге. Это означает, что каждый ответ содержит всю сводку, сгенерированную до этого момента, а не только следующий сегмент, что не является предполагаемым поведением.

Мы намерены согласовать с другими потоковыми API на платформе, где сегменты являются последовательными частями одного длинного потока. На данный момент, чтобы достичь предполагаемого поведения, вы можете реализовать следующее:

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);

Демо

Вы можете попробовать API Summarizer в Summarizer API Playground .

Усилия по стандартизации

Мы работаем над стандартизацией API Summarizer, чтобы обеспечить кроссбраузерную совместимость.

Наше предложение API получило поддержку сообщества и было перемещено в группу сообщества W3C Web Incubator для дальнейшего обсуждения. Команда Chrome запросила обратную связь от группы технической архитектуры W3C и попросила Mozilla и WebKit высказать свои позиции по стандартам.

Участвуйте и делитесь отзывами

Начните тестировать API Summarizer прямо сейчас, присоединившись к пробной версии origin и поделившись своими отзывами. Ваши комментарии могут напрямую повлиять на то, как мы создаем и реализуем будущие версии этого API и все встроенные API AI.

,

Опубликовано: 11 ноября 2024 г., Последнее обновление: 1 мая 2025 г.

Объяснитель Веб Расширения Статус Хрома Намерение
GitHub За флагом Исходный суд За флагом Исходный суд Вид Намерение экспериментировать

Представьте, что вы могли бы предоставить своим пользователям возможность преобразовывать длинные статьи, сложные документы или даже оживленные беседы в краткие и содержательные резюме.

API Summarizer можно использовать для создания различных типов резюме разной длины и форматов, таких как предложения, абзацы, списки маркеров и т. д. Мы считаем, что этот API полезен в следующих сценариях:

  • Обобщение основных моментов статьи или беседы в чате.
  • Предложение названий и заголовков для статей.
  • Создание краткого и информативного резюме длинного текста.
  • Создание тизера для книги на основе рецензии.

Начать

Присоединяйтесь к пробной версии API Summarizer Origin , которая действует с Chrome 131 по Chrome 139. Пробные версии Origin позволяют вам предлагать эту функцию реальным пользователям вашего Origin в Chrome.

Ознакомьтесь с требованиями к оборудованию.

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 ГБ видеопамяти.
  • Сеть : Неограниченные данные или безлимитное соединение.

Эти требования существуют для вас в процессе разработки и для ваших пользователей, которые работают с создаваемыми вами функциями.

Зарегистрируйтесь для пробной версии Origin

Чтобы начать использовать API Summarizer, выполните следующие действия:

  1. Примите Политику Google в отношении запрещенного использования генеративного ИИ .
  2. Перейдите на страницу пробной версии API Summarizer .
  3. Нажмите «Зарегистрироваться» и заполните форму.
    • В поле «Веб-источник» укажите идентификатор источника или расширения, chrome-extension://YOUR_EXTENSION_ID .
  4. Для отправки нажмите «Зарегистрироваться» .
  5. Скопируйте предоставленный токен и добавьте его на каждую веб-страницу в вашем источнике или файле для вашего расширения, на котором вы хотите включить пробную версию.
  6. Начните использовать API Summarizer .

Узнайте больше о том, как начать работу с пробными версиями Origin .

Ограничения во время испытания оригинала

В ходе испытаний исходного кода API Summarizer поддерживает только резюмирование английских текстов, поскольку качество модели было тщательно протестировано только на английском контенте. Мы намерены снять это ограничение, как только протестируем дополнительные языки на качество и безопасность, а API станет широкодоступным.

Добавить поддержку на localhost

Для доступа к API Summarizer на localhost во время пробной версии Origin вам понадобится Chrome Canary . Затем выполните следующие действия:

  1. Перейдите по адресу chrome://flags/#summarization-api-for-gemini-nano .
  2. Выберите Включено .
  3. Нажмите «Перезапустить» или перезапустите Chrome.

Используйте API Summarizer

Сначала запустите обнаружение функций, чтобы проверить, поддерживает ли браузер API Summarizer.

if ('Summarizer' in self) {
  // The Summarizer API is supported.
}

Модель скачать

API Summarizer использует модель, обученную для создания высококачественных сводок. Хотя API встроено в Chrome, модель загружается отдельно при первом использовании 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() сумматора. Затем выполните итерацию по доступным сегментам текста в потоке.

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);

summarizeStreaming() возвращает ReadableStream , в котором сегменты ответа последовательно строятся друг на друге. Это означает, что каждый ответ содержит всю сводку, сгенерированную до этого момента, а не только следующий сегмент, что не является предполагаемым поведением.

Мы намерены согласовать с другими потоковыми API на платформе, где сегменты являются последовательными частями одного длинного потока. На данный момент, чтобы достичь предполагаемого поведения, вы можете реализовать следующее:

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);

Демо

Вы можете попробовать API Summarizer в Summarizer API Playground .

Усилия по стандартизации

Мы работаем над стандартизацией API Summarizer, чтобы обеспечить кроссбраузерную совместимость.

Наше предложение API получило поддержку сообщества и было перемещено в группу сообщества W3C Web Incubator для дальнейшего обсуждения. Команда Chrome запросила обратную связь от группы технической архитектуры W3C и попросила Mozilla и WebKit высказать свои позиции по стандартам.

Участвуйте и делитесь отзывами

Начните тестировать API Summarizer прямо сейчас, присоединившись к пробной версии origin и поделившись своими отзывами. Ваши комментарии могут напрямую повлиять на то, как мы создаем и реализуем будущие версии этого API и все встроенные API AI.