Guru Meditation/trabajo/Universal Content Extractor
IA aplicada · ingeniería de datos

Universal Content Extractor

Un motor de extracción y agregación de noticias de múltiples fuentes: obtiene historias de periódicos en PDF, sitios web, RSS y redes sociales, para luego segmentarlas, agruparlas y clasificarlas en un feed personalizado, ejecutando cada paso del LLM de forma local.

on-premGemma autoalojadoPostgreSQL + MilvusPDF + visión

01Visión general

Universal Content Extractor ingiere noticias públicas de fuentes muy diferentes (periódicos y revistas en PDF, la web abierta, feeds RSS/Atom y plataformas de redes sociales) y convierte ese gran flujo en un feed coherente, deduplicado, multilingüe y personalizado. La decisión de diseño definitiva: cada parte de la comprensión de texto y el reconocimiento de imágenes en la página se ejecuta en un modelo Gemma autoalojado en el servidor, por lo que procesar noticias a escala no cuesta nada en tarifas comerciales de API de LLM.

02El problema que resuelve

Agregar noticias a escala implica dos problemas difíciles a la vez: extraer contenido de formatos que se resisten (un periódico en PDF es un diseño, no una lista de artículos; un sitio web es código de marcado detrás de defensas anti-bots), y luego darle sentido al resultado en diferentes idiomas sin que se convierta en un muro de duplicados. Y hacer todo eso con modelos LLM comerciales haría que el costo por artículo fuera prohibitivo. Ejecutar un modelo local elimina ese límite; y dado que el contenido son noticias públicas, el enfoque es puramente el costo, no la privacidad de los datos.

Resultado: noticias procesadas a escala con una factura de modelo por artículo efectivamente de cero.

03Qué construimos

Extracción de múltiples fuentes

  • Periódicos y revistas en PDF: segmentación por IA a través de un pipeline "Flash": extracción de texto con PyMuPDF, un segmentador incremental / por streaming, procesamiento de imágenes por página, procesamiento de páginas basadas en pliegos y detección de continuación de artículos en múltiples páginas para finlandés, sueco e inglés.
  • Web scraping: selectores CSS más Playwright para páginas renderizadas con JavaScript.
  • Feeds RSS / Atom.
  • Redes sociales: X / Twitter, Facebook, Instagram y LinkedIn.

Antidetección

El scraping a escala sobrevive gracias a las defensas poco glamorosas: retrasos aleatorios, rotación de agentes de usuario, rotación de proxies, retroceso exponencial y un interruptor de circuito para retroceder limpiamente cuando una fuente pone resistencia.

Enriquecimiento y el feed

Una vez que el contenido ingresa, se enriquece: agrupación semántica por similitud del coseno (umbral ~0.75), vinculación multilingüe para que la misma historia en diferentes idiomas se conecte, generación de sinopsis por IA y clasificación de eventos. Luego, un feed personalizado aplica una clasificación multialgorítmica, deduplicación y preferencias del usuario.

LLM local

Un modelo Gemma autoalojado realiza toda la comprensión de texto y el reconocimiento de imágenes en la página de forma local (tanto la lectura como la comprensión), lo cual hace que procesar este volumen sea económicamente viable.

04Almacenamiento e interfaces

Los registros residen en PostgreSQL; los embeddings residen en una base de datos vectorial Milvus para la búsqueda semántica y la agrupación. Por encima se sitúan tres interfaces: un panel de administración, una REST API y una interfaz de usuario (UI) para el feed de noticias.

05Tecnología

Gemma autoalojado PyMuPDF Playwright PostgreSQL BD vectorial Milvus Agrupación semántica ~0.75 REST API FI / SV / EN
FuentesPDF · web · RSS/Atom · redes sociales
LLMGemma autoalojado, totalmente local
AlmacenamientoPostgreSQL + vectores Milvus
InterfacesPanel de admin · REST API · UI de feed
DespliegueOn-prem

06Puntos destacados

  • Un pipeline PDF "Flash" que segmenta los diseños de periódicos y une artículos de múltiples páginas en FI / SV / EN.
  • Ingesta web, RSS y redes sociales detrás de una capa antidetección completa: rotación, retroceso exponencial y un interruptor de circuito.
  • Agrupación semántica y vinculación multilingüe para que una historia no se convierta en una docena de duplicados.
  • Un feed personalizado con clasificación multialgorítmica, deduplicación y preferencias del usuario.
  • Toda la comprensión de texto y el reconocimiento de imágenes en la página en un modelo Gemma local: cero tarifas comerciales de API de LLM a escala.
  • PostgreSQL para registros, Milvus para búsqueda vectorial.

Trabajo relacionado