MeigaSearch: Plataforma de Inteligencia Documental Privada (MVP)

El desarrollo de esta plataforma responde a una necesidad crítica en el sector empresarial: la conciliación entre la potencia de los modelos de lenguaje y la protección de la propiedad intelectual. El diseño se basa en una arquitectura de ingeniería que garantiza que ningún dato procesado abandone el perímetro de la organización. Fundamentos Estratégicos

Soberanía de Datos (Zero-Cloud Trust): En un entorno de cumplimiento normativo estricto, el uso de APIs de terceros supone un riesgo de fuga de información corporativa. MeigaSearch opera de forma 100% local.

Disponibilidad y Escalabilidad: La gestión de grandes volúmenes de documentación no estructurada requiere una infraestructura que no comprometa la operatividad diaria del usuario durante los procesos de ingesta.

Arquitectura de la Plataforma

MeigaSearch utiliza una arquitectura de microservicios orquestada mediante Docker, permitiendo un despliegue ágil y una separación clara entre las capas de procesamiento y consulta.

  1. Gestión de Ingesta Asíncrona (Backend & Worker)

    FastAPI (Capa de Servicio): Implementación de una interfaz de programación de aplicaciones asíncrona que gestiona las peticiones de usuario con mínima latencia.

    Celery + Redis (Motor de Tareas): Un sistema de colas distribuidas procesa la extracción de texto y metadatos en segundo plano. Esto evita la saturación de recursos del servidor principal y permite la concurrencia de múltiples usuarios.

    Extracción de Metadatos de Negocio: Integración de ExifTool y OCR para la recuperación de datos técnicos y textuales de archivos complejos, operando sin conexión a internet.

  2. Indexación y Búsqueda Híbrida (Qdrant)

    Precisión Semántica: A diferencia de los sistemas de búsqueda tradicionales basados en coincidencia exacta de palabras, utilizamos Embeddings Vectoriales y Qdrant para entender el contexto de la consulta.

    Recuperación de Información Relevante: Mediante técnicas de Chunking (segmentación), el sistema extrae únicamente los fragmentos de información necesarios, optimizando el uso de memoria y la relevancia de los resultados.

  3. Inferencia y Generación Soberana (RAG Local)

    Privacidad en la Respuesta: El sistema utiliza modelos de lenguaje (LLM) como Qwen o SmolLM ejecutados localmente. La plataforma permite generar respuestas, resúmenes y análisis basados exclusivamente en la documentación privada de la empresa, sin enviar datos a proveedores externos.

Desafío Técnico: La Gestión de la Saturación de Memoria

Durante el desarrollo, identificamos un obstáculo crítico en la carga masiva de archivos corporativos:

El Problema: La carga síncrona de archivos extensos bloquea el hilo principal del servidor, impidiendo nuevas consultas y provocando caídas de servicio.

La Solución: Implementamos una arquitectura orientada a eventos. El sistema genera un identificador de tarea (task_id) permitiendo al usuario monitorear el progreso de la carga mientras mantiene la capacidad de realizar búsquedas simultáneas en los documentos ya procesados.

Cumplimiento y Calidad de Software

Para asegurar un entorno profesional y auditable, hemos adoptado estándares de calidad de nivel industrial:

REUSE Compliant: Gestión estricta de licencias mediante el estándar SPDX (Apache 2.0), garantizando que el software cumple con los requisitos de transparencia para su adopción empresarial.

Integración Continua (CI): Implementación de Quality Gates mediante Ruff, asegurando que cada actualización del código mantiene la integridad y el rendimiento del sistema.

Conclusión y Hoja de Ruta

MeigaSearch transforma los repositorios estáticos de documentos en activos de conocimiento dinámicos y protegidos. El MVP actual demuestra que es posible implementar IA de vanguardia manteniendo el control absoluto de la información. El próximo objetivo estratégico es la optimización de los modelos locales para su funcionamiento en hardware de bajo coste, reduciendo aún más el TCO (Total Cost of Ownership) de la infraestructura de inteligencia artificial.

Built With

Share this project:

Updates