GTUtor: Dynamisches Chat-System mit mehreren Themen
GTUtor ist ein intelligentes Nachhilfesystem, das speziell für Studenten der Gujarat Technological University (GTU) entwickelt wurde. Es kombiniert die Leistungsfähigkeit von Googles Gemini Pro AI mit einem dokumentenbasierten Wissenssystem, um genaue, kontextbezogene Antworten zu mehreren Themen zu liefern.
Merkmale
- Unterstützung mehrerer Themen : Erstellen und verwalten Sie mehrere Themen mit unabhängigen Wissensdatenbanken
- ? Dokumentenintegration : Laden Sie PDF-Dokumente hoch oder stellen Sie URLs bereit, um die Wissensdatenbank zu erweitern
- Intelligente Chat-Schnittstelle : Dynamisches Konversationssystem mit Verlaufsverfolgung
- ? Kontextbezogene Antworten : Kombiniert Dokumentwissen mit den Funktionen von Gemini Pro
- Datenbankverwaltung : Integrierte Tools zur Verwaltung von Dokumentendatenbanken für jedes Thema
- ? GTU-fokussiert : Speziell auf GTU-Lehrpläne und -Kurse zugeschnitten
- ? Permanenter Speicher : Speichert automatisch Chatverläufe und Betreffdaten
- ? Kopierfunktion : Einfaches Kopieren von Fragen und Antworten
Installation
- Klonen Sie das Repository:
git clone https://github.com/pruthakjani5/GTUtor.git
cd gtutor
- Erstellen Sie eine virtuelle Umgebung und aktivieren Sie sie:
python -m venv venv
source venv/bin/activate # On Windows: venvScriptsactivate
- Installieren Sie die erforderlichen Abhängigkeiten:
pip install -r requirements.txt
- Erstellen Sie eine
.env
Datei im Projektstammverzeichnis und fügen Sie Ihren Gemini-API-Schlüssel hinzu:
GEMINI_API_KEY=your_api_key_here
Wenn Sie ein neues Setup ohne die Testdatenbank und frühere Chats benötigen, löschen Sie den Ordner „gtutor_data“. Wenn Sie app.py ausführen, wird ein neuer Ordner erstellt.
Erforderliche Abhängigkeiten
- streamlit
- Anfragen
- pypdf
- google-generativeai
- Chromadb
- python-dotenv
- temporäre Datei
- Abschlag
- Zwischenablage
Verwendung
- Starten Sie die Streamlit-Anwendung:
Greifen Sie über Ihren Webbrowser auf die Anwendung zu (normalerweise unter http://localhost:8501
).
Wählen Sie im Dropdown-Menü einen Betreff aus oder erstellen Sie einen
Laden Sie PDF-Dokumente hoch oder stellen Sie PDF-URLs bereit, um die Wissensdatenbank des Themas aufzubauen
Beginnen Sie, Fragen in der Chat-Oberfläche zu stellen
Funktionen im Detail
Themenmanagement
- Erstellen Sie neue Themen
- Vorhandene Themen löschen
- Übersichtliche Fachdatenbanken
- Verfolgen Sie die Anzahl der Dokumente pro Thema
Dokumentenmanagement
- PDF-Dateien hochladen (bis zu 10 MB)
- Dokumente über URL hinzufügen
- Automatische Textextraktion und -aufteilung
- Permanente Speicherung von Dokumentdaten
Chat-Schnittstelle
- Beantwortung von Fragen in Echtzeit
- Verfolgung des Chatverlaufs
- Kopieren Sie Fragen und Antworten
- Einzelne Nachrichten löschen
- Starten Sie neue Gespräche
- Verbesserte Benutzeroberfläche mit Benutzer-/Bot-Avataren
Antwortgenerierung
- Kontextbezogene Antworten mithilfe hochgeladener Dokumente
- Bei Bedarf auf das Wissen von Gemini Pro zurückgreifen
- Strukturierte und formatierte Antworten
- Akademischer Ton mit Schwerpunkt auf dem GTU-Lehrplan
Projektstruktur
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
Technische Umsetzung
- Dokumentenverarbeitung : Verwendet
pypdf
für die PDF-Textextraktion mit automatischer Aufteilung - Vektordatenbank : Implementiert
chromadb
für effizientes Speichern und Abrufen von Text - UI-Framework : Entwickelt mit
streamlit
für eine reaktionsfähige Weboberfläche - KI-Integration : Nutzt die Gemini Pro API von Google für intelligente Antworten
- Datenpersistenz : JSON-basierte Speicherung für Chatverläufe und Betreffdaten
- Markdown-Unterstützung : Verbesserte Textformatierung für Antworten
Mitwirken
Beiträge sind willkommen! Bitte senden Sie gerne einen Pull Request.
Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert – Einzelheiten finden Sie in der LIZENZ-Datei.
Danksagungen
- Google Generative AI für die Gemini Pro API
- Streamlit für das Webframework
- ChromaDB für die Vektordatenbank-Implementierung
Unterstützung
Für Unterstützung und Fragen öffnen Sie bitte ein Problem im GitHub-Repository oder wenden Sie sich an die Betreuer.