Modelo generador de mindmaps e infografias

Este módulo transforma contenido textual estructurado (temas e ideas) en artefactos didácticos reutilizables: mapas conceptuales (mindmaps en Mermaid), infraestructura de infografías (Infographic IR) y derivados como guiones de podcast o prompts para generación de imágenes. Su diseño prioriza determinismo y trazabilidad: cuando falta un LLM, genera salidas coherentes mediante reglas y plantillas; cuando hay LLM, lo usa para enriquecer textos, pero nunca depende exclusivamente de él.
Flujo de datos: desde state hasta la infografía
- Entrada
statedebe contener preferentementegrouped_themes(lista de temas con título, resumen y lista de ideas). Si no existe, el módulo intenta construir temas a partir decore_ideas(fallback determinista).
- Normalización
- Funciones como
ensure_core_mapsy la lógica engenerate_infographic_irnormalizan identificadores y textos: creacore_map,reverse_core_map,theme_id(T1,T2), yidea_id(I1,I2oT1_1).
- Funciones como
- Generación del mindmap (Mermaid)
build_mermaid_from_grouped_themesrecorregrouped_themes, asigna ids canónicos y produce un bloquemermaidtipomindmapcon nodosroot,Tn(temas) eIn(ideas).- Actualiza
state.core_mapystate.reverse_core_mappara mantener correspondencia entre texto e identificadores.
- Metadatos del mindmap
- Se construye (o puede construirse)
mindmap_metadata: lista de nodos con campos comoid,label,type,depth,parent_id,summary,visual_cues,importance,color_hint,layout_hint,example_prompt. - Este JSON es la puerta de enlace entre la estructura conceptual y la representación visual.
- Se construye (o puede construirse)
- Generación de la Infraestructura de Infografías (Infographic IR)
generate_infographic_irtoma la normalización y el mindmap para producir un JSON con:- Entradas por tema:
id,type: theme,title,description(texto pensado para un diseñador o modelo de imagen),suggested_layout,ideas(lista id/text). - Entradas por idea:
id,type: idea,title,description(vignette),suggested_layout,parent_theme.
- Entradas por tema:
- Guarda el JSON en disco con timestamp y lo adjunta a
state(infographic_ir_path,infographic_images,theme_to_ideas).
- Consumo
- Nodos posteriores (generación de imágenes, composición de documento final, guion de podcast) consumen
state.infographic_imagesystate.mindmap_metadatapara alinear texto, visuales y layout.
- Nodos posteriores (generación de imágenes, composición de documento final, guion de podcast) consumen
Por qué los mindmaps son la base ideal para infografías
- Estructura jerárquica: los mindmaps representan relaciones padre-hijo (tema → idea → subidea) que se traducen directamente en secciones de una infografía (paneles, viñetas, viñetas secundarias).
- Identificadores canónicos:
I1,T1permiten referenciar elementos de forma inequívoca en prompts, plantillas de diseño y metadatos. - Priorización y layout: campos derivados del mindmap (
depth,importance,layout_hint) permiten decidir qué destacar visualmente (tamaño, color, posición). - Generación de prompts: cada nodo puede incluir
example_promptodescriptionlisto para alimentar un generador de imágenes o un diseñador humano. - Sincronización narrativa: el mindmap sirve como índice para el guion (podcast, texto) y para la secuencia visual (slide por tema, viñeta por idea).
Detalle técnico de las funciones clave (qué hacen y por qué importa)
ensure_core_maps(state)- Normaliza
core_mapyreverse_core_map. Evita duplicados y genera ids nuevos cuando hace falta. - Importancia: mantiene consistencia entre mermaid, IR y cualquier referencia posterior.
- Normaliza
build_mermaid_from_grouped_themes(state)- Crea el bloque Mermaid
mindmapcon nodos y etiquetas. - Actualiza
state.mermaid_mapystate.core_map. - Importancia: produce el artefacto visual canónico que se incluye en artículos y sirve de referencia para la IR.
- Crea el bloque Mermaid
generate_mindmap_descriptions(state)(sugerida/implementada)- Recorre
grouped_themesy generamindmap_metadataconvisual_cues,importance,color_hint,example_prompt. - Importancia: convierte el mindmap en un contrato semántico para diseño y generación de imágenes.
- Recorre
generate_infographic_ir(state)- Normaliza temas, crea
theme_desc(texto para la infografía) y viñetas por idea; genera JSON conimagesy lo guarda. - Adjunta
infographic_ir_pathyinfographic_imagesalstate. - Importancia: produce el artefacto consumible por pipelines de imagen o por diseñadores, con trazabilidad (timestamp) y estructura clara.
- Normaliza temas, crea
Ejemplo de transformación (flujo conceptual → visual)
- Entradapy
grouped_themes = [ {"title":"Orígenes","summary":"Orígenes y cronología","ideas":[{"id":"I1","text":"Herramientas líticas"},{"id":"I2","text":"Yacimientos clave"}]}, {"title":"Cultura material","summary":"Cerámica y metalurgia","ideas":["Cerámica decorada","Técnicas metalúrgicas"]} ] - Mindmap (Mermaid)Codi
mindmap root("Concept Map") T1("1. Orígenes") I1("I1: Herramientas líticas") I2("I2: Yacimientos clave") T2("2. Cultura material") I3("I3: Cerámica decorada") I4("I4: Técnicas metalúrgicas") - Mindmap metadata (ejemplo)json
{ "nodes":[{"id":"T1","type":"theme","importance":"high","example_prompt":"Infografía 'Orígenes' con timeline y mapa."}, ...] } - Infographic IR (tema T1)json
{ "id":"T1", "type":"theme", "title":"Orígenes", "description":"Infografía representando 'Orígenes'. Resumen: Orígenes y cronología. Elementos: timeline; mapa; iconos de herramientas.", "suggested_layout":"title + timeline + 3 bullets", "ideas":[["I1","Herramientas líticas"],["I2","Yacimientos clave"]] }
Robustez, pruebas y recomendaciones para producción
- Fallback determinista: si falta
grouped_themes, construir temas desdecore_ideaspor chunking garantiza salida mínima. - Sanity checks: validar
mermaidcon_is_mermaid_saneantes de usarlo como fuente autoritativa. - Pruebas unitarias:
- Crear
statecon 2–4 temas y ejecutarbuild_mermaid_from_grouped_themes+generate_mindmap_descriptions+generate_infographic_ir. - Verificar: archivo JSON creado,
state.infographic_imagespoblado,mindmap_metadatacoherente conmermaid_map.
- Crear
- Mejoras prácticas:
- Añadir campos visuales opcionales:
visual_style,color_palette,focal_point,aspect_ratio. - Limitar longitud de
descriptionpara evitar prompts excesivos en LLMs o generadores de imágenes. - Versionar el JSON de IR (schema version) para compatibilidad con consumidores.
- Añadir campos visuales opcionales:
Conclusión: mindmaps como columna vertebral de la infografía
Los mindmaps generados por este módulo no son solo una representación visual: son la estructura canónica que alimenta la generación de infografías. Al convertir temas e ideas en nodos con identificadores, resúmenes y metadatos visuales, el sistema crea un contrato semántico que permite automatizar la creación de imágenes, diseñar layouts coherentes y sincronizar narración y visuales en documentos finales. Esto acelera la producción, mejora la trazabilidad y facilita la integración entre LLMs, motores de imagen y diseñadores humanos.







