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.")