Gendocs Agent es un asistente de IA en etapa de desarrollo por hobby, diseñado para el análisis profundo, la triangulación de información y la generación automatizada de informes técnicos. Optimizado para entornos que requieren soberanía de datos, el agente ejecuta modelos de lenguaje locales para garantizar la privacidad total.
El agente no solo responde preguntas; razona comparando tres niveles de información:
- Contexto del Usuario: Análisis en tiempo real de PDFs subidos (con soporte OCR).
- Biblioteca Institucional (RAG): Consulta una base de datos vectorial persistente (
ChromaDB) con tus manuales y normativas. - Investigación Abierta: Búsqueda web privada vía
SearXNGyWikipediacon re-rankeo semántico.
-
Microsoft Word (.docx): Informes estructurados con prosa técnica, tablas automáticas y soporte nativo para fórmulas en LaTeX (
$E=mc^2$ ). - PowerPoint (.pptx): Presentaciones profesionales con síntesis de puntos clave y diseño limpio.
-
Gráficos Dinámicos: Generación de visualizaciones de datos usando
Matplotliba partir de tendencias detectadas en el texto.
Utiliza modelos CrossEncoder (BAAI/bge-reranker-base) para evaluar la relevancia técnica de los resultados web, descartando información ruidosa y priorizando fuentes veraces.
Optimizado para la familia de modelos Gemma (Google) en formato GGUF, permitiendo ejecución eficiente en hardware comercial con soporte para ventanas de contexto de hasta 8192 tokens.
Implementa un orquestador inteligente (orchestrator.py) que analiza dinámicamente la petición del usuario, crea un plan de acción y ejecuta herramientas especializadas (Búsqueda Institucional, Investigación Abierta, Generación de Gráficos) en paralelo para una resolución eficiente y unificada.
- SO: Linux (Recomendado) / Windows (vía WSL2).
- Python: 3.10 o superior.
- Docker & Docker-Compose: Para la infraestructura de búsqueda y sandboxing.
- Tesseract OCR: Para lectura de documentos escaneados (
sudo apt install tesseract-ocr tesseract-ocr-spa). - RAM: 16GB mínimo (32GB recomendado para modelos de 4B+ parámetros).
Hemos simplificado el proceso mediante un gestor centralizado. Sigue estos pasos:
-
Clonar y Acceder:
git clone https://github.com/KennethRayo/gendocs.git cd gendocs -
Iniciar el Gestor: Dale permisos de ejecución al script de configuración:
chmod +x setup.sh ./setup.sh
-
Flujo de Configuración: Dentro del menú de
setup.sh, selecciona:- Opción 1: Para descargar automáticamente los modelos GGUF necesarios.
- Opción 2: Para construir los contenedores Docker e instalar dependencias.
- Opción 3: Para indexar los PDFs que hayas colocado en la carpeta
library/.
Lanza la aplicación con Streamlit:
streamlit run main.py- "Genera un informe detallado sobre la normativa de seguridad eléctrica basándote en mi PDF y busca actualizaciones recientes en la web."
- "Haz una presentación de 5 diapositivas sobre la historia de El Salvador, incluye una tabla comparativa de hitos históricos."
- "¿Qué dice el manual de procedimientos (Biblioteca) sobre el mantenimiento de transformadores?"
main.py: Interfaz de usuario (Streamlit) y punto de entrada de la aplicación.orchestrator.py: Orquestador agéntico que planifica y ejecuta en paralelo las herramientas necesarias según el prompt del usuario.engine.py: Contiene los motores base (LLM, búsqueda vectorial, scraper web, generación de docs).tools_base.py,tools_library.py,tools_research.py,app_tools.py: Sistema de herramientas y habilidades extensibles (RAG, Web Search, Generación de Gráficos).setup.sh: Script de automatización para descarga de modelos, despliegue y mantenimiento.ingest_knowledge.py: Procesador de RAG para indexar la biblioteca institucional.sandbox_worker.py: Servicio aislado para la ejecución segura de código Python (ej. generación de gráficos).Dockerfile,Dockerfile.sandbox: Definición de los contenedores principales y del entorno aislado de ejecución.db_docs/: Almacén persistente de la base de datos vectorial (ChromaDB).models/: Directorio para almacenar los archivos.ggufde los modelos locales.searxng/: Configuración del motor de búsqueda meta-privado.
- LLM Engine:
llama-cpp-python - Orquestación:
LangChain - Base de Datos:
ChromaDB - UI:
Streamlit - OCR:
PyMuPDF+Pytesseract - Web:
SearXNG+Wikipedia-API - Data Viz:
Matplotlib+Numpy
Un desarrollo de Hobby para la gestión eficiente de información técnica y documental.
