0

Я устал от SQL и решил попробовать себя в веб-разработке

Я — дата-инженер. По роду деятельности пишу много SQL, но в какой-то момент захотелось чего-то более осязаемого. Хотелось делать проекты, которые можно «потрогать руками» и которыми можно делиться. Так я немного углубился в веб-разработку и возникла идея сделать сервис, который бы генерировал образовательный контент с помощь AI. Так появился AI Tutor — если красиво завернуть, то это платформа, которая объединяет онлайн-обучение и нейросети. Сервис помогает авторам и ученикам создавать и проходить курсы, генерирует контент с помощью LLM, проверяет знания и сопровождает обучающегося в виде виртуального тьютора. В общем и целом - условно бесплатно, а если пользователь подключит свой gpt-аккаунт, то сам будет определять, сколько он может генерировать контента.

Изначально идея была простой: загрузил список тем — получил структурированный курс с лекциями и заданиями. Но в процессе проект быстро оброс новыми функциями и стал куда интереснее.

Возможности платформы

На сегодня в сервисе есть два режима создания курсов.1. AI-режим (быстрый старт)

Я устал от SQL и решил попробовать себя в веб-разработке Искусственный интеллект, ChatGPT, Джанго, Python, Разработка, Веб-разработка, Онлайн-курсы, Образование, Длиннопост

1. AI-режим (быстрый старт)

Вы вводите название курса или список тем — AI сам:

  • предлагает структуру (модули и уроки),

  • генерирует содержание уроков,

  • создаёт проверочные задания.

Подходит для быстрого запуска MVP или чернового наброска.

2. Creator-режим (ручное управление)

Вы полностью контролируете структуру курса:

  • добавляете модули и уроки вручную,

  • загружаете свои тексты, заметки,

  • используете AI для редактуры и дополнений.

Этот режим подходит для продуманных авторских программ.

Публикация и библиотека

Я устал от SQL и решил попробовать себя в веб-разработке Искусственный интеллект, ChatGPT, Джанго, Python, Разработка, Веб-разработка, Онлайн-курсы, Образование, Длиннопост

Курс можно опубликовать — и другие пользователи найдут его в библиотеке и смогут пройти. Это работает как для авторов, так и для студентов, которые хотят делиться находками.

Я устал от SQL и решил попробовать себя в веб-разработке Искусственный интеллект, ChatGPT, Джанго, Python, Разработка, Веб-разработка, Онлайн-курсы, Образование, Длиннопост

Функции, которые делают обучение живым

1. AI-помощник в уроках В каждом уроке встроен чат с нейросетью. Можно задавать уточняющие вопросы, просить объяснений — будто у вас всегда под рукой личный репетитор.

2. Проверочные задания AI сам создаёт тесты и задания, а затем даёт обратную связь — что получилось, что можно улучшить.

3. Аудиоверсии лекций Не хотите читать — слушайте! Текст превращается в речь, удобно в дороге или во время прогулки.

4. Трекер прогресса Система отмечает, какие уроки вы прошли, что осталось, и помогает отслеживать результат.

Я устал от SQL и решил попробовать себя в веб-разработке Искусственный интеллект, ChatGPT, Джанго, Python, Разработка, Веб-разработка, Онлайн-курсы, Образование, Длиннопост

Техническая сторона

Проект написан на Django + Jinja2 Templates. Без модных SPA-фреймворков — всё максимально просто и понятно. Почему так? Потому что изначально это был учебный проект — и сработало. Плюс, я не знаком с современным фронтендом и мне было куда проще собирать костяк html самому и потом через GPT кастомить до нужных бутстрап классов, чтобы верстка смотрелась приемлемо.

Архитектура

  • Accounts — управление пользователями, токенами, AI-моделями.

  • Courses — AI-курсы, публичные курсы.

  • CreatorCourses — редактор авторских программ, которые затем можно «трансформировать» в AI-курсы.

Используются стандартные CBV (ListView, CreateView, и т.д.). Данные моделей Course, Module, Lesson, Task клонируются из Creator-программы при публикации.

AI внутри

По умолчанию используется Qwen2.5-32B, но пользователь может подключить свой ключ от OpenAI (например, GPT-4). Я тестировал разные модели — по качеству ± одинаково, но GPT-4 справляется примерно на 20–30% быстрее.

Я устал от SQL и решил попробовать себя в веб-разработке Искусственный интеллект, ChatGPT, Джанго, Python, Разработка, Веб-разработка, Онлайн-курсы, Образование, Длиннопост

Промпты заранее шаблонизированы, в них просто «втыкается» пользовательский ввод.

Где хостится?

Сначала всё работало на Raspberry Pi, который стоял дома на подоконнике. Потом начались проблемы с провайдером — и я перенёс всё в Digital Ocean. Плачу около 1000₽ в месяц, зато всё стабильно, и не нужно мутить прокси для доступа к OpenAI из РФ.

Проблема стриминга

Хотелось, чтобы ответ от AI печатался прямо на экране. С stream=True и запуском через runserver + nginx всё работало. Но при переходе на Uvicorn/Gunicorn стрим ломается: данные буферизируются и выводятся разом. JS и backend одинаковые, конфиг nginx тот же — а стрима нет. Пока временное решение — просто показываю прогресс-бар.

Возможно, стоит вынести стриминг в отдельный FastAPI-сервис, как советует GPT. Пока руки не дошли.

Что дальше?

  • Интеграция WYSIWYG-редактора в Creator-режим.

  • Авторизация через VK, Яндекс и другие платформы.

  • Улучшение UX/UI.

  • Восстановление стриминга при запуске не через runserver.