from reportlab.lib.pagesizes import letter from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle def create_pdf(): doc = SimpleDocTemplate("D:\\OTROS\\LETXIPU-GRADIO\\Letxinet_Explicacion.pdf", pagesize=letter) styles = getSampleStyleSheet() # Custom Styles title_style = styles['Heading1'] subtitle_style = styles['Heading2'] normal_style = styles['BodyText'] Story = [] Story.append(Paragraph("LETXINET GRADIO", title_style)) Story.append(Paragraph("Asistente de Investigación Académica", subtitle_style)) Story.append(Spacer(1, 12)) Story.append(Paragraph("Letxinet Gradio es una avanzada plataforma de investigación científica impulsada por Inteligencia Artificial y agentes autónomos. Desarrollada y diseñada íntegramente de forma independiente por el equipo c2mv, esta aplicación está especialmente ajustada para entornos de investigación universitaria y para el Build Small Hackathon de HuggingFace.", normal_style)) Story.append(Spacer(1, 12)) Story.append(Paragraph("CARACTERÍSTICAS PRINCIPALES", subtitle_style)) Story.append(Spacer(1, 12)) Story.append(Paragraph("1. Motor de Búsqueda Multi-Repositorio y Bypass 'Anubis':", normal_style)) Story.append(Paragraph("El núcleo del programa permite realizar búsquedas simultáneas en docenas de bases de datos. A diferencia de un buscador tradicional, Letxinet Gradio implementa un 'DME' (Deep Metadata Enhancement) y mecanismos de bypass heurísticos que permiten burlar escudos anti-bot como Cloudflare o DSpace v7. Esto le permite extraer PDFs ocultos de repositorios latinoamericanos como ALICIA o RENATI, lo cual es vital para investigaciones en Perú. Además incluye un 'Fallback Manager' que lanza búsquedas de rescate en OpenAlex y Semantic Scholar si los repositorios locales fallan o bloquean el acceso.", normal_style)) Story.append(Spacer(1, 12)) Story.append(Paragraph("2. Ecosistema de Agentes y Arquitectura ARA+", normal_style)) Story.append(Paragraph("El sistema emplea un pipeline jerárquico. No le hace una sola pregunta a la IA, sino que lanza un enjambre de agentes:
" "- El Metodólogo: Revisa que el diseño científico sea sólido (usa protocolo GRADE).
" "- El Teórico: Elabora el marco conceptual.
" "- El Arquitecto: Orquesta el plan maestro de investigación.
" "- El ARA+ (Agente de Refinamiento Académico): La última fase, se encarga de corregir anglicismos, asegurar la cohesión geográfica (ej. priorizar datos de la 'Universidad Nacional del Santa', Perú) y garantizar la escritura en formato científico impecable.", normal_style)) Story.append(Spacer(1, 12)) Story.append(Paragraph("3. Análisis de PDFs con PyMuPDF", normal_style)) Story.append(Paragraph("Se incluye un potente procesador de PDFs locales. En lugar de procesar ciegamente el texto, utiliza expresiones regulares complejas para separar el documento en 'Metodología', 'Resultados', 'Conclusiones' y extraer estadísticas críticas (p-values, intervalos de confianza). El sistema soporta la inclusión de datos directamente a un ChromaDB (base de datos vectorial local) para el sistema de RAG (Retrieval-Augmented Generation).", normal_style)) Story.append(Spacer(1, 12)) Story.append(Paragraph("4. Clasificación GRADE Exhaustiva", normal_style)) Story.append(Paragraph("Se integraron 4 modos de evaluación de evidencia médica y científica: Keywords, Oxford, LLM e Híbrido. El algoritmo evalúa cada fuente y determina si es una evidencia de nivel ALTO (ej. Metaanálisis) o MUY BAJO (ej. Opinión experta), ponderando los resultados finales para evitar sesgos en el informe redactado por la IA.", normal_style)) Story.append(Spacer(1, 12)) Story.append(Paragraph("5. Visualización Avanzada y Exportaciones Universales", normal_style)) Story.append(Paragraph("La herramienta incluye:
" "- Interfaz gráfica basada en Gradio (Glassmorphism, Dark Mode).
" "- Generación de grafos interactivos (Pyvis y NetworkX) que mapean co-citaciones.
" "- Sistema unificado de exportación de resultados a: Markdown, BibTeX (para gestores como Zotero o Mendeley), Word (.docx) y empaquetamiento del workspace en ZIP (informe, CSV de metadatos, configuraciones).", normal_style)) Story.append(Spacer(1, 12)) Story.append(Paragraph("CÓMO EJECUTAR ESTA APLICACIÓN", subtitle_style)) Story.append(Spacer(1, 12)) Story.append(Paragraph("1. El sistema opera completamente en local con un entorno virtual Python (venv).
" "2. Todo el código fuente está alojado en GitHub y usa HuggingFace Spaces/Modelos a través de las APIs correspondientes.
" "3. El frontend de Gradio se lanza usando python app.py. Se ha eliminado cualquier capa de autenticación restrictiva; ahora es libre y de código abierto (Open Source).", normal_style)) doc.build(Story) if __name__ == "__main__": create_pdf() print("PDF creado exitosamente con reportlab.")