🔮 Perspectiva Studio - Arquitectura del Sistema
Última actualización : 28 Enero 2026Versión : 3.0.0Status : 🟢 31 presets, Gemini Live con Roles + Function Calling, Blog Studio, Audiobook Studio, Exportación PDF/Blog/Audiolibro, AI Assistant, Cloud Storage R2
📋 Changelog Reciente (v3.0.0)
🆕 Nuevas Funcionalidades (Enero 2026)
Blog Studio 📝
Generación completa de artículos con IA (secciones, estructura, imágenes)
12 tipos de secciones : hero, intro, highlight, quote, cards, steps, comparison, faq, stats, gallery, cta, conclusion
Modos de visualización de imágenes : carousel, grid-2, grid-3, stack, single
Tamaños de imagen configurables : full, large, medium, small, thumbnail
Visor público en /viewer?type=blog&id=xxx
Selección de modelo IA para generación (Groq, Google Gemini, DeepSeek, OpenAI, Anthropic)
Audiobook Studio 🎧
Pipeline profesional con IA para estructurar contenido
Modo rápido para conversión directa
TTS multi-proveedor : gTTS, MeloTTS, ElevenLabs
Generación de imágenes por página
Visor interactivo con navegación, audio sincronizado y persistencia
Human-in-the-loop para revisión y regeneración
AI Assistant 🤖
Chat contextual flotante para ayuda en tiempo real
STT/TTS integrado para interacción por voz
Contexto automático según módulo activo (Blog, PDF, Audiobook)
Acciones rápidas específicas por contexto
Selección de modelo (DeepSeek, Groq, OpenAI, Anthropic)
Exportación PDF Profesional 📄
Pipeline de 3 pasos : Análisis → Optimización → Generación
Tablas con estilos premium (gradientes, sombras, bordes redondeados)
Selección de modelo IA para cada exportación
Incluye/excluye secciones a demanda
Soporte para imágenes generadas
Modelos de IA 🧠
Google Gemini : gemini-2.0-flash, gemini-1.5-pro, gemini-1.5-flash
Groq : llama-3.3-70b-versatile, llama-3.1-70b-versatile, mixtral-8x7b
DeepSeek : deepseek-chat, deepseek-reasoner
OpenAI : gpt-4o, gpt-4o-mini
Anthropic : claude-sonnet-4
Mejoras Técnicas ⚙️
Timeout dinámico para llamadas API con notificaciones
Tracking de fallback de modelos
Prompt Logger para debugging y análisis
Carrusel de imágenes en visor de blog público
Persistencia de audio en IndexedDB + R2
1. Resumen Ejecutivo
Perspectiva Studio es una herramienta avanzada de análisis y generación de contenido que transforma audio en documentos estructurados, imágenes y material listo para videos de YouTube.
🚀 Instancias Disponibles
Instancia
URL
Descripción
Perspectiva Studio
/internal/tools/perspectiva-studio
Versión completa con todas las funciones
Transcriptor
/internal/tools/transcriptor
Clon simplificado, sin ElevenLabs en TTS
Blog Viewer
/internal/tools/perspectiva-studio/viewer?type=blog
Visor público de blogs generados
Audiobook Viewer
/internal/tools/perspectiva-studio/viewer?type=audiobook
Visor público de audiolibros
PDF Viewer
/internal/tools/perspectiva-studio/viewer?type=pdf
Visor público de PDFs generados
✨ Capacidades Principales
Transcripción de audio (STT via ElevenLabs Scribe con diarización)
Gemini Live ✨ (Conversación de voz bidireccional en tiempo real)
🎭 Roles adaptados : La IA adopta rol según preset (Psicólogo, Abogado, etc.)
🔧 Function Calling : 8 herramientas para consultar contexto bajo demanda
🎤 8 voces : Aoede, Kore, Puck, Charon, Fenrir, Leda, Orus, Zephyr
Cloud Storage ☁️ (Guardar/cargar sesiones en R2)
Exportación Profesional 📄 (PDF con pipeline IA, Libro interactivo HTML, Markdown)
Blog Studio 📝 (Generación completa de artículos con IA)
Audiobook Studio 🎧 (Audiolibros interactivos con TTS y imágenes)
AI Assistant 🤖 (Chat contextual con STT/TTS)
Contexto documental (PDFs, TXT, MD con Rolling Summary)
Contexto visual (Imágenes via Gemini Vision)
Chat IA como contexto 💬 (Historial diarizado como entrada para regeneración)
Import/Export de medios (ZIP con audios, documentos e imágenes)
31 tipos de sesión (presets especializados para cada contexto)
Configuración por bloque (modelo y extensión independiente para cada bloque)
Tooltips de ayuda (sistema de ? con explicaciones contextuales)
Generación de imágenes (Gemini Imagen, FLUX) con estilo personalizable
Text-to-Speech (gTTS default, MeloTTS, ElevenLabs) con limpieza de emojis
Rolling Summary para documentos Y transcripciones extensas
Prompt Logger 🔍 (Sistema de debugging y análisis de prompts)
Aventura Interactiva (CYOA) - Ficción con opciones ramificadas
2. Sistema de Presets v2.7
2.1 Categorías de Presets (31 Total)
🏢 BUSINESS & CORPORATIVO (4)
Preset
Icono
Bloques
Descripción
Corporativo
🏢
Acta → Dinámicas de Equipo → Plan de Acción
Reuniones generales, actas
Comercial
💼
Propuesta de Valor → Mercado y Oportunidades → Plan Go-to-Market
Ventas, propuestas
Autónomos
📊
Situación Fiscal → Análisis Negocio → Optimización
Freelance, autónomos
Comunidad
🏘️
Estado Comunidad → Acuerdos y Votaciones → Acciones
Juntas de vecinos
💻 TECH & STARTUP (8)
Preset
Icono
Target
Bloques
Doc Técnica
📚
Devs, Tech Writers
Especificaciones → Arquitectura → Guía de Uso
Tech Executive
👔
CEO/COO/CFO
Visión Estratégica → KPIs y Métricas → Decisiones Clave
Tech Product
💻
CTO/CPO/PM
Roadmap Técnico → Priorización → Deuda Técnica/Riesgos
Marketing
📣
CCO/CMO/SM
Estrategia de Marca → Campañas y Canales → Métricas Growth
Sales & BD
🤝
Ventas, BizDev
Pipeline → Objeciones y Estrategia → Próximos Pasos
People & HR
👥
RRHH, Culture
Clima y Cultura → Talento y Desarrollo → Plan de Acción HR
Investor
💼
Pitch, VC
Traction y Métricas → Riesgos y Mitigación → Ask y Next Steps
Board Meeting
🏛️
Junta directiva
Estado Compañía → Decisiones Estratégicas → Governance
👤 VIDA PERSONAL & BIENESTAR (10)
Preset
Icono
Bloques
Descripción
Pareja
💑
Dinámica de Pareja → Puntos de Conflicto → Plan de Conexión
Relaciones, comunicación
Crecimiento Personal
🌱
Situación Actual → Objetivos y Visión → Plan de Acción
Coach personal
Padres
👨👩👧
Situación Familiar → Desafíos → Estrategias de Crianza
Crianza, hijos
Hogar/Cocina
🍳
Inventario → Planificación Semanal → Recetas y Tips
Doméstico
Autoanálisis
🧘
Introspección → Patrones y Creencias → Camino de Crecimiento
Reflexión personal
Psicólogo
🧠
Exploración Emocional → Patrones y Origen → Herramientas
Terapia, bienestar
Buen Amig@
🤗
Te Escucho → Reflexiones → Ánimo y Apoyo
Apoyo emocional
Nutricionista
🥗
Evaluación Nutricional → Plan Alimentación → Hábitos
Alimentación, dietas
Fitness Coach
🏋️
Evaluación Física → Plan Entrenamiento → Motivación
Ejercicio, rutinas
Mentor Académico
🎓
Situación Académica → Opciones → Plan de Acción
Orientación, carrera
👔 PROFESIONALES DE CONFIANZA (4)
Preset
Icono
Bloques
Descripción
Abogado
⚖️
Análisis Legal → Opciones y Estrategias → Próximos Pasos
Consultas legales
Asesor Fiscal
💰
Situación Tributaria → Optimización Fiscal → Plan de Acción
Impuestos, Hacienda
Veterinario
🐾
Evaluación Salud → Diagnóstico → Plan de Cuidados
Mascotas
Interiorista
🏠
Análisis del Espacio → Propuesta Diseño → Plan Ejecución
Decoración, reformas
🎨 CREATIVOS & CONTENIDO (4)
Preset
Icono
Patrón
Bloques
Narrativo
📖
IA-Driven
La Historia → Personajes y Emociones → Mensaje y Moraleja
Educativo
📚
Entrelazado
Conceptos Clave → Ejemplos Prácticos → Resumen
Motivacional
💪
Secuencial
El Desafío → Estrategias de Acción → La Visión
Creativo
🎨
IA-Driven
Concepto → Proceso Creativo → Obra Final
Documental
📹
Secuencial
Los Hechos → Análisis Profundo → Impacto y Legado
🎮 INTERACTIVO (1)
Preset
Icono
Patrón
Bloques
Aventura Interactiva
🧭
Ramificado (Graph)
Worldbuilding → Lógica de Ramas → Nodos de Escena
2.2 Patrones de Montaje para Video
┌─────────────────────────────────────────────────────────────────────────┐
│ PATRÓN SECUENCIAL PATRÓN ENTRELAZADO │
│ (Corporativo, Documental, (Educativo) │
│ Motivacional, Tech, etc.) │
│ │
│ ┌─────┐ ┌─────┐ ┌─────┐ ┌──┐┌──┐┌──┐ ┌──┐┌──┐┌──┐ │
│ │ B1 │→│ B2 │→│ B3 │ │A1││A2││A3│→│B1││B2││B3│→ ... │
│ │ ▓▓▓ │ │ ▓▓▓ │ │ ▓▓▓ │ └──┘└──┘└──┘ └──┘└──┘└──┘ │
│ └─────┘ └─────┘ └─────┘ └── Resumen Final ──┘ │
│ │
├─────────────────────────────────────────────────────────────────────────┤
│ PATRÓN IA-DRIVEN (Narrativo, Creativo, Autoanálisis) │
│ │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ 🤖 IA ANALIZA → Genera secuencia de "beats" narrativos │ │
│ │ │ │
│ │ [Intro] → [Conflicto] → [Personaje] → [Acción] → │ │
│ │ [Emoción] → [Giro] → [Clímax] → [Resolución] │ │
│ │ │ │
│ │ Mezcla dinámicamente B1, B2, B3 según la historia │ │
│ └────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘
3. Arquitectura de Alto Nivel v2.7
┌─────────────────────────────────────────────────────────────────────────────┐
│ PERSPECTIVA STUDIO v2.7 │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌────────────────────────────────────────────────────────────────────┐ │
│ │ 🎬 SELECTOR DE PRESET (31 tipos) │ │
│ │ ┌─────────────────────────────────────────────────────────────┐ │ │
│ │ │ 🏢 Business │ 💻 Tech │ 👤 Personal │ 👔 Pro │ 🎨 Creativo │ │ │
│ │ └─────────────────────────────────────────────────────────────┘ │ │
│ └────────────────────────────────────────────────────────────────────┘ │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ AUDIO │ │ DOCUMENTOS │ │ IMÁGENES │ │
│ │ INPUT │ │ CONTEXT │ │ CONTEXT │ │
│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ PROCESAMIENTO + ROLLING SUMMARY │ │
│ └──────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ GENERACIÓN DE CONTENIDO │ │
│ │ ┌────────────┐ ┌────────────┐ ┌────────────┐ │ │
│ │ │ BLOQUE 1 │ │ BLOQUE 2 │ │ BLOQUE 3 │ ← Adaptados │ │
│ │ │ Model: X │ │ Model: Y │ │ Model: Z │ al Preset │ │
│ │ │ Ext: Med │ │ Ext: Lrg │ │ Ext: Brv │ │ │
│ │ └────────────┘ └────────────┘ └────────────┘ │ │
│ │ ↑ Modelo y extensión configurables por bloque │ │
│ └──────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ GENERACIÓN DE IMÁGENES │ │
│ │ │ │
│ │ [PREFIJO preset] + [Prompt IA] + [SUFIJO preset] │ │
│ │ │ │
│ │ Auto | Auto x2 | Auto x4 ← Multiplicador por punto │ │
│ └──────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ TTS OUTPUT │ │
│ │ (gTTS / MeloTTS / ElevenLabs) │ │
│ └──────────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
4. Sistema de Configuración v2.7
4.1 Configuración de Modelos LLM
┌─────────────────────────────────────────────────────────────────────────┐
│ 🤖 MODELOS LLM │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ MODELO PRINCIPAL (?) MODELO DOCUMENTOS (?) │
│ ┌─────────────────────┐ ┌─────────────────────┐ │
│ │ Gemini 2.5 Flash ▼ │ │ Gemini 2.5 Flash ▼ │ │
│ └─────────────────────┘ └─────────────────────┘ │
│ Análisis inicial, acta Procesar PDFs, contexto │
│ tradicional, psicología │
│ │
│ MODELO CHAT IA (?) │
│ ┌─────────────────────┐ │
│ │ Gemini 2.5 Flash ▼ │ │
│ └─────────────────────┘ │
│ Chat interactivo post-sesión │
│ │
├─────────────────────────────────────────────────────────────────────────┤
│ ✨ BLOQUES DINÁMICOS (?) │
│ Configura modelo y extensión para cada bloque del preset │
├─────────────────────────────────────────────────────────────────────────┤
│ Bloque 1: [Acta de Reunión] │
│ Modelo: [Gemini 2.5 Flash ▼] Ext: [Medio ▼] │
│ │
│ Bloque 2: [Dinámicas de Equipo] │
│ Modelo: [Gemini 2.5 Flash ▼] Ext: [Largo ▼] │
│ │
│ Bloque 3: [Plan de Acción] │
│ Modelo: [Gemini 2.5 Pro ▼] Ext: [Breve ▼] │
└─────────────────────────────────────────────────────────────────────────┘
4.2 Opciones de Extensión
Extensión
Instrucción al LLM
Síntesis
MUY CONCISO. Máximo 3-4 puntos clave, sin desarrollar
Breve
Breve pero completo. 5-6 puntos principales
Medio
Equilibra detalle y concisión (default)
Largo
Exhaustivo y detallado con ejemplos
Muy largo
MUY EXHAUSTIVO. Análisis completo en profundidad
4.3 Sistema de Tooltips
Tooltips con ? en opciones que pueden ser ambiguas:
Modelo Principal : Análisis inicial, acta tradicional, psicología
Modelo Documentos : Procesar PDFs y documentos de contexto
Modelo Chat IA : Chat interactivo para preguntas sobre la sesión
Bloques Dinámicos : Modelo y extensión independiente por bloque
Método Procesamiento : Auto/Directo/Rolling según duración audio
Imágenes Acta : Auto (1x punto) o multiplicadores
5. Flujo de Datos Detallado
5.1 Procesamiento de Audio (Rolling Summary)
Audio Files (.m4a, .mp3, .mp4, .wav, etc.)
│
▼
┌─────────────────────────────────────────────────────┐
│ 1. File Validation │ max 150MB, formatos │
│ 2. Intelligent Ordering │ infer from filename │
│ 3. Multi-file merge │ en secuencia │
└────────────┬───────────────┴────────────────────────┘
│
▼
┌─────────────────────────┐
│ STT Provider: │
│ - ElevenLabs Scribe │ diarización de speakers
│ - Gemini Live ✨ │ real-time bidireccional
└────────────┬────────────┘
│
▼
┌──────────────────────────────────────────────────────┐
│ ROLLING SUMMARY (transcripciones > 13000 palabras) │
│ │
│ Si transcripción > 13000 palabras: │
│ Chunk 1 ──────────────► Resumen 1 │
│ │ │
│ Chunk 2 + Resumen 1 ───► Resumen 2 (acumulado) │
│ │ │
│ ...hasta Resumen Final con toda la información │
└────────────┬─────────────────────────────────────────┘
│
▼
Transcription ready for analysis
5.3 Gemini 2.5 Live - Conversación en Tiempo Real
┌─────────────────────────────────────────────────────────────────────────┐
│ GEMINI LIVE - ARQUITECTURA CLIENT-TO-SERVER │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ 1. OBTENCIÓN DE TOKEN EFÍMERO (via Cloudflare Edge) │
│ ┌─────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
│ │ Browser │ ──► │ Cloudflare Edge │ ──► │ Gemini Auth │ │
│ │ (Cliente) │ │ /api/gemini/ │ │ (getToken) │ │
│ └─────────────┘ │ live-token │ └─────────────────┘ │
│ │ └─────────────────┘ │ │
│ ▼ ◄────────────────────────┘ │
│ { token: "ephemeral-xxx", expires: "1-30 min" } │
│ │
│ 2. WEBSOCKET DIRECTO (Bypass Cloudflare - mejor latencia) │
│ ┌─────────────┐ ┌─────────────────┐ │
│ │ Browser │ ═══════ WebSocket ═══════► │ Gemini Live API │ │
│ │ Audio ↔ │ wss://generativelanguage │ gemini-2.5-flash│ │
│ │ 16kHz PCM │ .googleapis.com/ws/... │ -native-audio │ │
│ └─────────────┘ └─────────────────┘ │
│ │
│ Características: │
│ ✓ STT + TTS bidireccional integrado │
│ ✓ Voice Activity Detection (VAD) nativo │
│ ✓ Interrupciones naturales │
│ ✓ 8 voces: Aoede, Kore, Puck, Charon, Fenrir, Leda, Orus, Zephyr │
│ ✓ Latencia ~300ms │
│ ✓ Costo: ~$0.0015-0.006/1k tokens (10x más barato que ElevenLabs) │
│ │
│ Requisitos: Tier PRO o ENTERPRISE │
└─────────────────────────────────────────────────────────────────────────┘
5.3.1 Sistema de Roles Adaptados (v2.9.3)
┌─────────────────────────────────────────────────────────────────────────┐
│ ROLES ADOPTADOS POR TIPO DE SESIÓN │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ Cuando el usuario inicia Gemini Live, la IA adopta un ROL específico │
│ basado en el preset seleccionado: │
│ │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ PRESET │ ROL ADOPTADO │ │
│ ├─────────────────────────────────────────────────────────────────┤ │
│ │ 🧠 Psicólogo │ "Soy tu psicólogo. ¿Cómo te sientes?" │ │
│ │ ⚖️ Abogado │ "Soy tu abogado. ¿En qué te asesoro?" │ │
│ │ 🥗 Nutricionista │ "Soy tu nutricionista. Cuéntame..." │ │
│ │ 🏋️ Fitness Coach │ "Soy tu coach. ¿Cuáles son tus metas?" │ │
│ │ 💑 Pareja │ "Estoy aquí para mediar y escuchar..." │ │
│ │ 👨👩👧 Padres │ "Como asesor familiar, te escucho..." │ │
│ │ 💼 Comercial │ "Analicemos tu propuesta comercial..." │ │
│ │ 🏢 Corporativo │ "Repasemos los puntos de la reunión..." │ │
│ └─────────────────────────────────────────────────────────────────┘ │
│ │
│ El usuario puede ELEGIR su preferencia al inicio de la sesión: │
│ - Aceptar el rol sugerido │
│ - Pedir un enfoque diferente │
│ - Conversación libre sin rol específico │
│ │
└─────────────────────────────────────────────────────────────────────────┘
5.3.2 Function Calling - Herramientas de Contexto (v2.9.3)
┌─────────────────────────────────────────────────────────────────────────┐
│ FUNCTION CALLING - 8 HERRAMIENTAS DISPONIBLES │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ La IA puede invocar funciones para obtener contexto BAJO DEMANDA: │
│ │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ FUNCIÓN │ DESCRIPCIÓN │ │
│ ├─────────────────────────────────────────────────────────────────┤ │
│ │ get_dynamic_block │ Obtiene contenido de un bloque │ │
│ │ │ específico (1, 2, o 3) │ │
│ │ get_all_blocks │ Lista todos los bloques generados │ │
│ │ get_session_info │ Info general: preset, fecha, idioma │ │
│ │ get_chat_history │ Últimos N mensajes del chat │ │
│ │ get_transcription │ Transcripción completa del audio │ │
│ │ get_acta_completa │ Acta tradicional de la sesión │ │
│ │ get_document_context │ Contexto de documentos cargados │ │
│ │ get_image_analysis │ Análisis de imágenes cargadas │ │
│ └─────────────────────────────────────────────────────────────────┘ │
│ │
│ FLUJO DE FUNCTION CALLING: │
│ │
│ Usuario: "¿Qué dice el bloque 2?" │
│ ↓ │
│ Gemini detecta necesidad → invoca get_dynamic_block(2) │
│ ↓ │
│ Cliente ejecuta función → devuelve contenido │
│ ↓ │
│ Gemini responde con información específica │
│ │
│ VENTAJA: La IA NO recibe todo el contexto al inicio (reduce tokens) │
│ Solo consulta lo que necesita, cuando lo necesita. │
│ │
└─────────────────────────────────────────────────────────────────────────┘
5.4 Chat IA como Contexto de Entrada (v2.9.2)
┌─────────────────────────────────────────────────────────────────────────┐
│ CHAT IA COMO FUENTE DE CONTEXTO PARA REGENERACIÓN │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ CONCEPTO: Las conversaciones previas con el Chat IA pueden usarse │
│ como contexto adicional para mejorar futuras regeneraciones. │
│ │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ CONTEXTO ADICIONAL (documentos, imágenes) │ │
│ │ ┌────────────┐ ┌────────────┐ ┌────────────────────────────┐ │ │
│ │ │📄 Docs (3) │ │📸 Imgs (2) │ │💬 Chat IA (12 mensajes) │ │ │
│ │ └────────────┘ └────────────┘ └────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────────────────┘ │
│ │
│ 📋 PREVIEW DE MENSAJES │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ 👤 ¿Puedes resumir los puntos principales? │ │
│ │ 🤖 Los puntos clave de la sesión son: 1) Lanzamiento... │ │
│ │ 👤 ¿Y las decisiones tomadas? │ │
│ │ 🤖 Se decidieron las siguientes acciones: 1) Asignar... │ │
│ └─────────────────────────────────────────────────────────────────┘ │
│ │
│ [✓] Incluir como contexto en regeneración │
│ │
│ FORMATO DIARIZADO EN EL CONTEXTO: │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ ---HISTORIAL DE CHAT IA (Diarizado)--- │ │
│ │ │ │
│ │ [10:15] 👤 Usuario: │ │
│ │ ¿Puedes resumir los puntos principales de la reunión? │ │
│ │ │ │
│ │ [10:15] 🤖 Asistente: │ │
│ │ Los puntos clave de la sesión son: 1) Lanzamiento del │ │
│ │ producto programado para marzo, 2) Presupuesto aprobado... │ │
│ │ │ │
│ │ [10:18] 👤 Usuario [voz]: │ │
│ │ ¿Cuáles fueron las decisiones más importantes? │ │
│ │ │ │
│ │ ---FIN HISTORIAL CHAT IA--- │ │
│ └─────────────────────────────────────────────────────────────────┘ │
│ │
│ INTEGRACIÓN EN GENERACIÓN: │
│ generateSummary() incluye chatHistoryContext junto a: │
│ - documentContext (PDFs, TXT, MD) │
│ - imagesContext (análisis de imágenes) │
│ │
│ Archivos modificados: │
│ ├── retrospective.js → getChatContext(), hasMessages() │
│ ├── perspectiva-studio.js → getChatHistoryContext(), UI │
│ └── index.html → sección "Historial Chat IA" en contexto │
└─────────────────────────────────────────────────────────────────────────┘
5.5 Sistema de Exportación Profesional
┌─────────────────────────────────────────────────────────────────────────┐
│ EXPORTACIÓN PROFESIONAL - 3 MODOS │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
│ │ 📄 PDF │ │ 📚 LIBRO │ │ 📝 MARKDOWN │ │
│ │ Profesional │ │ Interactivo │ │ Simple │ │
│ └────────┬────────┘ └────────┬────────┘ └────────┬────────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ SELECTOR DE SECCIONES │ │
│ │ │ │
│ │ ☑ 📰 Portada ☑ 📋 Acta/Resumen │ │
│ │ ☑ 📑 Índice ☑ 🧠 Análisis Psicológico │ │
│ │ ☑ 📝 Bloque 1 ☑ 📄 Bloque 2 ☑ 📌 Bloque 3 │ │
│ │ ☐ ✅ Conclusiones ☐ 💬 Chat IA History │ │
│ │ ☐ 📚 Documentos ☐ 🎙️ Transcripción │ │
│ │ ☐ 🖼️ Imágenes ☐ 📊 Metadatos │ │
│ └─────────────────────────────────────────────────────────────────┘ │
│ │
│ 📄 PDF PROFESIONAL │
│ ├── Usa window.print() → Guardar como PDF │
│ ├── Estilos Georgia/Times para impresión │
│ ├── Portada con metadatos │
│ ├── Tabla de contenidos automática │
│ └── Page breaks inteligentes │
│ │
│ 📚 LIBRO INTERACTIVO (HTML standalone) │
│ ├── Tipografía elegante (Crimson Text) │
│ ├── Tema claro/oscuro automático + toggle manual │
│ ├── Drop caps en primer párrafo de capítulos │
│ ├── Navegación flotante (↑ Inicio, ☰ Índice) │
│ ├── Galería de imágenes generadas │
│ ├── Responsive + print-friendly │
│ └── Exporta como .html descargable │
│ │
│ 📝 MARKDOWN │
│ ├── Formato .md estándar │
│ ├── Compatible con editores (Obsidian, Notion, etc.) │
│ └── Headers y formato preservados │
│ │
│ Archivos: │
│ ├── src/services/pdfExportService.js │
│ ├── src/services/bookExportService.js │
│ └── src/components/ExportModal.jsx │
└─────────────────────────────────────────────────────────────────────────┘
5.6 Generación de Bloques Dinámicos
┌─────────────────────────────────────────────────────────────┐
│ GENERACIÓN DE BLOQUES DINÁMICOS │
├─────────────────────────────────────────────────────────────┤
│ │
│ 1. Obtener preset seleccionado │
│ preset = PRESETS[currentPreset] │
│ blocks = preset.blocks // ["Bloque1", "Bloque2", ...] │
│ │
│ 2. Para cada bloque (1, 2, 3): │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ model = document.getElementById(`block${n}Model`) │ │
│ │ length = document.getElementById(`block${n}Length`)│ │
│ │ prompt = basePrompts[preset][n] + lengthInstruction│ │
│ │ │ │
│ │ content = await callLLM(prompt, model, 'gemini') │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ 3. Guardar en presetBlocksContent │
│ presetBlocksContent.block1 = content │
│ presetBlocksContent.block2 = content │
│ presetBlocksContent.block3 = content │
│ │
│ 4. Auto-regenerar audiolibro si habilitado │
│ AudiobookModule.createFromContent() │
│ │
└─────────────────────────────────────────────────────────────┘
6. Límites y Configuración
Recurso
Límite
Notas
Audio files
150MB max
Por archivo
Audio formats
m4a, mp3, mp4, wav, webm, ogg, opus, aac, caf
+video/mp4 para WhatsApp
Documents
5 max, 10MB each
PDF, TXT, MD
Doc direct threshold
13k chars
Sin resumen si menor
Doc chunk size
13k chars
Rolling summary si mayor
Images
10 max, 20MB each
JPG, PNG, WebP, GIF
Transcription rolling threshold
13000 palabras
~78k chars
TTS chunk (gTTS)
1500 chars
Recomendado, default
TTS chunk (MeloTTS)
200 chars
Experimental, error 8002
TTS chunk (ElevenLabs)
2500 chars
Premium
Presets disponibles
31
6 categorías
7. Archivos del Sistema
7.1 Perspectiva Studio (Principal)
public/internal/tools/perspectiva-studio/
├── index.html # UI principal (~13000 líneas)
├── perspectiva-studio.js # Lógica principal + PRESETS + PDF Pipeline (~16700 líneas)
├── blog.js # Blog Studio - Generación artículos (~4500 líneas)
├── audiobook.js # Audiobook Studio - Audiolibros interactivos (~4700 líneas)
├── ai-assistant.js # AI Assistant - Chat contextual flotante (~1100 líneas)
├── viewer.html # Visor público para Blog/Audiobook/PDF (~1500 líneas)
├── interactive-story.js # Módulo CYOA / Aventura Interactiva
├── conclusions.js # Módulo Conclusiones
└── retrospective.js # Módulo Retrospectiva (Chat IA)
7.2 Transcriptor (Clon Simplificado)
public/internal/tools/transcriptor/
├── index.html # UI (título: Transcriptor)
├── transcriptor.js # Lógica (sin ElevenLabs TTS default)
├── conclusions.js # Módulo Conclusiones
└── retrospective.js # Módulo Retrospectiva (Chat IA)
8. Módulos de Generación de Contenido
8.1 Blog Studio
Archivo : blog.js (~4500 líneas)
┌─────────────────────────────────────────────────────────────────────────┐
│ BLOG STUDIO ARCHITECTURE │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ CONFIGURACIÓN INICIAL │ │
│ │ - Título del artículo │ │
│ │ - Categoría (tech, lifestyle, business, health, etc.) │ │
│ │ - Estilo y tono │ │
│ │ - Modelo de IA (Groq, Google, DeepSeek, OpenAI, Anthropic) │ │
│ │ - Generar imágenes automáticamente (sí/no) │ │
│ └─────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ 12 TIPOS DE SECCIÓN │ │
│ │ │ │
│ │ hero │ Cabecera con título e imagen destacada │ │
│ │ intro │ Párrafo introductorio │ │
│ │ highlight │ Puntos clave con lista │ │
│ │ quote │ Cita destacada con autor │ │
│ │ cards │ Tarjetas informativas (grid) │ │
│ │ steps │ Pasos numerados / timeline │ │
│ │ comparison │ Tabla comparativa │ │
│ │ faq │ Preguntas frecuentes (acordeón) │ │
│ │ stats │ Estadísticas y métricas │ │
│ │ gallery │ Galería de imágenes │ │
│ │ cta │ Llamada a la acción │ │
│ │ conclusion │ Resumen y cierre │ │
│ └─────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ MODOS DE VISUALIZACIÓN DE IMÁGENES │ │
│ │ │ │
│ │ carousel │ Carrusel con flechas y dots │ │
│ │ grid-2 │ Grid de 2 columnas │ │
│ │ grid-3 │ Grid de 3 columnas │ │
│ │ stack │ Imágenes apiladas verticalmente │ │
│ │ single │ Una sola imagen centrada │ │
│ └─────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ VISOR PÚBLICO │ │
│ │ URL: /viewer?type=blog&id={uuid} │ │
│ │ - Renderizado responsive │ │
│ │ - Soporte para carousel con JavaScript │ │
│ │ - Compartir en redes sociales │ │
│ │ - TTS de contenido │ │
│ └─────────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘
8.2 Audiobook Studio
Archivo : audiobook.js (~4700 líneas)
┌─────────────────────────────────────────────────────────────────────────┐
│ AUDIOBOOK STUDIO ARCHITECTURE │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ DOS MODOS │ │
│ │ │ │
│ │ ⚡ MODO RÁPIDO │ 🎯 MODO PROFESIONAL │ │
│ │ - Conversión directa │ - Pipeline IA completo │ │
│ │ - Sin reestructurar │ - Análisis de contenido │ │
│ │ - TTS directo │ - Optimización narrativa │ │
│ │ │ - Generación de imágenes │ │
│ └─────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ CONFIGURACIÓN │ │
│ │ - Número de páginas (auto / 5-30) │ │
│ │ - Modelo de IA (Groq, Google, DeepSeek, OpenAI, Anthropic) │ │
│ │ - Proveedor TTS (gTTS / MeloTTS / ElevenLabs) │ │
│ │ - Voz (si ElevenLabs) │ │
│ │ - Generar imágenes por página (sí/no) │ │
│ └─────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ PIPELINE PROFESIONAL │ │
│ │ │ │
│ │ 1. 📊 Análisis del contenido fuente │ │
│ │ 2. 📖 Estructuración en páginas narrativas │ │
│ │ 3. ✍️ Generación de texto optimizado │ │
│ │ 4. 🎨 Generación de prompts de imagen (opcional) │ │
│ │ 5. 🖼️ Generación de imágenes con IA │ │
│ │ 6. 🔊 Generación de audio TTS │ │
│ │ 7. 💾 Guardado en R2 Cloud Storage │ │
│ └─────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ VISOR INTERACTIVO │ │
│ │ URL: /viewer?type=audiobook&id={uuid} │ │
│ │ - Navegación de páginas │ │
│ │ - Audio sincronizado con página │ │
│ │ - Controles de reproducción │ │
│ │ - Barra de progreso │ │
│ │ - Persistencia de audio en IndexedDB │ │
│ └─────────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘
8.3 AI Assistant
Archivo : ai-assistant.js (~1100 líneas)
┌─────────────────────────────────────────────────────────────────────────┐
│ AI ASSISTANT ARCHITECTURE │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ CHAT FLOTANTE CONTEXTUAL │ │
│ │ │ │
│ │ - Posición fija en esquina inferior derecha │ │
│ │ - Minimizable / Expandible │ │
│ │ - Responsive │ │
│ └─────────────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ PROPÓSITOS (CONTEXTOS) │ │
│ │ │ │
│ │ images │ Ayuda con prompts de imagen │ │
│ │ content │ Mejora de contenido y estructura │ │
│ │ config │ Configuración de exportación │ │
│ │ analysis │ Análisis previo de contenido │ │
│ │ pdf_config │ Configuración específica de PDF │ │
│ │ general │ Ayuda general │ │
│ └─────────────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ CARACTERÍSTICAS │ │
│ │ │ │
│ │ ✅ STT (Speech-to-Text) con Web Speech API │ │
│ │ ✅ TTS (Text-to-Speech) para respuestas │ │
│ │ ✅ Selección de modelo IA │ │
│ │ ✅ Acciones rápidas según contexto │ │
│ │ ✅ Historial de conversación │ │
│ │ ✅ Copiar mensajes │ │
│ │ ✅ Usar respuesta como prompt │ │
│ └─────────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘
9. APIs Utilizadas
API
Uso
Endpoint
Transcription
STT
/api/ai-providers/transcribe
LLM Chat
Summaries, Analysis
/api/ai-providers/chat
Image Generation
Crear imágenes
/api/ai/image
Vision
Análisis de imágenes
/api/ai-providers/chat (con images[])
TTS
Audio generation
/api/tts, /api/elevenlabs/tts
10. Roadmap
✅ COMPLETADO (v2.7)
Fase 1 - Fundamentos
Fase 2 - Presets y Bloques Dinámicos
Fase 2.5 - Audiolibros Interactivos
Fase 2.6 - Aventura Interactiva
Fase 2.7 - Mejoras UX
Fase 2.8 - Generación IA para CYOA ✅
Fase 3.0 - Blog Studio & Audiobook Studio ✅
Blog Studio : Generación completa de artículos con IA
12 tipos de sección : hero, intro, highlight, quote, cards, steps, comparison, faq, stats, gallery, cta, conclusion
Modos de imagen : carousel, grid-2, grid-3, stack, single
Audiobook Studio : Pipeline profesional con TTS multi-proveedor
Visor público : viewer.html con soporte para blog, audiobook y PDF
AI Assistant : Chat contextual flotante con STT/TTS
Prompt Logger : Sistema de debugging para análisis de prompts
Selección de modelos : Groq, Google Gemini, DeepSeek, OpenAI, Anthropic
PDF con tablas premium : Estilos profesionales con gradientes y sombras
⏳ PENDIENTE
Fase 3.1 - Secuenciador de Video
11. Changelog
v3.0.0 (28 Enero 2026)
✨ Blog Studio : Generación completa de artículos con IA, 12 tipos de sección
✨ Audiobook Studio : Pipeline profesional con TTS multi-proveedor y visor interactivo
✨ AI Assistant : Chat contextual flotante con STT/TTS y acciones rápidas
✨ Visor público : /viewer con soporte para blog (carousel), audiobook y PDF
✨ Google Gemini : Integración de modelos gemini-2.0-flash, gemini-1.5-pro, gemini-1.5-flash
✨ Prompt Logger : Sistema de debugging para análisis y trazabilidad de prompts
✨ Selección de modelo IA : En diálogos de PDF, Blog y Audiobook
✨ PDF Tablas Premium : Estilos profesionales con gradientes, sombras y bordes redondeados
✨ Carousel en viewer : Navegación de imágenes con controles y dots
🔧 Fix modelo deprecado Groq (deepseek-r1-distill-llama-70b → llama-3.3-70b-versatile)
🔧 Fix alias AIAssistantModule para compatibilidad entre módulos
🔧 Fix template literals en Prompt Logger (escaped backticks)
🔧 Fix hero section usando título del artículo como fallback
🔧 Fix prompts de imagen usando contenido de sección específica
v2.9.3 (25 Enero 2026)
✨ Roles Adaptados por Preset : La IA adopta rol específico según tipo de sesión (Psicólogo, Abogado, etc.)
✨ Function Calling : 8 herramientas para contexto bajo demanda (get_dynamic_block, get_session_info, etc.)
✨ Cloud Storage R2 : Guardar y cargar sesiones en la nube con Cloudflare R2
✨ Interrupt Button : Botón para interrumpir respuesta de IA en Live Mode
✨ Model Thinking Display : Muestra razonamiento de la IA en acordeón colapsable
🔧 Fix audio doble en Gemini Live (solo reproduce en turnComplete)
🔧 Fix interrupt sin enviar mensaje inválido a Gemini
🔧 Fix contexto leyendo de DOM en lugar de window.PerspectiveApp
🔧 Actualización a modelo gemini-2.5-flash-native-audio-preview
v2.9.2 (24 Enero 2026)
✨ Chat IA como contexto de entrada : Historial de conversaciones disponible como fuente
✨ Formato diarizado : Mensajes con timestamp, speaker (👤/🤖) y tipo de input (texto/voz)
✨ UI en panel de contexto : Nueva sección "Historial Chat IA" junto a Documentos e Imágenes
✨ Toggle incluir/excluir : Checkbox para activar/desactivar uso del chat como contexto
✨ Preview de mensajes : Muestra últimos 4 mensajes como preview
✨ Integración en generación : chatHistoryContext se incluye en generateSummary() y bloques
🔧 Nuevas funciones: getChatContext(), hasMessages(), getMessageCount() en retrospective.js
🔧 Nueva sección HTML en index.html con UI de Historial Chat IA
🔧 Actualizado badge de contexto para incluir chat count
v2.9.1 (24 Enero 2026)
✨ Sistema de Exportación Profesional : 3 modos de exportación con selector de secciones
✨ PDF Profesional : window.print() con estilos elegantes, portada y TOC
✨ Libro Interactivo HTML : Tipografía Crimson Text, tema claro/oscuro, drop caps
✨ Markdown Export : Formato .md compatible con Obsidian/Notion
✨ Selector de Secciones : Elegir qué incluir (Acta, Psicología, Bloques, Chat, etc.)
✨ ExportModal.jsx : UI completa con preview y opciones de configuración
🔧 Nuevos servicios: pdfExportService.js, bookExportService.js
v2.9 (24 Enero 2026)
✨ Gemini 2.0 Live API : Conversación de voz bidireccional en tiempo real
✨ WebSocket directo : Conexión browser→Gemini (bypass Cloudflare para baja latencia)
✨ 8 voces disponibles : Aoede, Kore, Puck, Charon, Fenrir, Leda, Orus, Zephyr
✨ Sistema de contexto con prioridades : Acta(P2) → Psicología(P2) → Bloques(P3)
✨ Truncado inteligente : 60% inicio + 30% fin para contextos muy largos
✨ Tokens efímeros : Autenticación segura via /api/gemini/live-token
🔧 Nuevos archivos: useGeminiLive.js, GeminiLiveMode.jsx, live-token.js
v2.8 (24 Enero 2026)
✨ Generación IA completa para CYOA : Pipeline de 3 pasos para crear aventuras interactivas
✨ generateWorldContext() : Extrae mundo, personajes, tono y reglas del contenido fuente
✨ generateGraphStructure() : Crea estructura de nodos con ~8 escenas y múltiples finales
✨ generateAllNodesContent() : Genera narrativa en segunda persona para cada escena
✨ UI "🤖 Generar IA" : Dropdown en toolbar del Graph Builder con opciones de generación
🔧 Modularización: Código de generación IA contenido en interactive-story.js
v2.7 (24 Enero 2026)
✨ 31 presets organizados en 6 categorías
✨ Configuración por bloque : modelo y extensión independiente para cada bloque
✨ Sistema de tooltips con ? y explicaciones contextuales (z-index 99999)
✨ 4 nuevos presets Bienestar : Nutricionista, Fitness Coach, Mentor Académico, Interiorista
✨ 8 presets Tech/Business : TechDocs, Executive, Product, Marketing, Sales, HR, Investor, Board
✨ Auto-análisis de contexto : documentos e imágenes se analizan automáticamente al generar
✨ Generación flexible : funciona con audio, documentos, imágenes, o cualquier combinación
✨ Umbral inteligente : 13000 palabras para transcripciones, 13000 chars para documentos
✨ Invalidación de transcripción : al cambiar medios, re-transcribe desde 0
🐛 Fix import/export en móvil (Web Share API + label approach)
🐛 Fix Error 400 en bloques dinámicos (modelo inválido)
🐛 Fix handleAudioFiles → handleFiles en importMedia
🐛 Fix tooltip z-index (99999) para siempre quedar sobre otros elementos
v2.6 (23 Enero 2026)
✨ Import/Export medios como ZIP
✨ Auto-regeneración de audiolibro
✨ Preset Aventura Interactiva completo
🐛 Fix TTS con limpieza de emojis
v2.5 (22 Enero 2026)
✨ Audiolibros Interactivos con Human-in-the-Loop
✨ Graph Builder para CYOA
✨ Master Seed para consistencia visual