Tutor-GPT es un compañero de aprendizaje impulsado por LLM desarrollado por Plastic Labs. Razona dinámicamente sobre sus necesidades de aprendizaje y actualiza sus propias indicaciones para brindarle el mejor servicio.
Nos apoyamos en experimentos de teoría de la mente y ahora es más que un simple tutor de alfabetización, es un compañero de aprendizaje expansivo. Lea más sobre cómo funciona aquí.
Tutor-GPT funciona con Honcho para crear representaciones de usuario sólidas y crear una experiencia personalizada para cada usuario.
La versión alojada de tutor-gpt
se llama Bloom como un guiño al problema Two Sigma de Benjamin Bloom.
Alternativamente, puedes ejecutar tu propia instancia del bot siguiendo las instrucciones a continuación.
El proyecto tutor-gpt se divide en varios módulos diferentes que dividen la lógica de backend para diferentes clientes.
agent/
: contiene la lógica central y la arquitectura de indicaciones.bot/
- esto contiene la implementación del bot de discordiaapi/
: contiene una interfaz API FastAPI que expone el agent/
lógicawww/
: contiene una interfaz web NextJS
que puede conectarse a la interfaz APIsupabase/
- contiene scripts SQL necesarios para configurar supabase local La mayor parte del proyecto se desarrolla utilizando Python a excepción de la aplicación NextJS. Para Python, uv
se usa para la gestión de dependencias y para la interfaz web usamos pnpm
.
Los módulos bot/
y api/
usan agent/
como dependencia y lo cargan como un paquete local usando uv
NOTA Más información sobre la interfaz web está disponible en www/README. Este archivo README contiene principalmente información sobre el backend de tutor-gpt y la lógica central del tutor.
Los módulos agent
, bot
y api
se administran mediante un espacio de trabajo uv
Esta sección explica cómo configurar un entorno Python para ejecutar Tutor-GPT. Esto le permitirá ejecutar el bot de Discord, ejecutar la aplicación FastAPI o desarrollar el código agent
.
Los siguientes comandos instalarán todas las dependencias necesarias para ejecutar el proyecto tutor-gpt. Recomendamos usar uv para configurar un entorno virtual para el proyecto.
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
Desde aquí, deberá ejecutar uv sync
en el directorio apropiado dependiendo de la parte del proyecto que desee ejecutar. Por ejemplo, para ejecutar la aplicación FastAPI, debe navegar hasta el directorio y volver a ejecutar la sincronización.
cd api/
uv sync
Debería ver un mensaje que indica que las dependencias se resolvieron y/o instalaron si aún no se instalaron antes.
Alternativamente (la forma recomendada), este proyecto se puede construir y ejecutar con Docker. Instale Docker y asegúrese de que se esté ejecutando antes de continuar.
La interfaz web se construye y ejecuta por separado del resto del código base. A continuación se muestran los comandos para construir el núcleo del proyecto tutor-gpt, que incluye las dependencias necesarias para ejecutar el bot de Discord o el punto final FastAPI.
git clone https://github.com/plastic-labs/tutor-gpt.git
cd tutor-gpt
docker build -t tutor-gpt-core .
De manera similar, para construir la interfaz web, ejecute los siguientes comandos
Cada una de las interfaces de tutor-gpt requiere diferentes variables de entorno para funcionar correctamente. Tanto el módulo bot/
como api/
contienen un archivo .env.template
que puede utilizar como punto de partida. Copie y cambie el nombre de .env.template
a .env
A continuación se muestran explicaciones más detalladas de las variables de entorno.
OPENAI_API_KEY
: la clave API para Openrouter que utiliza una API compatible con OpenAIMODEL
: el modelo de openrouter a utilizarSiguienteJS y fastAPI
URL
: el punto final de la URL para la aplicación frontend Next.js.HONCHO_URL
: la URL base para la instancia de Honcho que estás utilizandoHONCHO_APP_NAME
: el nombre de la aplicación honcho que se utilizará para Tutor-GPTExtras opcionales
SENTRY_DSN_API
: Sentry DSN para informes de errores opcionalesBOT_TOKEN
: este es el token del bot de discordia. Puede encontrar instrucciones sobre cómo crear un bot y generar un token en los documentos de pycord.THOUGHT_CHANNEL_ID
: este es el canal de discordia al que el bot puede enviar sus pensamientos. Cree un canal en su servidor y copie la ID haciendo clic derecho en el canal y copiando el enlace. El ID del canal es la última cadena de números del enlace. Opcionalmente, también puede utilizar los contenedores de Docker para ejecutar la aplicación localmente. A continuación se muestra el comando para ejecutar el bot de Discord localmente usando un archivo .env
que no está dentro del contenedor de la ventana acoplable. Tenga cuidado de no agregar su .env
en el contenedor de la ventana acoplable, ya que es inseguro y puede filtrar sus secretos.
docker run --env-file .env tutor-gpt-core python bot/app.py
Para ejecutar webui, debe ejecutar los contenedores FastAPI
del backend y NextJS
del frontend por separado. En dos instancias de terminal separadas, ejecute los siguientes comandos para ejecutar ambas aplicaciones. El comportamiento actual utilizará el archivo .env
en su repositorio local y ejecutará el 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
NOTA: el comando de ejecución predeterminado en el archivo acoplable para el núcleo ejecuta el backend FastAPI, por lo que puede ejecutar docker run --env-file .env tutor-gpt-core
Este proyecto es completamente de código abierto y agradece todas y cada una de las contribuciones de código abierto. El flujo de trabajo para contribuir es hacer una bifurcación del repositorio. Puede reclamar un problema en la pestaña de problemas o iniciar un nuevo hilo para indicar una característica o corrección de error en la que está trabajando.
Una vez que haya terminado su contribución, haga un PR dirigido a la sucursal staging
y será revisado por un gerente de proyecto. No dudes en unirte a nosotros en nuestro discordia para discutir tus cambios u obtener ayuda.
Una vez que sus cambios sean aceptados y fusionados en la etapa de preparación, se someterán a un período de prueba en vivo antes de ingresar a la main
Tutor-GPT tiene la licencia GPL-3.0. Obtenga más información en el archivo de licencia