Tutor-GPT ist ein LLM-gestützter Lernbegleiter, der von Plastic Labs entwickelt wurde. Es ermittelt dynamisch Ihre Lernbedürfnisse und aktualisiert seine eigenen Eingabeaufforderungen, um Ihnen bestmöglich zu dienen.
Wir haben uns auf Experimente zur Theorie des Geistes konzentriert und es ist jetzt mehr als nur ein Lese- und Schreiblehrer, es ist ein umfassender Lernbegleiter. Lesen Sie hier mehr darüber, wie es funktioniert.
Tutor-GPT wird von Honcho unterstützt, um robuste Benutzerdarstellungen zu erstellen und für jeden Benutzer ein personalisiertes Erlebnis zu schaffen.
Die gehostete Version von tutor-gpt
heißt Bloom in Anlehnung an Benjamin Blooms Two Sigma Problem.
Alternativ können Sie Ihre eigene Instanz des Bots ausführen, indem Sie die folgenden Anweisungen befolgen.
Das Tutor-GPT-Projekt ist auf mehrere verschiedene Module aufgeteilt, die die Backend-Logik für verschiedene Clients aufteilen.
agent/
– enthält die Kernlogik und die Eingabeaufforderungsarchitekturbot/
– dies enthält die Discord-Bot-Implementierungapi/
– enthält eine FastAPI-API-Schnittstelle, die den agent/
die Logik verfügbar machtwww/
– enthält ein NextJS
-Web-Frontend, das eine Verbindung zur API-Schnittstelle herstellen kannsupabase/
– enthält SQL-Skripte, die zum Einrichten der lokalen Supabase erforderlich sind Mit Ausnahme der NextJS-Anwendung wird der größte Teil des Projekts mit Python entwickelt. Für Python wird uv
für das Abhängigkeitsmanagement verwendet und für die Weboberfläche verwenden wir pnpm
.
Die Module bot/
und api/
verwenden beide agent/
als Abhängigkeit und laden es als lokales Paket mit uv
HINWEIS Weitere Informationen zur Webschnittstelle finden Sie unter www/README. Diese README-Datei enthält hauptsächlich Informationen über das Backend von tutor-gpt und die Kernlogik des Tutors
Die agent
, bot
und api
-Module werden alle über einen uv
Arbeitsbereich verwaltet
In diesem Abschnitt erfahren Sie, wie Sie eine Python-Umgebung für die Ausführung von Tutor-GPT einrichten. Dadurch können Sie den Discord-Bot ausführen, die FastAPI-Anwendung ausführen oder den agent
entwickeln.
Die folgenden Befehle installieren alle Abhängigkeiten, die zum Ausführen des tutor-gpt-Projekts erforderlich sind. Wir empfehlen die Verwendung von UV, um eine virtuelle Umgebung für das Projekt einzurichten.
git clone https://github.com/plastic-labs/tutor-gpt.git && cd tutor-gpt
uv sync # set up the workspace
source .venv/bin/activate # activate the virtual environment
Von hier aus müssen Sie dann uv sync
im entsprechenden Verzeichnis ausführen, je nachdem, welchen Teil des Projekts Sie ausführen möchten. Um beispielsweise die FastAPI-Anwendung auszuführen, müssen Sie zum Verzeichnis navigieren und die Synchronisierung erneut ausführen
cd api/
uv sync
Es sollte eine Meldung angezeigt werden, dass die Abhängigkeiten aufgelöst und/oder installiert wurden, sofern sie nicht bereits zuvor installiert wurden.
Alternativ (die empfohlene Methode) kann dieses Projekt mit Docker erstellt und ausgeführt werden. Installieren Sie Docker und stellen Sie sicher, dass es ausgeführt wird, bevor Sie fortfahren.
Das Web-Frontend wird getrennt vom Rest der Codebasis erstellt und ausgeführt. Nachfolgend finden Sie die Befehle zum Erstellen des Kerns des Tutor-GPT-Projekts, der die erforderlichen Abhängigkeiten zum Ausführen des Discord-Bots oder des FastAPI-Endpunkts enthält.
git clone https://github.com/plastic-labs/tutor-gpt.git
cd tutor-gpt
docker build -t tutor-gpt-core .
Führen Sie zum Erstellen der Weboberfläche auf ähnliche Weise die folgenden Befehle aus
Jede der Schnittstellen von tutor-gpt erfordert unterschiedliche Umgebungsvariablen, um ordnungsgemäß zu funktionieren. Sowohl das bot/
als auch api/
-Modul enthalten eine .env.template
Datei, die Sie als Ausgangspunkt verwenden können. Kopieren Sie die .env.template
und benennen Sie sie in .env
um
Nachfolgend finden Sie detailliertere Erläuterungen zu Umgebungsvariablen
OPENAI_API_KEY
– Der API-Schlüssel für Openrouter, der eine OpenAI-kompatible API verwendetMODEL
– Das zu verwendende Openrouter-ModellNextJS & fastAPI
URL
– Der URL-Endpunkt für die Frontend-Next.js-AnwendungHONCHO_URL
– Die Basis-URL für die Instanz von Honcho, die Sie verwendenHONCHO_APP_NAME
– Der Name der Honcho-Anwendung, die für Tutor-GPT verwendet werden sollOptionale Extras
SENTRY_DSN_API
– Der Sentry-DSN für optionale FehlerberichteBOT_TOKEN
– Dies ist das Discord-Bot-Token. Anweisungen zum Erstellen eines Bots und zum Generieren eines Tokens finden Sie in den Pycord-Dokumenten.THOUGHT_CHANNEL_ID
– Dies ist der Discord-Kanal, an den der Bot Gedanken ausgeben kann. Erstellen Sie einen Kanal auf Ihrem Server und kopieren Sie die ID, indem Sie mit der rechten Maustaste auf den Kanal klicken und den Link kopieren. Die Kanal-ID ist die letzte Zahlenfolge im Link. Sie können optional auch die Docker-Container verwenden, um die Anwendung lokal auszuführen. Unten finden Sie den Befehl zum lokalen Ausführen des Discord-Bots mithilfe einer .env
Datei, die sich nicht im Docker-Container befindet. Achten Sie darauf, Ihre .env
nicht im Docker-Container hinzuzufügen, da dies unsicher ist und Ihre Geheimnisse preisgeben kann.
docker run --env-file .env tutor-gpt-core python bot/app.py
Um die Web-Benutzeroberfläche auszuführen, müssen Sie die Backend- FastAPI
und die Frontend- NextJS
Container separat ausführen. Führen Sie in zwei separaten Terminalinstanzen die folgenden Befehle aus, damit beide Anwendungen ausgeführt werden. Das aktuelle Verhalten nutzt die .env
Datei in Ihrem lokalen Repository und führt den Bot aus.
docker run -p 8000:8000 --env-file .env tutor-gpt-core python -m uvicorn api.main:app --host 0.0.0.0 --port 8000 # FastAPI Backend
docker run tutor-gpt-web
HINWEIS: Der standardmäßige Ausführungsbefehl in der Docker-Datei für den Kern führt das FastAPI-Backend aus, sodass Sie einfach docker run --env-file .env tutor-gpt-core ausführen können
Dieses Projekt ist vollständig Open Source und begrüßt alle Open-Source-Beiträge. Der Workflow für den Beitrag besteht darin, einen Fork des Repositorys zu erstellen. Sie können auf der Registerkarte „Probleme“ ein Problem geltend machen oder einen neuen Thread starten, um auf eine Funktion oder Fehlerbehebung hinzuweisen, an der Sie arbeiten.
Sobald Sie Ihren Beitrag fertiggestellt haben, machen Sie eine PR, die auf den staging
Zweig gerichtet ist, und dieser wird von einem Projektmanager überprüft. Nehmen Sie gerne an unserem Discord teil, um Ihre Änderungen zu besprechen oder Hilfe zu erhalten.
Sobald Ihre Änderungen akzeptiert und in die Staging-Umgebung integriert wurden, werden sie einer Live-Testphase unterzogen, bevor sie in den Upstream in main
gelangen
Tutor-GPT ist unter der GPL-3.0-Lizenz lizenziert. Weitere Informationen finden Sie in der Lizenzdatei