Saltar al contenido
</>
Volver
Pipeline editorial con revisión humanaEn pausa

Proyecto profesional

Dixta — AI Content Automation

  • Laravel
  • Python
  • Scrapling
  • FastAPI
  • DeepSeek

Problema

El seguimiento manual de fuentes ambientales y regulatorias dispersa el trabajo editorial entre búsqueda, selección, redacción y distribución.

Contexto

Plataforma profesional desarrollada en GreenSoft junto a otro desarrollador, independiente del asistente de WhatsApp. Un núcleo en Laravel orquesta el pipeline y un microservicio en Python se encarga de la extracción con Scrapling.

Objetivo

Convertir fuentes configuradas en borradores revisables, conservando control editorial humano y trazabilidad del pipeline.

Mi rol

  • Construí la primera versión de la plataforma y buena parte de su evolución: scraping, selección de candidatos, generación de borradores y publicación.
  • Endurecí el microservicio de extracción en Python: validación de artículos, deduplicación por URL y render con navegador cuando el sitio lo exige.
  • Implementé las validaciones del borrador y el flujo de revisión: nada se publica sin que una persona lo apruebe.
  • Migré el modelo generador de borradores a DeepSeek.

Arquitectura y decisiones

  • Laravel controla base de datos, colas, selección de candidatos, borradores y publicación; el scraper en FastAPI + Scrapling no guarda estado.
  • La URL normalizada y su hash son el contrato de deduplicación entre ambos servicios.
  • El modelo generador pasó por varias etapas: partió con modelos locales y hoy es DeepSeek. La integración con Bitrix24 y el servidor llama.cpp se eliminaron.
  • El modelo debe devolver un JSON con campos fijos; si el resultado no pasa las validaciones, el borrador cae a una plantilla determinística.
  • Publicar es una acción aparte de aprobar: un borrador pasa por revisión humana antes de salir.

Flujo de arquitectura

  1. 01Fuentes
  2. 02Python + Scrapling
  3. 03Laravel + colas + DeepSeek
  4. 04Revisión humana

Solución

  • Extracción diaria desde fuentes configuradas, con filtros de pertinencia y antigüedad.
  • Persistencia y deduplicación de artículos antes de gastar inferencia.
  • Generación de borradores con DeepSeek, validados y normalizados antes de mostrarse.
  • Panel para editar, regenerar, aprobar o rechazar cada borrador, y publicación en LinkedIn solo después de la aprobación.

Desafíos y trade-offs

  • Mantener confiable la extracción frente a fuentes heterogéneas sin acoplarla a la base de datos.
  • Evitar duplicados y contenido no pertinente antes de gastar inferencia o tiempo editorial.
  • Separar automatización de publicación: el modelo propone y una persona conserva la decisión final.

Aprendizajes

  • Los límites claros entre orquestador y scraper facilitan probar, reemplazar y desplegar cada parte.
  • La calidad del borrador depende tanto de selección y contexto como del modelo utilizado.

Resultado

Estuvo en producción y hoy está en pausa. Se omiten fuentes, credenciales y detalles internos sensibles.