Tutoring Machine
KI-basierter Moodle-Block zur Unterstützung von Lernenden.
Ein Block für Moodle, der eine KI-basierte Tutoring Machine zur Unterstützung von Lernenden bereitstellt. Die Tutoring Machine kann Fragen zum Kursinhalt basierend auf verschiedenen Kursressourcen beantworten.
Installation
- Entpacke das Plugin in das
/blocks/tutoring_machine-Verzeichnis Ihrer Moodle-Installation. - Navigiere zu „Website-Administration“ > „Mitteilungen“ > „Benachrichtigungen aktualisieren“.
- Folge dem Installationsprozess und bestätige die Installation.
Konfiguration
Das Plugin kann über die Blockeinstellungen in jeder Kursseite konfiguriert werden:
- Schalte den Bearbeitungsmodus ein.
- Füge den „Tutoring Machine“-Block hinzu.
- Klicken Sie auf das Zahnrad-Symbol und wähle „Tutoring Machine konfigurieren“.
- Passe die Einstellungen nach Bedarf an:
- Tutoring Machine-Anweisungen: Gebe spezielle Anweisungen für die Tutoring Machine ein, zum Beispiel: Gebe keine Lösungen vor, sondern verweise auf das Material, in dem die Lösung auf die gestellte Frage zu finden ist.
- Willkommensnachrichten: Lege Begrüßungstexte fest – inklusive einer optionalen Analytics-Variante –, damit Lernende direkt verstehen, welche Rolle der Bot übernimmt.
- Kontextweitergabe: Schalte explizit frei, ob Kursmaterialien überhaupt an den KI-Anbieter übertragen werden dürfen. Erst danach lassen sich einzelne Aktivitäten selektiv einbeziehen.
- Willkommensnachrichten: Lege Begrüßungstexte fest – inklusive einer optionalen Analytics-Variante –, damit Lernende direkt verstehen, welche Rolle der Bot übernimmt.
- Kontextweitergabe: Schalte explizit frei, ob Kursinhalte überhaupt an den KI-Anbieter übertragen werden dürfen. Erst danach lassen sich einzelne Aktivitäten selektiv einbeziehen.
- KI-Modell-Einstellungen: Wähle das Modell aus, dass für deine Aufgabe im Kurs geeignet ist
- Darstellung: Wähle die Hauptfarbe für die Benutzeroberfläche
- Kontext: Wähle, welche Kursressourcen als Kontext verwendet werden sollen:
- Textseiten
- Glossare
- H5P-Aktivitäten
- PDF-Dokumente
- Internetsuche (für Fragen, die nicht durch Kursinhalte beantwortet werden können) Quellen, die nicht ausgewählt werden, werden auch nicht in den Kontext einbezogen, Die Tutoring Machine gibt dann die Antwort, dass dazu keine Informationen im Kurs gefunden werden konnten und die Referent*innen befragt werden müssen.
- Lehr-Analysen: Wenn die Lehr-Analysen aktiviert werden, werden alle Prompts der Teilnehmenden gespeichert und in einem für die Referentinnen zugänglichen Analyse-Dashboard ausgewertet, bzw. angezeigt. Der Willkommensprompt weist die Teilnehmenden darauf hin, dass ihre Eingaben gespeichert und den Referentinnen zugänglich gemacht werden.
- Prompt-Empfehlungen: Wenn aktiviert, wird ein weiterer Button angezeigt, mit dem den Teilnehmenden Prompt-Empfehlungen für die Nutzung der Tutoring Machine vorgeschlagen werden. Die können ausgewählt und abgeschickt werden. Um zu verschiedenen Kategorien Prompt-Empfehlugnen zu machen kann eine Raute vorausgeschickt werden. Beispiel: #Anfänger Wie alt ist Einstein geworden? Wann ist Einstein geboren? #Forgeschrittene Wie alt ist Watts geworden? Wann ist Watts geboren?
Globale Einstellungen
Globale Einstellungen für die Tutoring Machine können unter „Website-Administration“ > „Plugins“ > „Blöcke“ > „Tutoring Machine“ konfiguriert werden:
- Assistantname: Der Name, der im Chat-Interface angezeigt wird
- Kurskontext standardmäßig teilen: Voreinstellung, ob neue Blöcke Kursmaterialien automatisch an die KI weitergeben oder zunächst lokal behalten.
- Domain-Whitelist für Links: Nur Domains aus dieser Liste werden für externe Kontextlinks abgefragt.
- robots.txt respektieren: Steuert, ob der Linkcrawler Hinweise aus robots.txt beachtet und gesperrte Pfade auslässt.
- Crawler-User-Agent: HTTP User-Agent, unter dem der Linkcrawler auftritt.
- Link-Aktualisierungsintervall: Legt fest, wie lange gecachte Link-Inhalte gültig bleiben, bevor sie erneut geladen werden.
- OpenAI API-Schlüssel: Dein OpenAI API-Schlüssel für die Verbindung mit OpenAI-Modellen
- Google API-Schlüssel: Dein Google API-Schlüssel für die Verbindung mit Gemini-Modellen
- Standard-Modell: Das zu verwendende Standard-KI-Modell im Format „provider:model“
- Unterstützte OpenAI-Modelle: gpt-5, gpt-5-mini, gpt-5-nano und weitere
- Unterstützte Google-Modelle: gemini-1.5-pro, gemini-1.5-flash, gemini-pro
Unterstützte Kursressourcen
Die Tutoring Machine kann folgende Kursressourcen als Kontext verwenden:
- Textseiten (Moodle Page-Aktivitäten)
- Glossare und deren Einträge
- H5P-Aktivitäten (wenn installiert)
- PDF-Dokumente (mit automatischer Textextraktion)
Sicherheitsfunktionen
Die Tutoring Machine implementiert folgende Sicherheitsfunktionen:
- Eingabevalidierung: Alle Benutzereingaben werden geprüft und bereinigt
- CSRF-Schutz: Verhinderung von Cross-Site Request Forgery durch Session-Key-Validierung
- Rate-Limiting: Begrenzung auf 30 Anfragen pro Stunde pro Benutzer
- XSS-Schutz: Bereinigung von HTML-Inhalten zur Vermeidung von Cross-Site-Scripting
- Zugriffskontrolle: Prüfung der Benutzerberechtigungen
Chat-Verlauf & Sitzungen
- Chatverläufe und UI-Zustände werden clientseitig pro Kurs und Blockinstanz gespeichert. Beim Wechsel in andere Kurse oder das Dashboard startet immer eine frische Unterhaltung.
- Legacy-Schlüssel in
localStoragewerden automatisch bereinigt, damit bestehende Installationen ohne manuelles Eingreifen auf das neue Scoped-Storage-Verhalten umstellen.
Technische Anforderungen
- PHP 8.2 oder höher
- Moodle 4.1 oder höher
- OpenAI API-Schlüssel oder Google Gemini API-Schlüssel
- Für PDF-Textextraktion (mindestens eine der folgenden Optionen):
- pdftotext (empfohlen, Teil von Poppler-Utils)
- Ubuntu/Debian:
apt-get install poppler-utils - CentOS/RHEL:
yum install poppler-utils - macOS:
brew install poppler
- Ubuntu/Debian:
- Alternative PHP-Bibliotheken:
- Smalot/PdfParser:
composer require smalot/pdfparser - Spatie/PdfToText:
composer require spatie/pdf-to-text
- Smalot/PdfParser:
- pdftotext (empfohlen, Teil von Poppler-Utils)
API-Test-Tools
Zur Überprüfung der API-Verbindungen stehen zwei Test-Tools zur Verfügung:
Kommandozeilen-Test
Der Kommandozeilen-Test kann über die Moodle-Wurzel ausgeführt werden:
php blocks/tutoring_machine/api_test.php [provider]
Wobei [provider] einer der folgenden Werte sein kann:
openai– Test nur für OpenAI APIgoogle– Test nur für Google Gemini APIall– Test für alle konfigurierten APIs (Standard)
Die Ergebnisse werden sowohl in der Konsole ausgegeben als auch in einer Logdatei im Verzeichnis blocks/tutoring_machine/logs/ gespeichert.
Web-basierter Test
Der web-basierte Test kann über folgende URL aufgerufen werden:
https://ihre-moodle-url/blocks/tutoring_machine/api_test_web.php
Dieser Test bietet eine benutzerfreundliche Oberfläche zur Überprüfung der API-Verbindungen und ist nur für Administratoren im Entwicklungsmodus verfügbar.
Unterstützte Sprachen
- Englisch
- Deutsch
- Deutsch Du-Form
Caching-System
Die Tutoring Machine nutzt ein umfassendes Caching-System, um die Leistung zu verbessern und die Anzahl der API-Aufrufe zu reduzieren:
- PDF-Caching: Extrahierte PDF-Inhalte werden in der Datenbank gespeichert (TTL: 1 Woche)
- Kursinhalt-Caching: Vollständiger extrahierter Kurskontext wird im Moodle Cache gespeichert (TTL: 12 Stunden)
- Ressourcen-Caching: Einzelne Ressourcen (Seiten, Glossare, H5P) werden separat gecacht (TTL: 24 Stunden)
- Automatische Cache-Invalidierung: Cache-Einträge werden automatisch ungültig, wenn Kursinhalte aktualisiert werden
Dieses Caching-System reduziert die Verarbeitungszeit und verbessert die Reaktionsfähigkeit der Tutoring Machine erheblich.








