MMGPT MinorMatch
Entdecke mithilfe eines Chatbots passende Minors für dich!
Spätestens im dritten Semester stehen alle MMP-Studierende vor der wichtigen Entscheidung, ihre Ergänzungsmodule festzulegen. Ich erinnere mich noch gut daran, wie herausfordernd es für mich war, mich zwischen den vielen verschiedenen Optionen zu entscheiden. Um kommende Studierende bei der Wahl ihrer Minors zu unterstützen, habe ich einen Chatbot entwickelt: MMGPT MinorMatch – Der erste Chatbot, der basierend auf individuellen Interessen, Stärken und Karrierezielen, Vorschläge für passende Minors erstellt und somit eine Orientierungshilfe bei der Wahl bietet.
(eli)
Herausforderungen
Ursprünglich hatte ich die Idee, ein eigenes Large Language Model (LLM) mit eigener Datenbasis und Embeddings zu entwickeln. Allerdings stellte sich heraus, dass dies (noch) eine zu komplexe Aufgabe war. Ich hatte den Wunsch, den Chatbot mit vielen Funktionen auszustatten. Doch während des Programmierprozesses merkte ich, dass die Erstellung eines solchen Bots nicht so einfach war, wie ich anfangs dachte. Aus diesem Grund musste ich den Ansatz vereinfachen und mich durch die Dokumentation von OpenAI Chat Completion API durcharbeiten sowie einige Tutorials auf YouTube konsultieren.
Ich habe das Programm so aufgebaut, dass ich über einen API-Schlüssel die Daten mithilfe eines Modells von OpenAI (gpt-3.5-turbo) abrufen kann. Vereinfacht gesagt, kann der MinorMatch Chatbot als ein Klon von ChatGPT mit einer eigenen Rollenzuweisung betrachtet werden. Hierzu möchte betonen, dass mir vollkommen bewusst ist, dass das von mir erstellte Programm nicht sicher ist. Da der API-Schlüssel offen in meinem Code enthalten ist, besteht die Gefahr, dass er geklaut und anderweitig benutzt wird. Um die Komplexität zu reduzieren und mich besser mit der Hauptthematik vertraut zu machen, entschied ich mich trotzdem dafür, ein einfaches Frontend-Projekt ausschliesslich mit JavaScript, HTML und CSS zu erstellen. Ausserdem wird eine Test API benutzt, die nur für einen Zeitraum von 30 Tagen funktioniert. Sollte der Chatbot nicht mehr funktionieren, habe ich eine Download-Möglichkeit auf Github bereitgestellt (https://github.com/burimFHGR/MinorMatch). Dazu muss man nur einen eigenen API Schlüssel erstellen und ihn im Skript «script.js» zuoberst eintragen.
Eine weitere Herausforderung bestand darin, eine Verknüpfung zu den Kurzbeschreibungen der Minor-Fächer herzustellen. Zunächst habe ich versucht, einen PDF-Reader einzurichten, um die relevanten Informationen zu extrahieren. Dies hat leider nicht funktioniert. Also habe ich mit einem JSON-File und einer Such- und Filterfunktion versucht, passende Übereinstimmungen mit dem eingegebenen Text zu finden. Obwohl dies funktioniert hat, waren die Ergebnisse zufällig und es wurden manchmal auch Minor-Fächer ohne Zusammenhang zugeordnet. Daher musste ich eine einfachere Lösung finden: Ich habe das JSON in ein JavaScript-Objekt umgewandelt und es zusammen mit einer Zeichenkette als Anhang im Input-Chat hinzugefügt. Das mag kompliziert klingen, ist es aber nicht. Einfach ausgedrückt, sendet man an ChatGPT Folgendes: {eigene Chatnachricht} + {alle Minor samt Beschreibung} + «suche einen Minor, der zu meinem Chat passt.». Dabei trat jedoch ein neues Problem auf: Die Kurzbeschreibungen der Minor-Fächer waren zu lang. Jeder eingegebene Text (Prompt) erfordert Tokens, für die man bezahlen muss. Das GPT-3.5-Turbo-Modell kann (nur) bis zu 4’096 Tokens verarbeiten. Deshalb musste ich die Kurzbeschreibungen auf das Wesentliche kürzen. Hierbei hat mir ChatGPT geholfen, die erforderlichen Anpassungen vorzunehmen. Insbesondere unterstützte mich ChatGPT auch bei der Erstellung des Typewriter-Effekts und war eine allgemeine Hilfe beim Debugging.
Reflexion
Bei der selbstkritischen Reflexion meiner Arbeit muss ich zugeben, dass es noch Raum für Verbesserungen gibt. Ein möglicher Verbesserungspunkt besteht darin, die Möglichkeit einzuführen, mehrere Chatnachrichten innerhalb einer Unterhaltung zu ermöglichen. Ebenso fehlt die Option, bereits geschriebene Chats in der Historie erneut aufrufen zu können. Schön wäre es auch, die Majorwahl sowie der Wahlpflichtmodule zu integrieren und eine eigene Datenbank aufzubauen, um eine regelmässige Aktualisierung aller relevanten Informationen zu ermöglichen. Dennoch bin ich äusserst zufrieden mit meinem Chatbot und den Fortschritten, die ich während meiner Arbeit damit erzielt habe. Obwohl ich noch am Anfang stehe, habe ich im Verlauf meiner Arbeit viel über Sprachmodelle gelernt. Die Möglichkeiten, die Sprachmodelle bieten, sind vielfältig und haben das Potenzial, viele Bereiche des menschlichen Lebens zu verbessern. Ich verfolge diese Entwicklungen mit grosser Aufmerksamkeit und bin gespannt, wie sich diese Technologie weiterentwickeln wird und welche neuen Anwendungen und Innovationen in der Zukunft entstehen werden.