Fecha de publicación: 11 de noviembre de 2024; última actualización: 30 de julio de 2025
Browser Support
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();
// 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 permitidoskey-points(predeterminado),tldr,teaseryheadline. Consulta la siguiente tabla para obtener detalles.format: Es el formato del resumen, con los valores permitidosmarkdown(predeterminado) yplain-text.length: Es la longitud del resumen, con los valores permitidosshort(predeterminado),medium, ylong. Los significados de estas longitudes varían dependiendo de latypesolicitada. 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. |
|
||||||
"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. |
|
||||||
"key-points" |
El resumen debe extraer los puntos más importantes de la entrada, presentados como una lista con 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. |
|
||||||
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.