Sistema de chatbot inteligente desarrollado para manejar consultas académicas y del sistema SRAT mediante múltiples agentes especializados que procesan automáticamente diferentes tipos de solicitudes.
- Arquitectura Multi-Agente: Sistema distribuido con tres agentes especializados que clasifican y procesan consultas automáticamente
- Integración Gmail: Sistema de notificaciones automáticas por correo electrónico para información sensible
- Acceso a Base de Datos: Conexión directa con MySQL para consultas académicas en tiempo real
- Interfaz Web: Aplicación Flask con interfaz de usuario moderna y responsiva
- Gestión de Contexto: Mantenimiento del historial de conversación durante toda la sesión
Propósito: Gestión de consultas relacionadas con el sistema de carga de temas académicos
Funcionalidades:
- Resolución de problemas de autenticación y acceso
- Asistencia con credenciales de usuario (legajo y contraseña)
- Consultas sobre horarios y asignaturas del sistema
- Generación automática de notificaciones por correo electrónico
Propósito: Procesamiento de consultas académicas sobre información de usuarios
Funcionalidades:
- Consulta de materias asignadas por número de legajo
- Obtención de información de carreras académicas
- Acceso a datos personales académicos
- Envío seguro de información sensible mediante correo electrónico
Propósito: Gestión de interacciones iniciales y orientación de usuarios
Funcionalidades:
- Procesamiento de saludos y bienvenidas
- Orientación sobre servicios disponibles en el sistema
- Respuestas a consultas generales no especializadas
- Python 3.8 o superior
- Servidor MySQL en funcionamiento
- Cuenta de Google con Gmail API configurada
- Cuenta de Groq para acceso al modelo de lenguaje
-
Navegación al directorio del proyecto
cd c:\python\Chatbot
-
Creación del entorno virtual
python -m venv .venv
-
Activación del entorno virtual
# Windows .\.venv\Scripts\activate # Linux/Mac source .venv/bin/activate
-
Instalación de dependencias
pip install -r requirements.txt
Crear archivo .env en el directorio raíz con la siguiente estructura:
GROQ_API_KEY=tu_api_key_de_groq
SECRET_KEY=tu_clave_secreta_flask
SQLALCHEMY_DATABASE_URI=mysql://usuario:password@localhost:3306/nombre_bd- Crear proyecto en Google Cloud Console
- Habilitar Gmail API en el proyecto
- Generar credenciales OAuth 2.0
- Descargar archivo
credentials.jsony ubicarlo en el directorio del proyecto - Ejecutar la aplicación una vez para generar automáticamente el archivo
token.json
cd c:\python\Chatbot
.\.venv\Scripts\activate
python main.pyEjecutar directamente main.py desde cualquier IDE compatible (VS Code, PyCharm, etc.)
- Acceder a la aplicación mediante navegador web en
http://localhost:5000 - Introducir consulta en el campo de texto del chat
- El sistema clasificará automáticamente el tipo de consulta
- El agente especializado correspondiente procesará y responderá la solicitud
Consultas SRAT:
- "No puedo ingresar al sistema"
- "¿Cómo cargo temas?"
- "Olvidé mi contraseña"
Consultas DATABASE:
- "¿Qué materias doy con legajo 50443?"
- "¿A qué carrera pertenezco?"
- "Mi legajo es 12345, ¿qué materias tengo?"
Consultas GENERAL:
- "Hola"
- "¿Qué servicios ofrecen?"
- "Buenos días"
El sistema requiere una base de datos MySQL con las siguientes tablas principales:
usuarios(legajo, email, información personal)cargos(relación usuario-asignatura)asignaturas(materias y carreras)asignaturas_materias(nombres de materias)asignaturas_carreras(nombres de carreras)
credentials.json: Credenciales OAuth 2.0 de Googletoken.json: Token de acceso (generado automáticamente)
https://mail.google.com/(lectura y envío de correos electrónicos)
- Manejo de Información Sensible: Los datos personales se transmiten exclusivamente por correo electrónico, nunca se muestran en la interfaz de chat
- Autenticación: Requiere credenciales válidas de Google para funcionamiento completo
- Conexión de Base de Datos: Utiliza conexión segura con MySQL
- Gestión de Credenciales: Las claves sensibles se almacenan en variables de entorno
Chatbot/
├── main.py # Aplicación principal Flask
├── requirements.txt # Dependencias Python
├── credentials.json # Credenciales Gmail API
├── token.json # Token de acceso Gmail
├── .env # Variables de entorno
├── templates/
│ └── index.html # Interfaz web
└── README.md # Documentación del proyecto
Solución: Verificar que el archivo credentials.json esté ubicado en el directorio del proyecto. El sistema utiliza rutas absolutas para garantizar funcionamiento desde cualquier ubicación.
Solución:
- Activar el entorno virtual:
.\.venv\Scripts\activate - Instalar dependencias:
pip install -r requirements.txt
Solución:
- Verificar que el servidor MySQL esté ejecutándose
- Comprobar la cadena de conexión en el archivo
.env - Validar credenciales de acceso a la base de datos
Solución:
- Verificar validez del archivo
credentials.json - Confirmar que Gmail API esté habilitada en Google Cloud Console
- Regenerar
token.jsoneliminando el archivo existente y ejecutando la aplicación nuevamente