Tutor-GPT é um companheiro de aprendizagem desenvolvido pela Plastic Labs. Ele raciocina dinamicamente sobre suas necessidades de aprendizado e atualiza seus próprios prompts para melhor atendê-lo.
Nós nos apoiamos em experimentos de teoria da mente e agora ele é mais do que apenas um tutor de alfabetização, é um companheiro de aprendizagem expansivo. Leia mais sobre como funciona aqui.
Tutor-GPT é desenvolvido pela Honcho para construir representações de usuário robustas e criar uma experiência personalizada para cada usuário.
A versão hospedada do tutor-gpt
é chamada Bloom como uma homenagem ao Problema Dois Sigma de Benjamin Bloom.
Alternativamente, você pode executar sua própria instância do bot seguindo as instruções abaixo.
O projeto tutor-gpt é dividido entre vários módulos diferentes que dividem a lógica de backend para diferentes clientes.
agent/
- contém a lógica central e a arquitetura de promptsbot/
- contém a implementação do discord botapi/
- contém uma interface API FastAPI que expõe o agent/
lógicawww/
- contém um front-end da web NextJS
que pode se conectar à interface APIsupabase/
- contém scripts SQL necessários para configurar o supabase local A maior parte do projeto é desenvolvida em python, com exceção do aplicativo NextJS. Para python uv
é usado para gerenciamento de dependências e para a interface web usamos pnpm
.
Os módulos bot/
e api/
usam agent/
como uma dependência e carregam-no como um pacote local usando uv
NOTA Mais informações sobre a interface web estão disponíveis em www/README este README contém principalmente informações sobre o backend do tutor-gpt e a lógica central do tutor
Os módulos agent
, bot
e api
são todos gerenciados usando um espaço de trabalho uv
Esta seção aborda como configurar um ambiente python para executar o Tutor-GPT. Isso permitirá que você execute o bot discord, execute o aplicativo FastAPI ou desenvolva o código agent
.
Os comandos abaixo instalarão todas as dependências necessárias para executar o projeto tutor-gpt. Recomendamos usar uv para configurar um ambiente virtual para o projeto.
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
A partir daqui, você precisará executar uv sync
no diretório apropriado, dependendo da parte do projeto que deseja executar. Por exemplo, para executar o aplicativo FastAPI, você precisa navegar até o diretório e executar novamente a sincronização
cd api/
uv sync
Você deverá ver uma mensagem indicando que as dependências foram resolvidas e/ou instaladas, caso ainda não tenham sido instaladas.
Alternativamente (a forma recomendada) este projeto pode ser construído e executado com docker. Instale o docker e verifique se ele está em execução antes de continuar.
O front-end da web é construído e executado separadamente do restante da base de código. Abaixo estão os comandos para construir o núcleo do projeto tutor-gpt que inclui as dependências necessárias para executar o bot discord ou o endpoint FastAPI.
git clone https://github.com/plastic-labs/tutor-gpt.git
cd tutor-gpt
docker build -t tutor-gpt-core .
Da mesma forma, para construir a interface web, execute os comandos abaixo
Cada uma das interfaces do tutor-gpt requer diferentes variáveis de ambiente para funcionar corretamente. Os módulos bot/
e api/
contêm um arquivo .env.template
que você pode usar como ponto de partida. Copie e renomeie o .env.template
para .env
Abaixo estão explicações mais detalhadas sobre variáveis de ambiente
OPENAI_API_KEY
— A chave de API para Openrouter que usa uma API compatível com OpenAIMODEL
— O modelo openrouter a ser usadoPróximoJS e fastAPI
URL
— O endpoint de URL para o aplicativo frontend Next.jsHONCHO_URL
— O URL base da instância do Honcho que você está usandoHONCHO_APP_NAME
— O nome do aplicativo honcho a ser usado para Tutor-GPTExtras Opcionais
SENTRY_DSN_API
— O Sentry DSN para relatório de erros opcionalBOT_TOKEN
— Este é o token do bot discord. Você pode encontrar instruções sobre como criar um bot e gerar um token nos documentos do Pycord.THOUGHT_CHANNEL_ID
— Este é o canal de discórdia para o bot enviar pensamentos. Faça um canal em seu servidor e copie o ID clicando com o botão direito no canal e copiando o link. O ID do canal é a última sequência de números no link. Opcionalmente, você também pode usar os contêineres do Docker para executar o aplicativo localmente. Abaixo está o comando para executar o bot discord localmente usando um arquivo .env
que não está no contêiner do docker. Tenha cuidado para não adicionar seu .env
no contêiner do docker, pois isso é inseguro e pode vazar seus segredos.
docker run --env-file .env tutor-gpt-core python bot/app.py
Para executar o webui, você precisa executar o backend FastAPI
e os contêineres frontend NextJS
separadamente. Em duas instâncias de terminal separadas, execute os seguintes comandos para que ambos os aplicativos sejam executados. O comportamento atual utilizará o arquivo .env
em seu repositório local e executará o 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: o comando run padrão no arquivo docker para o núcleo executa o backend FastAPI para que você possa simplesmente executar docker run --env-file .env tutor-gpt-core
Este projeto é totalmente de código aberto e aceita toda e qualquer contribuição de código aberto. O fluxo de trabalho para contribuir é fazer um fork do repositório. Você pode reivindicar um problema na guia de problemas ou iniciar um novo tópico para indicar um recurso ou correção de bug em que você está trabalhando.
Depois de terminar sua contribuição, faça um PR apontado para o branch staging
e ele será revisado por um gerente de projeto. Sinta-se à vontade para se juntar a nós em nosso discord para discutir suas alterações ou obter ajuda.
Depois que suas alterações forem aceitas e mescladas no teste, elas passarão por um período de testes ao vivo antes de entrar no upstream main
Tutor-GPT está licenciado sob a licença GPL-3.0. Saiba mais no arquivo de licença