College Q & A Chatbot
Dieses Projekt ist ein Q & A-Chatbot, mit dem Fragen zur Global Academy of Technology (GAT) unter Verwendung einer Kombination aus großer Sprachmodellen (LLMs), Text-Embeddings, Retrieval-Augmented-Generation (LAB) und schnellen technischen Techniken beantwortet werden. Der Chatbot kann sowohl Text- als auch Audioeingänge verarbeiten und relevante Antworten basierend auf dem Gesprächshistorie und den vorinstallierten Dokumenten bereitstellen.
Merkmale
- Text- und Audioeingabe : Akzeptiert Benutzeranfragen per Texteingabe oder Sprachaufzeichnung.
- Abruf-Augmented-Generation (RAG) : Verbessert die Antworten mit relevanten Informationen, die aus vorinstallierten Dokumenten abgerufen wurden.
- Kontextbewusste Antworten : Verwenden Sie die Konversationsgeschichte, um kohärente und kontextbezogene Antworten zu geben.
- Streamlit-Schnittstelle : Benutzerfreundliche Schnittstelle, die mit Streamlit erstellt wurde und Optionen für den Follow-up-Modus und die Anpassung der Suchtiefe enthält.
Installation
Klonen Sie das Repository
git clone https://github.com/mahadev0811/CollegeChatbot.git
cd CollegeChatbot
Erstellen Sie eine virtuelle Umgebung
python -m venv venv
source venv/bin/activate # On Windows use `venvScriptsactivate`
Abhängigkeiten installieren
pip install -r requirements.txt
Konfigurieren Sie den API -Schlüssel
- Erstellen Sie eine
config.json -Datei im Root -Verzeichnis mit Ihrem Google -API -Schlüssel:
{
"google_api_key" : " YOUR_GOOGLE_API_KEY "
}
Verwendung
Führen Sie die Anwendung aus
Interagieren Sie mit dem Chatbot
- Verwenden Sie das Texteingangsfeld oder den Audio -Rekorder, um Ihre Abfragen einzureichen.
- Passen Sie die Einstellungen mit den Seitenleistenoptionen an:
- Follow-up-Fragenmodus : Umschalten, um den Gesprächsverlauf für Antworten zu verwenden.
- Suchtiefe : Passen Sie die Anzahl der Absätze an, um in den Dokumenten nach relevanten Informationen zu suchen.
Projektstruktur
- ST_APP.PY : Hauptanwendungsskript.
- Einbettung_Generator.py : Skript zum Generieren von Einbetten aus der Datendatei.
- Webcrapper.ipynb : Jupyter Notebook zum Abkratzen von Textdaten von URLs, um die Rohdatendatei zu generieren.
- config.json : Konfigurationsdatei für API -Schlüssel.
- Anforderungen.txt : Liste der erforderlichen Python -Pakete.
- Data_generation/gat_raw.txt : RAW Scraped Data mit Informationen zu GAT.
- Data_Generation/gat_refined.txt : Human-überprüfte und bearbeitete Version der Rohdaten.
- gat_embeddings.pkl : Vorberechtigte Einbettungen für das vorinstallierte Dokument.
Daten generieren
Verwenden Sie das Notebook webscrapper.ipynb , um die anfängliche Rohdatendatei ( gat_raw.txt ) zu generieren. Dieses Notebook kratzt Textinhalte aus angegebenen URLs und formatiert es angemessen.
Einbettungen erzeugen
Verwenden Sie zum Generieren von Einbettungen aus Ihrer Datendatei das Skript betting_generator.py . Dieses Skript liest eine Textdatei mit den Daten, generiert Emetten mithilfe des Flagembedding -Modells und speichert die Einbettung als Gurkedatei.
Ausführen des Einbettungsgenerators
Bereiten Sie Ihre Datendatei vor
- Stellen Sie sicher, dass Ihre Datendatei (z. B. data_generation/gat_refined.txt) im richtigen Format mit Absätzen, die durch doppelte Newlines ( n n) getrennt sind, abgetrennt sind.
Führen Sie das Skript aus
Führen Sie das Skript für einbetting_generator.py mit dem Pfad zu Ihrer Datendatei als Argument aus:
python embedding_generator.py --data_file data_generation/gat_refined.txt
Das Skript generiert Emetten für die Absätze in der Datendatei und speichert sie als Pickle -Datei ( gat_embeddings.pkl ).
Screenshots
- Dieses Video zeigt den Chatbot in Aktion und beantwortet Fragen zu GAT:
Aufnahmen.MP4
Credits
- Flagembedding: benutzerdefiniertes Einbettungsmodell, das für Codierung von Abfragen verwendet wird.
- Streamlit: Open-Source-App-Framework für ML- und Datenwissenschaftsprojekte.
- Umarmende Gesichtstransformatoren: Bibliothek für hochmoderne NLP-Modelle.
- Google Cloud-Sprach-zu-Text-API: Service zum Konvertieren von Sprache in Text.
- Google Generative AI: Wird zum Generieren von Antworten verwendet.
Lizenz
Dieses Projekt ist unter der MIT -Lizenz lizenziert - Einzelheiten finden Sie in der Lizenzdatei.