Resume contenido con la IA integrada

Fecha de publicación: 11 de noviembre de 2024; última actualización: 30 de julio de 2025

Browser Support

  • Chrome: 138.
  • Edge: behind a flag.
  • Firefox: not supported.
  • Safari: not supported.

Puedes ofrecer a tus usuarios la capacidad de destilar artículos extensos, documentos complejos o incluso conversaciones de chat animadas en resúmenes concisos y reveladores.

La API de Summarizer se puede usar para generar diferentes tipos de resúmenes en varias longitudes y formatos, como oraciones, párrafos, listas con viñetas, y mucho más. Creemos que esta API es útil en las siguientes situaciones:

  • Resumir los puntos clave de un artículo o una conversación de chat
  • Sugerir títulos y encabezados para artículos
  • Crear un resumen conciso e informativo de un texto extenso
  • Generar un avance de un libro basado en una reseña

Comenzar

La API de Summarizer está disponible a partir de la versión estable de Chrome 138.

Antes de usar esta API, acepta la Política de Uso Prohibido de IA Generativas de Google.

Ejecuta la detección de funciones para ver si el navegador admite la API de Summarizer.

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

Revisa los requisitos de hardware

Existen los siguientes requisitos para los desarrolladores y los usuarios que operan funciones con estas APIs en Chrome. Es posible que otros navegadores tengan requisitos operativos diferentes.

Las APIs de Language Detector y Translator funcionan en Chrome en computadoras de escritorio. Estas APIs no funcionan en dispositivos móviles.

Las APIs de Prompt, Summarizer, Writer, Rewriter y Proofreader funcionan en Chrome cuando se cumplen las siguientes condiciones:

  • Sistema operativo: Windows 10 o 11; macOS 13 o versiones posteriores (Ventura y versiones posteriores); Linux; o ChromeOS (a partir de la plataforma 16389.0.0 y versiones posteriores) en dispositivos Chromebook Plus. Las APIs que usan Gemini Nano aún no admiten Chrome para Android, iOS y ChromeOS en dispositivos que no sean Chromebook Plus.
  • Almacenamiento: Al menos 22 GB de espacio libre en el volumen que contiene tu perfil de Chrome.
  • GPU o CPU: Los modelos integrados se pueden ejecutar con GPU o CPU.
    • GPU: Estrictamente más de 4 GB de VRAM.
    • CPU: 16 GB de RAM o más y 4 núcleos de CPU o más.
  • Red: Datos ilimitados o una conexión de uso no medido.

El tamaño exacto de Gemini Nano puede variar a medida que el navegador actualiza el modelo. Para determinar el tamaño actual, visita chrome://on-device-internals.

Descarga de modelos

La API de Summarizer usa un modelo entrenado para generar resúmenes de alta calidad. La API está integrada en Chrome, y Gemini Nano es el modelo que se descarga la primera vez que un sitio web usa esta API.

Para determinar si el modelo está listo para usarse, llama a la función asíncrona Summarizer.availability(). Si la respuesta a availability() es downloadable, detecta el progreso de la descarga para informar al usuario sobre su progreso, ya que puede tardar un tiempo.

const availability = await Summarizer.availability();

Para activar la descarga del modelo y crear el resumidor, verifica la activación del usuario y, luego, llama a la función asíncrona Summarizer.create() function.

// Proceed to request batch or streaming summarization
const summarizer = await Summarizer.create({
  monitor(m) {
    m.addEventListener('downloadprogress', (e) => {
      console.log(`Downloaded ${e.loaded * 100}%`);
    });
  }
});

Funciones de la API

La función create() te permite configurar un nuevo objeto de resumidor según tus necesidades. Toma un objeto options opcional con los siguientes parámetros:

  • sharedContext: Es un contexto compartido adicional que puede ayudar al resumidor.
  • type: Es el tipo de resumen, con los valores permitidos key-points (predeterminado), tldr, teaser y headline. Consulta la siguiente tabla para obtener detalles.
  • format: Es el formato del resumen, con los valores permitidos markdown (predeterminado) y plain-text.
  • length: Es la longitud del resumen, con los valores permitidos short (predeterminado), medium, y long. Los significados de estas longitudes varían dependiendo de la type solicitada. Por ejemplo, en la implementación de Chrome, un resumen corto de puntos clave consta de tres viñetas, y un resumen corto es una oración.

Una vez configurados, los parámetros no se pueden cambiar. Crea un objeto de resumidor nuevo si necesitas realizar modificaciones en los parámetros.

En la siguiente tabla, se muestran los diferentes tipos de resúmenes y sus longitudes correspondientes. Las longitudes representan el valor máximo posible, ya que a veces, los resultados pueden ser más cortos.

Tipo Significado Longitud
"tldr" El resumen debe ser breve y directo, y proporcionar una descripción general rápida de la entrada, adecuada para un lector ocupado.
short 1 oración
media 3 oraciones
long 5 oraciones
"teaser" El resumen debe centrarse en las partes más interesantes o intrigantes de la entrada, diseñadas para atraer al lector a leer más.
short 1 oración
media 3 oraciones
long 5 oraciones
"key-points" El resumen debe extraer los puntos más importantes de la entrada, presentados como una lista con viñetas.
short 3 viñetas
media 5 viñetas
long 7 viñetas
"headline" El resumen debe contener de manera eficaz el punto principal de la entrada en una sola oración, en el formato de un titular de artículo.
short 12 palabras
media 17 palabras
long 22 palabras

Por ejemplo, puedes inicializar un resumidor para generar una longitud media de puntos clave en 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);
}

Asigna los idiomas esperados

La API de Summarizer admite varios idiomas. Configura los idiomas de entrada, salida, y contexto esperados cuando crees tu sesión. Esto permite que el navegador rechace la solicitud si no puede admitir una combinación de idiomas específica.

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.',
});

Existen dos formas de ejecutar el resumidor: transmisión y lote (salida basada en solicitudes ).

Resumen por lotes

Con el resumen por lotes, el modelo procesa la entrada en su totalidad y luego produce la salida.

Para obtener un resumen por lotes, llama a la summarize() función. El primer argumento es el texto que deseas resumir. El segundo argumento opcional es un objeto con un context campo. Este campo te permite agregar detalles de fondo que podrían mejorar el resumen.

const longText = document.querySelector('article').innerHTML;
const summary = await summarizer.summarize(longText, {
  context: 'This article is intended for a tech-savvy audience.',
});

Resumen de transmisión

El resumen de transmisión ofrece resultados en tiempo real. La salida se actualiza de forma continua a medida que se agrega y ajusta la entrada. Para obtener un resumen de transmisión, llama a summarizeStreaming() en lugar de 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);
}

Demostración

Puedes probar la API de Summarizer en el Playground de la API de Summarizer.

Política de permisos, iframes y Web Workers

De forma predeterminada, la API de Summarizer solo está disponible para las ventanas de nivel superior y sus iframes del mismo origen. Se puede delegar el acceso a la API a iframes de origen cruzado con el atributo allow="" de la Política de Permisos:

<!--
  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>

Por ahora, la API de Summarizer no está disponible en Web Workers. Esto se debe a la complejidad de establecer un documento responsable para cada trabajador, para verificar el estado de la Política de Permisos.

Enviar comentarios

Queremos ver lo que estás creando con la API de Summarizer. Comparte tus sitios web y aplicaciones web con nosotros en X, YouTube, y LinkedIn.

Para enviar comentarios sobre la implementación de Chrome, presenta un informe de errores o una solicitud de función.