Das Thema Wissensmanagement beschäftigt mich bereits seit dem ich als Junglehrer ständig den Informationen nachlaufen musste und später andere Junglehrer dabei beobachtete, wie sie ihre Zeit damit verschwendeten mit Aufgaben, welche sie sich hätten sparen können, wenn sie nur die richtigen Informationen auf einfache Weise zugänglich hätten.
Eine Wissendatenbank ist nicht einfach ein Datensilo, wo man alles einfach reinwirft. Die Daten werden fein säuberlich strukturiert und gewartet. Eine Lehrperson mit wenig Hintergrundwissen soll damit in der Lage sein, die Informationen auch dann zu finden, wenn sie nicht so genau weiss, wonach sie sucht.
Für zwei Schulen war und bin ich beteiligt beim Aufbau einer solchen Wissensdatenbank. Im Rahmen meiner CAS PICTS Abschlussarbeit in 2019 habe ich die nötigen Grundlagen auch auf basis wissenschaftlicher Literatur untersucht
In meinem Fall habe ich WordPress als Basis verwendet. Dies unter anderem, weil WordPress als Plattform breit verwendbar und skalierbar ist. Wir schrieben allerlei Artikel zu technischen Themen, welche wir kategorisierten und verschlagworten. Neben den Suchwörtern gibt es auch eine Volltextsuche, welche bereits verhältnismässig gute Resultate liefert.

Der freundliche Helfer
Der nächste Schritt ist nun aber, einen Chatbot zu erstellen, welcher alle Inhalte der Webseite kennt und der Lehrperson praktisch wie ein Mensch helfen kann. Hier kommt AI-Engine ins Spiel. Ein WordPress Plugin, welches an die API von OpenAI angeschlossen wird. Das Plugin unterstützt zudem Embeddings und Finetuning. Mit Embeddings können Inhalte aus der Webseite automatisch für den Chatbot zur Verfügung gestellt werden.
Im ersten Schritt werden die einzelnen WordPressartikel einem Embeddingmodell gefüttert und für die anschliessende wiederverwendung angepasst. Dazu verwende ich den Prompt:
Rewrite in German without adding information and without leaving out information. Ignore images and shortcodes in [ ]. Note {URL} at the end of your response. If you cannot meet these requirements, please leave a blank response
{CONTENT}
Dieser neu geschriebene Text wird in einer Datenbank gespeichert und anstelle des originalen Artikels verwendet. Entscheidend ist, dass der Artikel auch die URL noch enthält.
Den Chatbot habe ich folgendermassen konfiguriert
- Modell: GPT4o mini (Feb 2025, kostengünstig und sehr gut geeignet für diese Aufgabe)
- Temperatur: 0.1 (0 führt dazu, dass intern die Temperatur bis zu 0.5 gehen kann)
- Kontext: Du bist ein Webseitenchatbot und unterstützt die Benutzer bei der Suche nach Informationen. Verwende aussschliesslich die untenstehenden Informationen für deine Antwort. Sollten die Informationen nicht geeignet sein, um die Antwort zu erstellen, gib als Antwort „Ich habe keine passenden Artikel zu dem Thema erhalten“. Schreibe kurze und klare Antworten. Gib zum Schluss deiner Antwort die Artikelquellen an, dessen Informationen in der Antwort vorkommen aber notiere nur Artikelquellen, welche unten auch notiert sind.
- Embeddings (Bei Chatbot): Angabe der eingerichteten Vektordatenbank. AI-Engine fügt nach der Frage seitens Benutzer passende Artikel ein.
- Embeddings Settings: Minimum Score: 75, Max Embeddings: 10
Mit dem Kontext und den Embeddings musste ich viel herumprobieren. Der Erfolg hängt vom Kontext aber auch sehr vom verwendeten Sprachmodell ab. Du kannst also nicht davon ausgehen, dass diese Einstellungen mit einem anderen Sprachmodell genau gleich funktionieren
Wenn die Frage des Benutzers sehr allgemein gestellt wird oder relevante informationen in vielen Artikeln enthalten ist, muss max embeddings höher sein sein damit die richtige Quelle darin sicher vorkommt. Allerdings muss man aufpassen, da das Sprachmodell ungenauer wird, je mehr Embeddings verwendet werden. Hier gilt also: So wenig wie möglich aber ohne relevante Informationen abzuschneiden
Vektordatenbank
Als Vektordatenbank benötigt AI-Engine noch einen API Key von Pinecone. Die Basisversion einer Datenbank ist kostenlos, das Problem dabei ist aber noch, dass sie nach 7 Tagen Inaktivität deaktiviert wird. Wenn der Chatbot also nicht genutzt wird, werden die Artikeldaten unbrauchbar und man muss die Datenbank nochmals neu erstellen. Gerade zur Anfangsphase kann es mal passieren dass zuwenig läuft. Ein neuer Durchlauf ist allerdings, weil weitgehend automatisch, kein Weltuntergang.
Nun sollte der Chatbot jeweils auf die Fragen der Benutzer mit Daten aus der Webseite Antworten. Er halluziniert noch immer, wenn die Fragen nicht beantwortet werden können, gibt dann aber meist als Quelle an, dass die Antwort von ihm erfunden wurde.
Kosten:
Embeddings sind nur mit der Pro Version des Plugins (75USD/Jahr) möglich. Zudem fallen Kosten an für die Nutzung des Sprachmodells, diese sind aber vergleichsweise tief, abhängig vom verwendeten Sprachmodell. Die Gratisoption von Pinecone reicht derzeit aus für mein Projekt. Mittlerweile gibt es auch akzeptable Preise für Kleinprojekte mit etwas mehr Anspruch.
Hier noch ein Einblick in das Plugin und in meine Implementierung


