GTUtor: sistema de chat dinámico de múltiples temas
GTUtor es un sistema de tutoría inteligente diseñado específicamente para estudiantes de la Universidad Tecnológica de Gujarat (GTU). Combina el poder de Gemini Pro AI de Google con un sistema de conocimiento basado en documentos para proporcionar respuestas precisas y contextuales sobre múltiples temas.
Características
- Soporte para múltiples materias : cree y administre múltiples materias con bases de conocimiento independientes
- ? Integración de documentos : cargue documentos PDF o proporcione URL para mejorar la base de conocimientos
- Interfaz de chat inteligente : sistema de conversación dinámica con seguimiento del historial
- ? Respuestas sensibles al contexto : combina el conocimiento de documentos con las capacidades de Gemini Pro
- Gestión de bases de datos : herramientas integradas para gestionar bases de datos de documentos para cada tema.
- ? Enfocado en GTU : diseñado específicamente para el plan de estudios y los cursos de GTU
- ? Almacenamiento persistente : guarda automáticamente historiales de chat y datos de sujetos
- ? Funcionalidad de copia : copia sencilla de preguntas y respuestas
Instalación
- Clonar el repositorio:
git clone https://github.com/pruthakjani5/GTUtor.git
cd gtutor
- Crea un entorno virtual y actívalo:
python -m venv venv
source venv/bin/activate # On Windows: venvScriptsactivate
- Instale las dependencias requeridas:
pip install -r requirements.txt
- Cree un archivo
.env
en la raíz del proyecto y agregue su clave API de Gemini:
GEMINI_API_KEY=your_api_key_here
Si necesita una nueva configuración sin la base de datos de prueba y los chats anteriores, elimine la carpeta "gtutor_data", ejecutar app.py creará una nueva.
Dependencias requeridas
- iluminado
- solicitudes
- pypdf
- google-generativeai
- cromadb
- python-dotenv
- archivo temporal
- reducción
- portapapeles
Uso
- Inicie la aplicación Streamlit:
Acceda a la aplicación a través de su navegador web (normalmente en http://localhost:8501
)
Seleccione o cree un tema desde el menú desplegable
Cargue documentos PDF o proporcione URL de PDF para crear la base de conocimientos del tema.
Comience a hacer preguntas en la interfaz de chat
Características en detalle
Gestión de temas
- Crear nuevos temas
- Eliminar temas existentes
- Borrar bases de datos temáticas
- Seguimiento del recuento de documentos por tema
Gestión de documentos
- Cargar archivos PDF (hasta 10 MB)
- Agregar documentos a través de URL
- Extracción y fragmentación automática de texto
- Almacenamiento persistente de datos de documentos.
Interfaz de chat
- Respuesta a preguntas en tiempo real
- Seguimiento del historial de chat
- Copiar preguntas y respuestas
- Eliminar mensajes individuales
- Iniciar nuevas conversaciones
- UI mejorada con avatares de usuario/bot
Generación de respuestas
- Respuestas contextualizadas utilizando documentos cargados
- Recurrir al conocimiento de Gemini Pro cuando sea necesario
- Respuestas estructuradas y formateadas
- Tono académico con enfoque curricular GTU
Estructura del proyecto
gtutor/
├── app.py # Main application file
├── .env # Environment variables
├── requirements.txt # Project dependencies
└── gtutor_data/ # Data directory
├── dbs/ # Subject databases
├── chat_histories/ # Conversation histories
└── subjects.json # Subject list
Implementación técnica
- Procesamiento de documentos : utiliza
pypdf
para la extracción de texto PDF con fragmentación automática - Vector Database : implementa
chromadb
para un almacenamiento y recuperación de texto eficientes - Marco de interfaz de usuario : construido con
streamlit
para una interfaz web responsiva - Integración de IA : utiliza la API Gemini Pro de Google para respuestas inteligentes
- Persistencia de datos : almacenamiento basado en JSON para historiales de chat y datos de sujetos
- Compatibilidad con Markdown : formato de texto mejorado para las respuestas
Contribuyendo
¡Las contribuciones son bienvenidas! No dude en enviar una solicitud de extracción.
Licencia
Este proyecto tiene la licencia MIT; consulte el archivo de LICENCIA para obtener más detalles.
Expresiones de gratitud
- IA generativa de Google para la API Gemini Pro
- Streamlit para el marco web
- ChromaDB para la implementación de bases de datos vectoriales
Apoyo
Para soporte y preguntas, abra un problema en el repositorio de GitHub o comuníquese con los mantenedores.