resumir artículos de noticias con IA local

Cómo crear un script de Python para resumir noticias con IA local

¿Alguna vez has sentido que la infoxicación te supera al intentar seguir la actualidad tecnológica? En 2026, el volumen de información generado por medios digitales ha crecido un 40% respecto a años anteriores, haciendo casi imposible leer todo lo que nos interesa.

Depender de servicios en la nube como ChatGPT o Claude para procesar noticias no solo es costoso a largo plazo debido a las suscripciones, sino que plantea serios dilemas de privacidad. Hoy, gracias a los avances en la eficiencia de los modelos de lenguaje, podemos ejecutar potentes motores de IA directamente en nuestro hardware.

En esta guía, te enseñaré paso a paso cómo he configurado mi propio flujo de trabajo automatizado. Vamos a construir un script de Python que extrae el contenido de cualquier URL y genera un resumen ejecutivo utilizando un modelo LLM local, garantizando que tus datos nunca salgan de tu equipo.

Requisitos de hardware y entorno para 2026

Para procesar texto de manera fluida en local, ya no necesitamos una granja de servidores. Sin embargo, la eficiencia del script dependerá directamente de tu VRAM.

Tras probar diversas configuraciones en el laboratorio de AndroFan, hemos determinado que para resúmenes rápidos de artículos de hasta 3.000 palabras, estas son las especificaciones óptimas:

ComponenteMínimo RecomendadoRendimiento Ideal
GPU (NVIDIA)RTX 3060 (12GB)RTX 4070 Ti Super o superior
Apple SiliconChip M2 (16GB RAM)Chip M3 Max o M4 Pro
RAM Sistema16 GB DDR532 GB DDR5

Software Necesario

  1. Python 3.11+: Crucial por las mejoras en la gestión de memoria asíncrona.
  2. Ollama: La herramienta estándar en 2026 para desplegar LLMs locales de forma sencilla.
  3. Bibliotecas de Python: Necesitaremos requests, beautifulsoup4 y la librería oficial de ollama.

Instalación de Ollama y selección del modelo

El corazón de nuestro sistema es el modelo de lenguaje. No todos los modelos sirven para resumir; algunos son excelentes en código pero deficientes en comprensión lectora.

En mis pruebas, el modelo Llama 3.2 (3B) o el nuevo Mistral Nemo (12B) ofrecen el mejor equilibrio entre velocidad y coherencia para el idioma español.

  • Descarga Ollama desde su sitio oficial.
  • Abre una terminal y ejecuta: ollama pull llama3.2.
  • Verifica que el servicio esté activo en el puerto 11434.
💡 Consejo Pro: Si tienes poca VRAM, usa modelos cuantizados en formato Q4_K_M. Mantienen el 95% de la precisión reduciendo el uso de memoria a la mitad.

Desarrollo del script: Extracción y Procesamiento

El script se divide en dos fases: el ‘scraping’ del contenido limpio de la web y el envío de ese texto al modelo local.

Paso 1: Instalación de dependencias

Ejecuta en tu terminal:
pip install ollama beautifulsoup4 requests lxml

Paso 2: El código fuente

Aquí tienes la estructura profesional que utilizo. Este script ignora los anuncios y menús laterales, centrándose solo en el cuerpo del artículo:

import requests
from bs4 import BeautifulSoup
import ollama

def extraer_texto(url):
    r = requests.get(url, headers={'User-Agent': 'Mozilla/5.0'})
    soup = BeautifulSoup(r.text, 'lxml')
    # Eliminamos scripts y estilos
    for s in soup(['script', 'style', 'nav', 'footer']):
        s.decompose()
    return soup.get_text(separator=' ', strip=True)

def resumir_con_ia(texto):
    response = ollama.generate(
        model='llama3.2',
        prompt=f"Resume de forma profesional y técnica el siguiente artículo: {texto[:8000]}"
    )
    return response['response']
⚠️ Importante: El límite de contexto es vital. Modelos como Llama 3.2 soportan hasta 128k tokens, pero procesar textos extremadamente largos en local puede saturar tu GPU si no gestionas bien los fragmentos (chunking).

Optimización del Prompt para resúmenes técnicos

Un error común es pedirle a la IA simplemente «resume esto». En un entorno profesional como AndroFan, buscamos estructura.

Para obtener resultados de alta calidad en 2026, te recomiendo usar un system prompt estructurado. Modifica la llamada a la IA con estas instrucciones:

  • Formato: Pide siempre una lista de puntos clave (bullet points).
  • Rol: Define que la IA actúe como un «Analista Senior de Tecnología».
  • Exclusiones: Indica que no incluya frases de relleno como «Aquí tienes el resumen».

Ventajas y Desventajas

✅ Ventajas

  • Privacidad 100%: Tus lecturas no entrenan modelos comerciales.
  • Sin costes por token o suscripciones mensuales.
  • Funciona totalmente offline una vez descargado el modelo.
  • Personalización total del tono y estilo del resumen.

❌ Desventajas

  • Requiere una inversión inicial en hardware (GPU).
  • El procesamiento es más lento que en nubes como GPT-4o.
  • Consumo eléctrico elevado durante la inferencia intensiva.

Preguntas Frecuentes

¿Puedo resumir PDFs con este mismo script?

Sí, solo necesitas sustituir la librería requests/bs4 por PyMuPDF para extraer el texto del archivo local antes de enviarlo a Ollama.

¿Qué modelo es mejor para español en 2026?

Actualmente, Mistral Nemo 12B destaca por su gramática natural en castellano, aunque requiere al menos 12GB de VRAM para funcionar con fluidez.

¿Es legal hacer scraping de noticias para resumirlas?

Para uso personal y privado es perfectamente legal. Si planeas publicar esos resúmenes automáticamente, debes consultar los términos de servicio del medio original.

Conclusión

  • La IA local ha alcanzado la madurez necesaria para tareas de procesamiento de texto complejas.
  • Ollama y Python forman el ecosistema más robusto y sencillo para automatizar estas tareas.
  • La clave del éxito reside en elegir el modelo adecuado según tu VRAM y optimizar el prompt.

Implementar este script no solo te ahorrará tiempo, sino que te dará un control total sobre cómo consumes información. ¿Te animas a probarlo o prefieres seguir confiando en la nube? Cuéntanos tu experiencia en los comentarios.

Comentarios

Aún no hay comentarios. ¿Por qué no comienzas el debate?

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *