📚 Manual de Usuario

Generador de Test Automático con IA

🖥️ Introducción

El Generador de Test es una aplicación innovadora que utiliza inteligencia artificial para crear preguntas de opción múltiple automáticamente a partir de documentos PDF. El sistema extrae texto de PDFs, genera preguntas relevantes sobre el contenido y las almacena en una base de datos MongoDB para su posterior uso en cuestionarios interactivos.

Características principales:

📁 Estructura del Proyecto

Archivos principales:

⚙️ Requisitos del Sistema

Hardware Mínimo

Software Requerido

Bibliotecas de Python

🚀 Instalación

1. Instalar MongoDB

Configure MongoDB en su sistema antes de continuar.

Linux (Ubuntu/Debian):

sudo apt update
sudo apt install mongodb
sudo systemctl start mongodb
sudo systemctl enable mongodb

Windows:

Descargue e instale desde el sitio oficial de MongoDB: mongodb.com

macOS:

brew install mongodb/brew/mongodb-community
brew services start mongodb/brew/mongodb-community

2. Instalar Ollama

Acceda a ollama.ai para descargar e instalar la plataforma.

Después de instalar, descargue los modelos necesarios:

ollama pull llama3.1:8b
ollama pull phi3:3.8b
ollama pull gemma3:4b_40K

3. Configurar Entorno Python

python -m venv generador_test_env
source generador_test_env/bin/activate  # Windows: generador_test_env\Scripts\activate

pip install PyPDF2 requests pymongo PySide6

🎮 Uso de la Aplicación

Launcher Principal

Para facilitar el uso, se incluye un launcher con GUI:

python launcher.py

Seleccione la aplicación deseada:

Generador de Preguntas (1-alimentar.py)

  • Ejecute la aplicación desde el launcher o directamente:
  • python 1-alimentar.py
  • Seleccione un archivo PDF usando el botón "Seleccionar"
  • Configure los parámetros:
  • Presione "Generar Preguntas"
  • Espere a que el proceso termine (ver progreso en la barra y logs)
  • Nota: El sistema divide el PDF en fragmentos para asegurar preguntas contextuales. Cada fragmento genera preguntas específicas sobre su contenido.

    Cuestionario Interactivo (2-cuestionario.py)

  • Ejecute la aplicación desde el launcher o directamente:
  • python 2-cuestionario.py
  • Presione "Cargar Colecciones" para ver las bases de preguntas disponibles
  • Seleccione una colección del menú desplegable
  • Responda cada pregunta seleccionando una opción y presionando "Responder"
  • Revise sus resultados al finalizar
  • 📊 Detalles Técnicos

    Procesamiento de PDFs

    El sistema utiliza PyPDF2 para extraer texto. Algunos PDFs pueden no contener texto extraíble si están basados únicamente en imágenes.

    Generación de Preguntas con IA

    Las preguntas se generan mediante un prompt estructurado enviando a Ollama:

    • Cada fragmento genera exactamente 3 opciones por pregunta
    • Una respuesta es correcta, las demás distractores plausibles
    • Preguntas específicas al contenido, no generales

    Almacenamiento en MongoDB

    Base de Datos Colección Documentos
    preguntas [nombre_pdf] pregunta, opciones[], correct_index, _id

    Modelos Disponibles

    Modelos preconfigurados en modelos.dat:

    • llama3.1:8b - Modelo predeterminado, equilibrado
    • phi3:3.8b - Modelo ligero
    • gemma3:4b_40K - Modelo especializado en contenido largo

    🔧 Solución de Problemas

    Problema Causa Solución
    Error de conexión con MongoDB Base de datos no está ejecutándose Verificar que MongoDB esté activo en localhost:27017
    Error de conexión con Ollama Servicio Ollama no iniciado o modelo no descargado Ejecutar ollama serve y descargar modelo requerido
    PDF sin texto extraíble Documento basado en imágenes Usar PDFs con texto incrustado o convertir a texto
    preguntas sin sentido Fragmento muy pequeño o contenido complejo Ajustar tamaño de fragmento o revisar contenido del PDF

    🤝 Contribución

    1. Realice un fork del repositorio
    2. Cree una rama para su característica (git checkout -b feature/nueva-funcionalidad)
    3. Realice commits de sus cambios (git commit -am 'Añade nueva funcionalidad')
    4. Envíe los cambios (git push origin feature/nueva-funcionalidad)
    5. Cree un Pull Request

    📄 Licencia

    Este proyecto está bajo la Licencia MIT. Consulte el archivo LICENSE para más detalles.

    📞 Soporte

    Para soporte técnico o reportar problemas, cree un issue en el repositorio de GitHub del proyecto.