Tutor-GPT — это помощник по обучению на основе LLM, разработанный Plastic Labs. Он динамически анализирует ваши потребности в обучении и обновляет собственные подсказки, чтобы лучше служить вам.
Мы обратились к теории интеллектуальных экспериментов, и теперь это больше, чем просто репетитор по грамотности, это обширный помощник в обучении. Подробнее о том, как это работает, читайте здесь.
Tutor-GPT создан на базе Honcho для создания надежных пользовательских представлений и создания персонализированного опыта для каждого пользователя.
Размещенная версия tutor-gpt
называется Bloom как отсылка к проблеме двух сигм Бенджамина Блума.
Кроме того, вы можете запустить собственный экземпляр бота, следуя инструкциям ниже.
Проект tutor-gpt разделен на несколько разных модулей, которые разделяют внутреннюю логику для разных клиентов.
agent/
— содержит основную логику и архитектуру подсказок.bot/
— содержит реализацию бота Discordapi/
— содержит интерфейс API FastAPI, который предоставляет логику agent/
www/
— содержит веб-интерфейс NextJS
, который может подключаться к интерфейсу API.supabase/
— содержит SQL-скрипты, необходимые для настройки локальной супабазы. Большая часть проекта разработана с использованием Python, за исключением приложения NextJS. В Python uv
используется для управления зависимостями, а для веб-интерфейса мы используем pnpm
.
Модули bot/
и api/
используют agent/
в качестве зависимости и загружают его как локальный пакет с помощью uv
ПРИМЕЧАНИЕ. Дополнительную информацию о веб-интерфейсе можно найти на странице www/README. Этот README в основном содержит информацию о серверной части tutor-gpt и базовой логике Tutor.
Модули agent
, bot
и api
управляются с помощью рабочей области uv
.
В этом разделе рассказывается, как настроить среду Python для запуска Tutor-GPT. Это позволит вам запустить бота Discord, запустить приложение FastAPI или разработать код agent
.
Приведенные ниже команды установят все зависимости, необходимые для запуска проекта tutor-gpt. Мы рекомендуем использовать uv для настройки виртуальной среды проекта.
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
Отсюда вам нужно будет запустить uv sync
в соответствующем каталоге в зависимости от того, какую часть проекта вы хотите запустить. Например, чтобы запустить приложение FastAPI, вам необходимо перейти в каталог и повторно запустить синхронизацию.
cd api/
uv sync
Вы должны увидеть сообщение о том, что зависимости были разрешены и/или установлены, если они еще не были установлены ранее.
В качестве альтернативы (рекомендуемый способ) этот проект можно собрать и запустить с помощью Docker. Установите Docker и убедитесь, что он работает, прежде чем продолжить.
Веб-интерфейс создается и запускается отдельно от остальной части кодовой базы. Ниже приведены команды для создания ядра проекта tutor-gpt, которое включает необходимые зависимости для запуска бота Discord или конечной точки FastAPI.
git clone https://github.com/plastic-labs/tutor-gpt.git
cd tutor-gpt
docker build -t tutor-gpt-core .
Аналогичным образом, чтобы создать веб-интерфейс, выполните следующие команды:
Для правильной работы каждого из интерфейсов tutor-gpt требуются разные переменные среды. Оба модуля bot/
и api/
содержат файл .env.template
, который можно использовать в качестве отправной точки. Скопируйте и переименуйте .env.template
в .env
Ниже приведены более подробные объяснения переменных среды.
OPENAI_API_KEY
— API-ключ для Openrouter, который использует API, совместимый с OpenAI.MODEL
— используемая модель openrouter.СледующийJS и fastAPI
URL
— конечная точка URL-адреса внешнего приложения Next.js.HONCHO_URL
— базовый URL-адрес используемого вами экземпляра Honcho.HONCHO_APP_NAME
— Имя приложения honcho, которое будет использоваться для Tutor-GPT.Дополнительные опции
SENTRY_DSN_API
— Sentry DSN для дополнительных отчетов об ошибках.BOT_TOKEN
— это токен бота Discord. Инструкции о том, как создать бота и сгенерировать токен, можно найти в документации pycord.THOUGHT_CHANNEL_ID
— это канал разногласий, на который бот может выводить мысли. Создайте канал на своем сервере и скопируйте идентификатор, щелкнув канал правой кнопкой мыши и скопировав ссылку. Идентификатор канала — это последняя строка цифр в ссылке. Вы также можете дополнительно использовать Docker-контейнеры для локального запуска приложения. Ниже приведена команда для локального запуска бота Discord с использованием файла .env
, которого нет в контейнере Docker. Будьте осторожны и не добавляйте свой .env
в контейнер докеров, так как это небезопасно и может привести к утечке ваших секретов.
docker run --env-file .env tutor-gpt-core python bot/app.py
Чтобы запустить webui, вам необходимо запустить серверный FastAPI
и внешний контейнер NextJS
отдельно. В двух отдельных экземплярах терминала выполните следующие команды, чтобы запустить оба приложения. Текущее поведение будет использовать файл .env
в вашем локальном репозитории и запускать бота.
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
ПРИМЕЧАНИЕ. Команда запуска по умолчанию в файле Docker для ядра запускает серверную часть FastAPI, поэтому вы можете просто запустить docker run --env-file .env tutor-gpt-core.
Этот проект полностью с открытым исходным кодом и приветствует любые вклады с открытым исходным кодом. Рабочий процесс внесения вклада заключается в создании форка репозитория. Вы можете сообщить о проблеме на вкладке «Проблемы» или создать новую тему, чтобы указать на функцию или исправление ошибки, над которой вы работаете.
После того, как вы закончите свой вклад, отправьте PR, направленный в staging
ветку, и он будет рассмотрен менеджером проекта. Не стесняйтесь присоединяться к нам в нашем Discord, чтобы обсудить ваши изменения или получить помощь.
Как только ваши изменения будут приняты и объединены в промежуточную версию, они пройдут период живого тестирования, прежде чем поступить в исходный поток в main
Tutor-GPT распространяется по лицензии GPL-3.0. Подробную информацию можно найти в файле лицензии.