TH Chat Projekt 2/2 2025

TH Chat - Der Studienberater der TH Wildau


Logo TH ChatxLogo WSF

Häufig verlieren sich Studierende in der oftmals unübersichtlichen Webseitestruktur, um Informationen zu Lehrveranstaltungen, Bewerbungsfristen, Prüfungsordnungen und ähnlichen Themen zu finden. Dadurch werden Hochschulmitarbeiter mit E-Mails überflutet und die allgemeine Unzufriedenheit steigt. Im Rahmen der Wildauer Softwarefabrik haben wir ein Chatbot-System entwickelt, das Studierenden, Mitarbeitenden und Interessierten rund um die Uhr verlässliche Antworten auf ihre Fragen zur Hochschule liefern kann. Unser Chatbot soll schnelle und passende Antworten auf Basis der zugrundeliegenden Inhalte liefern und somit sowohl Studierenden als auch Mitarbeitern dabei helfen, problemlos an benötigte Informationen zu gelangen. Durch die Nutzung von Studien- und Prüfungsordnungen, Modulhandbüchern und dem offiziellen Stundenplan kann er gezielt Antworten generieren und somit innerhalb von Sekunden bei der Suche von Informationen helfen.



Herausforderungen für das Projekt



Commit HistoryVerrückte Antwort des LLM

Natürlich lief nicht alles von Anfang an rund.

Team & Zeitmanagement:

Es war unser erstes größeres Projekt mit sieben Personen. Gerade am Anfang war es nicht leicht einzuschätzen, wie viel in einen Sprint wirklich passt, wann die Tickets fertig sein müssen und wie viel jedes Teammitglied in zwei Wochen wirklich bearbeiten kann. Im zweiten Semester waren wir dann nur noch zu fünft. Das bedeutete: Aufgaben & Teamrollen neu verteilen, Verantwortlichkeiten klären und ursprüngliches Projektziel so anpassen, dass es realistisch bleibt.

Umgang mit LLMs & Deployment:

Mit lokal laufenden Sprachmodellen hatte kaum jemand von uns praktische Erfahrung. Prompting, Finetuning, sinnvolle Kontextbegrenzung; vieles war Try & Error und nahm mehr Zeit in Anspruch als gedacht. Selbst jetzt nach 2 Semestern ist das Endergebnis noch lange nicht perfekt. Auch das Deployment im Hochschulnetz war Neuland, nicht nur für uns, sondern teilweise auch für die Dozenten.

Projektumfang realistisch halten:

Im ersten Semester kam schnell kam die Frage auf: Was wollen wir alles implementieren, und was ist im gegebenen Zeitrahmen wirklich machbar? Fehlende Erfahrung sorgte vor allem in den ersten Wochen für einige lange Abende. Wir mussten lernen, Features bewusst zu priorisieren, Dinge auch mal wegzulassen und den Projektrahmen nicht zu sprengen. Auch jetzt haben wir noch viele Ideen, die wir gerne umgesetzt hätten.

Herangehensweise



Schnelle Themenfindung

Die Wahl des Themas erfolgte schnell. Das Thema passt fachlich, ist praxisnah und bietet genug technische Tiefe für zwei Semester. Von Seiten der Dozenten erfuhren wir, dass auch die Hochschule Interesse an der Umsetzung hätte. Somit war die finale Entscheidung einfach.

Wissensbasis aufbauen

Bevor wir richtig loslegten, nahmen wir uns bewusst genug Zeit, die Grundlagen zu klären: Wie funktionieren LLMs? Was ist RAG? Wie arbeiten Vektordatenbanken? So sind wir mit einem gemeinsamen Basisverständnis in die Entwicklungsphase gestartet.

Klare Aufteilung im Team

Wir haben das Team früh in drei Bereiche strukturiert: Backend, Frontend und DevOps. Innerhalb dieser Bereiche wurden die Aufgaben weiter unterteilt - z.B. Persistierung der Chats, QOL-Features, Vektordatenbank, Testing, UI-Design, etc. So hatte jeder einen klaren Verantwortungsbereich, und wir konnten parallel arbeiten, ohne uns ständig gegenseitig auszubremsen.

Scrum & Code Reviews

Wir haben Scrum nicht nur als Planungsmethode genutzt, sondern auch fürs Teambuilding. Regelmäßige Meetings haben geholfen, Probleme früh anzusprechen und Wissen zu teilen. Über GitLab-Code-Reviews haben wir Qualität gesichert und voneinander gelernt.

Zwei Phasen: Erst Proof of Concept, dann Skalierung

Im ersten Semester lag der Fokus klar auf einem funktionierenden Proof of Concept: Eine ausgewählte, überschaubare Datenbasis und begrenzte Funktionalität. Hauptsache, das System läuft stabil und liefert sinnvolle Antworten. Im zweiten Semester ging es dann ums Skalieren. Das Einlesen von rund 900 Hochschuldokumenten, das Deployment im Hochschulnetz sowie zusätzliche Features wie die Anbindung von Stundenplan und Campus-Karte sollten die Grundlage dafür bilden, dass unser Projekt nicht im Archiv der Hochschule verschwindet, sondern offiziell als Hochschulchatbot genutzt werden kann.

Herangehensweise

Lösung



Frontend

Als Grundlage für die Benutzeroberfläche haben wir ein modernes und zugleich schlankes Setup gewählt. Mit Hilfe des Web-Frameworks Next.js haben wir wichtige Features wie Kopier- und Exportfunktionen sowie eine Seitenleiste zur schnellen Navigation zwischen den einzelnen Chats implementiert, und orientierten uns am Design der bereits vorhandenen KI-Sprachmodelle.

Backend

Retrieval Augmented Generation (RAG)

Der Chatbot basiert auf dem Prinzip der Retrieval Augmented Generation (RAG): Dabei wird eine Nutzeranfrage zunächst in ein sogenanntes Vektor-Embedding, eine mathematische Repräsentation des Textes, umgewandelt und in einer Vektordatenbank mit zuvor gespeicherten Dokumenten und Webseiteninhalten abgeglichen. Relevante Textpassagen werden extrahiert und dem Sprachmodell als kontextuelle Basis zur Generierung der Antwort übergeben. So entstehen präzise und aktuelle Antworten, ohne dass das Modell selbst neu trainiert werden muss. Das Sprachmodell läuft dabei lokal auf dem Server des Hochschulrechenzentrums und ist über eine API erreichbar. Zur technischen Umsetzung haben wir Python genutzt.

Architektur

Informationsspeicherung in der Vektordatenbank

Die Speicherung der Informationen in der ChromaDB-Vektordatenbank erfolgt schrittweise:

  • Wir nutzen einen PDF-Reader bzw. Webseite-Scraper zum Extrahieren der Texte,
  • teilen diese Texte in inhaltlich zusammenhängende Paragraphen ("Chunks") auf und
  • speichern sie mit Hilfe eines Vektor-Embedding-Sprachmodells als mathematische Repräsentation in Form von Vektoren in der Datenbank.

Dadurch können wir die Infomationsgrundlage in Form der eingelesenen Dokumente bzw. Webseiteninhalte selbstständig festlegen und so bestimmen, welche Anfragen der Chatbot korrekt bearbeiten kann.

Vektor-Embedding

Antwortgenerierung

Für die Generierung der Antwort wird ein individualisierter Prompt genutzt, der nicht nur den aus der Vektordatenbank extrahierten Kontext enthält, sondern auch relevante vorherige Chatnachrichten. Auf diese Weise kann das Sprachmodell konsistente, verständliche und kontextuell passende Antworten liefern.

Datenspeicherung

Für die Verwaltung der Chatverläufe nutzen wir eine PostgreSQL-Datenbank, die Session-Verwaltung erfolgt mit Redis.

Testing

Um die Qualität des Chatbots zu verbessern, haben wir ein automatisiertes Testsystem mit pytest gebaut. Vordefinierte Fragen werden dabei automatisch gestellt und die Antworten mithilfe des LLMs mit Idealantworten verglichen und auf einer Skala von 1-5 bewertet. So konnten wir schnell sehen, ob neue Features die Antworten verbessern oder verschlechtern und gleichzeitig unseren Fortschritt messbar machen.

Finale Features



Über 900 integrierte Dokumente Inhalte aus offiziellen Hochschuldokumenten als Wissensbasis

Stundenplan-Anbindung Personalisierte Antworten basierend auf der angegebenen Seminargruppe

iCampus-Karte Räume und Mitarbeiterbüros direkt über den Chat auffindbar

Skalierbare Datenbasis Dokumente können flexibel hinzugefügt oder entfernt werden

Transparente Quellenangaben Alle verwendeten Dokumente sind direkt einsehbar und überprüfbar

Bewährte QOL-Features Sidebar mit allen Chats, Chats löschen, Nachrichten kopieren und weitere Komfortfunktionen

Aufbau der Webseite

Fazit

In nur zwei Semester haben wir ohne jegliche Vorkenntnisse einen funktionierenden Chatbot für die Hochschule entwickelt. TH Chat läuft stabil, verarbeitet große Datenmengen und liefert hilfreiche, kontextbezogene Antworten; genau das, was wir erreichen wollten. Perfekt ist das System natürlich nicht, aber für unser erstes Projekt in dieser Größenordnung sind wir mit dem Ergebnis mehr als zufrieden. Die Arbeit war nicht immer einfach, gerade technische Hürden, Abstimmungen im Team und Zeitdruck haben uns gefordert. Trotzdem hat das Projekt durchgehend Spaß gemacht. Wir konnten viel ausprobieren, Neues lernen und als Team zusammenwachsen. Natürlich hätten wir gerne noch mehr Features umgesetzt und noch weiter optimiert. Aber ein wichtiger Teil des Projekts war auch zu lernen, realistische Grenzen zu setzen und den Rahmen bewusst einzuhalten. Wir sind gespannt, was mit TH Chat in der Zukunft passiert und hoffen, dass euch TH Chat den Studienalltag etwas erleichtert.