GTUtor : système de discussion dynamique multi-sujets
GTUtor est un système de tutorat intelligent spécialement conçu pour les étudiants de l'Université technologique du Gujarat (GTU). Il combine la puissance de l'IA Gemini Pro de Google avec un système de connaissances basé sur des documents pour fournir des réponses précises et contextuelles sur plusieurs sujets.
Caractéristiques
- Prise en charge multi-sujets : créez et gérez plusieurs sujets avec des bases de connaissances indépendantes
- ? Intégration de documents : téléchargez des documents PDF ou fournissez des URL pour améliorer la base de connaissances
- Interface de chat intelligente : système de conversation dynamique avec suivi de l'historique
- ? Réponses contextuelles : combine la connaissance des documents avec les capacités de Gemini Pro
- Gestion de bases de données : outils intégrés pour gérer les bases de données documentaires pour chaque sujet
- ? Axé sur GTU : spécialement conçu pour le programme et les cours GTU
- ? Stockage persistant : enregistre automatiquement les historiques de discussion et les données du sujet
- ? Fonctionnalité de copie : copie facile des questions et des réponses
Installation
- Clonez le dépôt :
git clone https://github.com/pruthakjani5/GTUtor.git
cd gtutor
- Créez un environnement virtuel et activez-le :
python -m venv venv
source venv/bin/activate # On Windows: venvScriptsactivate
- Installez les dépendances requises :
pip install -r requirements.txt
- Créez un fichier
.env
à la racine du projet et ajoutez votre clé API Gemini :
GEMINI_API_KEY=your_api_key_here
Si vous avez besoin d'une nouvelle configuration sans la base de données d'essai et les discussions précédentes, supprimez le dossier "gtutor_data", l'exécution de app.py en créera un nouveau.
Dépendances requises
- rationalisé
- demandes
- pypdf
- google-génératifai
- chromadb
- python-dotenv
- fichier temporaire
- réduction
- presse-papiers
Usage
- Démarrez l'application Streamlit :
Accédez à l'application via votre navigateur Web (généralement à l' http://localhost:8501
)
Sélectionnez ou créez un sujet dans le menu déroulant
Téléchargez des documents PDF ou fournissez des URL PDF pour créer la base de connaissances sur le sujet.
Commencez à poser des questions dans l'interface de chat
Fonctionnalités en détail
Gestion des sujets
- Créer de nouveaux sujets
- Supprimer les sujets existants
- Effacer les bases de données thématiques
- Suivre le nombre de documents par sujet
Gestion des documents
- Téléchargez des fichiers PDF (jusqu'à 10 Mo)
- Ajouter des documents via une URL
- Extraction et segmentation automatiques du texte
- Stockage persistant des données du document
Interface de discussion
- Réponse aux questions en temps réel
- Suivi de l'historique des discussions
- Copier les questions et les réponses
- Supprimer des messages individuels
- Démarrer de nouvelles conversations
- Interface utilisateur améliorée avec des avatars d'utilisateur/bot
Génération de réponses
- Réponses contextuelles à l'aide de documents téléchargés
- Recours aux connaissances de Gemini Pro en cas de besoin
- Des réponses structurées et formatées
- Ton académique axé sur le programme GTU
Structure du projet
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
Mise en œuvre technique
- Traitement de documents : utilise
pypdf
pour l'extraction de texte PDF avec segmentation automatique - Base de données vectorielles : implémente
chromadb
pour un stockage et une récupération de texte efficaces - UI Framework : construit avec une interface Web
streamlit
réactive - Intégration de l'IA : utilise l'API Gemini Pro de Google pour des réponses intelligentes
- Persistance des données : stockage basé sur JSON pour les historiques de discussion et les données du sujet
- Prise en charge de Markdown : formatage de texte amélioré pour les réponses
Contribuer
Les contributions sont les bienvenues ! N'hésitez pas à soumettre une Pull Request.
Licence
Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.
Remerciements
- IA générative de Google pour l'API Gemini Pro
- Streamlit pour le framework Web
- ChromaDB pour l'implémentation de la base de données vectorielles
Soutien
Pour obtenir de l'aide et des questions, veuillez ouvrir un problème dans le référentiel GitHub ou contacter les responsables.