Tutor-GPT est un compagnon d'apprentissage propulsé par LLM développé par Plastic Labs. Il raisonne de manière dynamique sur vos besoins d'apprentissage et met à jour ses propres invites pour vous servir au mieux.
Nous nous sommes penchés sur les expériences de théorie de l'esprit et c'est désormais plus qu'un simple tuteur d'alphabétisation, c'est un compagnon d'apprentissage complet. En savoir plus sur son fonctionnement ici.
Tutor-GPT est optimisé par Honcho pour créer des représentations d'utilisateurs robustes et créer une expérience personnalisée pour chaque utilisateur.
La version hébergée de tutor-gpt
s'appelle Bloom en clin d'œil au problème Two Sigma de Benjamin Bloom.
Vous pouvez également exécuter votre propre instance du bot en suivant les instructions ci-dessous.
Le projet tutor-gpt est divisé en plusieurs modules différents qui répartissent la logique backend pour différents clients.
agent/
- contient la logique de base et l'architecture d'invitebot/
- ceci contient l'implémentation du bot Discordapi/
- ceci contient une interface API FastAPI qui expose l' agent/
la logiquewww/
- cela contient une interface Web NextJS
qui peut se connecter à l'interface APIsupabase/
- contient les scripts SQL nécessaires à la configuration de la supabase locale La majeure partie du projet est développée en python à l'exception de l'application NextJS. Pour Python, uv
est utilisé pour la gestion des dépendances et pour l'interface Web, nous utilisons pnpm
.
Les modules bot/
et api/
utilisent tous deux agent/
comme dépendance et le chargent en tant que package local en utilisant uv
REMARQUE Plus d'informations sur l'interface Web sont disponibles dans www/README. Ce README contient principalement des informations sur le backend de tutor-gpt et la logique de base du tuteur.
Les modules agent
, bot
et api
sont tous gérés à l'aide d'un espace de travail uv
Cette section explique comment configurer un environnement Python pour exécuter Tutor-GPT. Cela vous permettra d'exécuter le bot Discord, d'exécuter l'application FastAPI ou de développer le code agent
.
Les commandes ci-dessous installeront toutes les dépendances nécessaires à l'exécution du projet tutor-gpt. Nous vous recommandons d'utiliser uv pour configurer un environnement virtuel pour le projet.
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
À partir de là, vous devrez ensuite exécuter uv sync
dans le répertoire approprié en fonction de la partie du projet que vous souhaitez exécuter. Par exemple, pour exécuter l'application FastAPI, vous devez accéder au répertoire et relancer la synchronisation.
cd api/
uv sync
Vous devriez voir un message indiquant que les dépendances ont été résolues et/ou installées si elles ne l'ont pas déjà été.
Alternativement (la méthode recommandée), ce projet peut être construit et exécuté avec Docker. Installez Docker et assurez-vous qu'il fonctionne avant de continuer.
Le frontal Web est construit et exécuté séparément du reste de la base de code. Vous trouverez ci-dessous les commandes permettant de créer le noyau du projet tutor-gpt, qui inclut les dépendances nécessaires pour exécuter soit le robot Discord, soit le point de terminaison FastAPI.
git clone https://github.com/plastic-labs/tutor-gpt.git
cd tutor-gpt
docker build -t tutor-gpt-core .
De même, pour créer l'interface Web, exécutez les commandes ci-dessous
Chacune des interfaces de tutor-gpt nécessite différentes variables d'environnement pour fonctionner correctement. Les modules bot/
et api/
contiennent un fichier .env.template
que vous pouvez utiliser comme point de départ. Copiez et renommez le .env.template
en .env
Vous trouverez ci-dessous des explications plus détaillées sur les variables d'environnement
OPENAI_API_KEY
— La clé API pour Openrouter qui utilise une API compatible OpenAIMODEL
— Le modèle openrouter à utiliserSuivantJS & fastAPI
URL
— Le point de terminaison de l'URL de l'application frontend Next.jsHONCHO_URL
— L'URL de base de l'instance de Honcho que vous utilisezHONCHO_APP_NAME
— Le nom de l'application honcho à utiliser pour Tutor-GPTExtras optionnels
SENTRY_DSN_API
— Le DSN Sentry pour le rapport d'erreurs facultatifBOT_TOKEN
— Il s'agit du jeton du bot Discord. Vous pouvez trouver des instructions sur la façon de créer un bot et de générer un jeton dans la documentation pycord.THOUGHT_CHANNEL_ID
— Il s'agit du canal Discord vers lequel le bot peut envoyer ses pensées. Créez une chaîne sur votre serveur et copiez l'ID en cliquant avec le bouton droit sur la chaîne et en copiant le lien. L'ID de la chaîne est la dernière chaîne de chiffres du lien. Vous pouvez également éventuellement utiliser les conteneurs Docker pour exécuter l'application localement. Vous trouverez ci-dessous la commande permettant d'exécuter le robot Discord localement à l'aide d'un fichier .env
qui ne se trouve pas dans le conteneur Docker. Veillez à ne pas ajouter votre .env
dans le conteneur Docker car cela n'est pas sécurisé et peut divulguer vos secrets.
docker run --env-file .env tutor-gpt-core python bot/app.py
Pour exécuter le webui, vous devez exécuter séparément les conteneurs backend FastAPI
et frontend NextJS
. Dans deux instances de terminal distinctes, exécutez les commandes suivantes pour exécuter les deux applications. Le comportement actuel utilisera le fichier .env
dans votre référentiel local et exécutera le bot.
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
REMARQUE : la commande d'exécution par défaut dans le fichier docker pour le noyau exécute le backend FastAPI afin que vous puissiez simplement exécuter docker run --env-file .env tutor-gpt-core
Ce projet est entièrement open source et accueille toutes les contributions open source. Le workflow pour contribuer consiste à créer un fork du référentiel. Vous pouvez signaler un problème dans l'onglet Problèmes ou démarrer un nouveau fil de discussion pour indiquer une fonctionnalité ou un correctif de bug sur lequel vous travaillez.
Une fois que vous avez terminé votre contribution, faites un PR pointé vers la branche staging
et il sera examiné par un chef de projet. N'hésitez pas à nous rejoindre sur notre discord pour discuter de vos modifications ou obtenir de l'aide.
Une fois vos modifications acceptées et fusionnées dans le staging, elles seront soumises à une période de tests en direct avant d'entrer en amont dans main
Tutor-GPT est sous licence GPL-3.0. En savoir plus sur le fichier Licence