Versión del Documento: 1.0
Fecha: 26 de Julio, 2025
Proyecto: Desarrollo de un agente PHP para la creación automática de presentaciones web interactivas utilizando la API de Google Gemini.
Modificar el script agente_creador_presentacion.php
para que genere presentaciones web interactivas y de múltiples diapositivas. El agente utilizará la API de Google Gemini para procesar texto de una base de datos, estructurarlo en un formato de presentación y enriquecerlo con elementos visuales y de contenido adicionales.
Capa | Componente | Descripción |
---|---|---|
Frontend | HTML5 / CSS3 | Estructura y estilo base de la presentación final. |
JavaScript (ES6) | Lógica de interactividad de la presentación. | |
Reveal.js | Librería principal para crear la experiencia de presentación tipo "PowerPoint". | |
Font Awesome | Librería de íconos para elementos visuales. | |
Backend | PHP 8+ | Lenguaje principal para la lógica del agente. |
MySQL / MariaDB | Base de datos para almacenar la información fuente. | |
Servicios Externos | API Google Gemini | Servicio de IA para la generación de contenido y estructura. |
Se requiere añadir un nuevo campo a la tabla subtemas_curso
para almacenar el contenido base de la presentación.
ALTER TABLE `subtemas_curso`
ADD `contenido_presentacion` TEXT NULL DEFAULT NULL
COMMENT 'Contenido fuente completo para la generación de presentaciones IA'
AFTER `charla`;
El agente funcionará como un script de backend que se invoca vía AJAX. Su flujo de trabajo ha sido rediseñado para ser modular y robusto.
subtema_id
vía $_GET
. Valida que sea un entero positivo.-- Consulta SQL conceptual
SELECT
sc.titulo,
sc.contenido_presentacion,
p.nombre,
p.paterno,
p.materno,
p.especialidad,
p.foto_perfil
FROM
subtemas_curso sc
JOIN
profesores p ON sc.profesor_id = p.id
WHERE
sc.id = ?;
presentaciones/presentacion_subtema_{subtema_id}.html
.El agente seguirá esta secuencia para generar el contenido:
El archivo HTML final debe incluir las siguientes dependencias desde un CDN en su <head>
.
<!-- Framework Reveal.js -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/4.6.1/reveal.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/4.6.1/theme/black.min.css" id="theme">
<!-- Iconos Font Awesome -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
<!-- Tipografía Google Fonts -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@700&family=Open+Sans:wght@400;600&display=swap" rel="stylesheet">
Y los scripts al final del <body>
:
<script src="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/4.6.1/reveal.js"></script>
<script>
Reveal.initialize({
hash: true,
plugins: [] // Aquí se podrían añadir plugins de Reveal.js si se desea
});
</script>
Se añadirá un bloque <style>
para personalizar el tema.
#2c3e50
(Azul oscuro).#ecf0f1
(Blanco roto).#3498db
(Azul claro).position: fixed
) en la parte superior.
logo/isotipo.png
.El proceso para añadir imágenes a la presentación será manual inicialmente, para garantizar control y calidad.
<img>
en el HTML con una ruta predefinida.<img src="presentacion/imagenes/123/imagen_diapo_5.jpg" alt="Un diagrama de flujo explicando el ciclo de vida de un proyecto.">
El script agente_creador_presentacion.php
deberá tener una sección de configuración al inicio para facilitar ajustes futuros.
Parámetro | Variable Sugerida | Valor Ejemplo |
---|---|---|
API Key de Google Gemini | GOOGLE_AI_API_KEY |
"AIzaSy..." |
Ruta del Logo | $logo_path |
"../logo/isotipo.png" |
Ancho del Logo | $logo_width |
"150px" |
Margen de la Cabecera | $header_padding |
"15px" |