pnirtep

pnirtep

Веб-разработчик самоучка
Пикабушник
Дата рождения: 21 декабря
100 рейтинг 1 подписчик 0 подписок 3 поста 0 в горячем
0

Искусственный интеллект пишет курсы: норм или стрем? Истина, как всегда, где-то посередине

В процессе разработки своей небольшой AI EdTech платформы AI Тьютор, некоторые комментарии к моим публикациям были в духе - ууу, это все фигня, ничему научиться по курсам созданным AI нельзя, да любой самый простой курс будет лучше, чтоб ты всю жизнь только с AI общался и т.д.

Ну во-первых, даже будучи студентом в каком-нибудь МГУ или MIT можно ничему не научиться, тут, как говорится, было бы желание, а очный курс, онлайн или же курс созданный AI всего лишь инструмент, который в руках сознательных может принести пользу, если правильно им воспользоваться.

Во вторых, часто такое пишут те, кто раньше гуглили, а теперь сразу ходят в чат гпт и просят рассказать им, как сварить яйца вкрутую. Ну да ладно.

Суть статьи в простом сравнении – мы возьмeм программу, которую составил рандомный автор, и попробуем по ней сделать курс с помощью AI. Далее пробежимся по содержимому некоторых уроков и проверим, так ли плох AI в плане генерации лекционных материалов.

Для теста я выбрал тему "Эффективное управление продуктом" на одной популярной платформе. Это небольшой бесплатный курс, в котором есть как видео, так и текстовые уроки. Вот мы как раз сравним именно текстовую часть. (Видео уроки там короткие и они по сути являются просто пересказом текстовых материалов).

Я сгенерировал программу курса в AI Тьюторе по списку уроков из оригинального курса

Раунд 1

Давайте взглянем на содержимое оригинальной лекции "Стратегии развития продукта", вот что мы видим

Как-то так. А теперь попробуем спросить AI сгенерировать такую же лекцию.

В данном конкретном случае, мне кажется, что AI забрал раунд. Довольно объемная лекция получилась, с примерами и полезными ссылками. Честно-говоря, я не ожидал, что оригинальный курс в данной лекции предложит такой скудный набор информации. А ведь за подобные мини-курсы люди иногда платят пару тысяч рублей, реклама красивая, а содержимое не всегда соответствует ожиданиям.

Раунд 2

Ок, идем дальше - тема "User story и Job story"

Теперь генерируем эту же тему в AI Тьютор

Если по сути, то там и там все одно и тоже. Сама тема лекции не дает особо размахнуться – это теория. Однако AI лекция получила значительно больший объем полезного контента, есть примеры, ссылки, сравнение подходов. Еще одно очко в пользу AI.

Раунд 3

Берем урок "Как и для чего проводить анализ рынка?" Вот содержимое из оригинала

Ок, тут уже побольше контента, хоть он не совсем хорошо структурирован. Просим AI сделать нам лекцию

AI Тьютор выдал почти в 2 раза больше структурированного контента,, разделенного на блоки и темы, опять же с примерами и ссылками. 3-0

Вывод

Сперва сразу хочу ответить хейтерам, которые сходу начнут негативить, типа вот ты взял такой отстойный курс, он сам по себе плохой, и вот ты тут расхваливаешь свой AI. Но подождите, такие же хейтеры ранее говорили, что AI не сможет предложить ничего толкового и это все ерунда. По-моему данная статья очень доступный ответ на подобные возражения. AI может делать некоторые вещи лучше, а значит и пользы от такого курса будет больше.

Конечно, авторские курсы бывают разные - простые и сложные, маленькие и большие, любительские и профессиональные. На текущем примере мы увидели ситуацию, когда авторский курс оказался слабее, чем контент, который был сгенерирован AI.

При этом можно привести массу примеров курсов, в которых AI уступил бы с большим отрывом авторским материалам. Я пробовал сравнить курсы по программированию, и в них AI выдавал не тот объем информации, который я ожидал получить. Содержимое лекций было не то чтобы поверхностным, а скорее не достаточно детализированным. Некоторые моменты были упущены. Но вот на курсах гуманитарного характера AI отлично справляется и может предоставить лучшую альтернативу, особенно, когда речь идет про малоизвестные, и даже некоторые платные авторские материалы.

Тягаться с условным ЯПрактикумом или другими мощными учебными платформами смысла нет, пока, а что касается курсов от блогеров и рандомных экспертов, в которых 90% маркетинга и 10% пользы за большие и малые деньги, то тут уже совсем другой разговор. Вобщем, если у вас есть на примете что-то потестировать, то можно это сделать за просто так

Показать полностью 19
2

Как я собираю AI-интервьюера, чтобы имитировать собеседования

Несколько месяцев назад я поймал себя на мысли: я знаю свою профессию, читаю статьи, работаю в команде — но сто́ит заговорить о собеседованиях, появляется напряжение. Да, я не один такой: стресс, туманные ожидания от интервьюеров, неочевидные слабые места в знаниях. Решил попробовать подойти к подготовке иначе — с помощью AI. Ну все сейчас хотят ко всяким GPT по разным нуждам.

Проблема: классическая подготовка не работает

Когда мы читаем «100 вопросов для Python-разработчика» или готовимся по leetcode, это даёт теорию и "набивание" руки. Но реальное интервью — это другое. Там не угадаешь, что спросят, и не получишь сразу фидбек на свой ответ. Хотя все же самое сложное - реально фиг знает, че там могут спросить. Готовишься к алгоритмам, попросят бизнес-логику. Хотя иногда бывает и не трудные собесы. У меня однажды спросили, знаю ли я SQL, я сказал, что нет, но быстро выучу, в итоге я уже 4 года работаю на этом месте. И да, SQL таки я изучил, потому что он присутствует в 70% моих задач.

Вобщем, я понял, чего мне не хватает по теме собеседований:

  • Условного «симулятора интервью»

  • Обратной связи, где я ошибся

  • Индивидуального плана, какие темы подтянуть

А ещё мне хотелось видеть, как выгляжу со стороны, пусть и со стороны какого-то цифрового интеллекта. И тут в голову пришла идея — пусть AI задаёт мне вопросы и анализирует мои ответы.

Первая попытка: prompt + OpenAI

Я начал с простого: набросал промпт в стиле:

Представь, что ты технический интервьюер. Задай мне вопрос по Python уровня middle. Подожди моего ответа, оцени его и задай следующий.

Результат превзошёл ожидания. Модель не просто генерировала вопросы, но и давала развёрнутую обратную связь. Я начал добавлять:

  • Задание уровня: Junior / Middle / Senior

  • Подбор вопросов по описанию вакансии (из LinkedIn, HeadHunter и т.п.)

  • Автоанализ ответов и генерация списка тем, которые «просели»

Минимум Django, максимум практики

Дальше я решил обернуть это в простой Django-проект — без лишнего интерфейса, просто для себя.

Минимальный стек: Django + HTMX для реактивного UI без сложных JS

Чтобы не захламлять проект, я использовал простой набор Django-моделей. В основе — интервью-сессия и связанные с ней вопросы и ответы.

class JobInterview(models.Model):

user = models.ForeignKey(User, on_delete=models.CASCADE)

position = models.CharField(max_length=255)

description = models.TextField() # вакансия или описание требований

created_at = models.DateTimeField(auto_now_add=True)

Каждая сессия содержит вопросы и ответы пользователя:

class InterviewQuestion(models.Model):

interview = models.ForeignKey(JobInterview, on_delete=models.CASCADE, related_name='questions')

question = models.TextField()

user_answer = models.TextField(blank=True)

ai_feedback = models.TextField(blank=True) # сюда AI пишет разбор

created_at = models.DateTimeField(auto_now_add=True)


Немного о витринах

1. Старт интервью

Простая форма: пользователь указывает вакансию и желаемое количество вопросов.

class InterviewCreateView(FormView):

template_name = 'interview/start.html'

form_class = InterviewStartForm

def form_valid(self, form):

# создаём JobInterview, генерируем вопросы и редиректим на сессию

Форма выглядит так:

  • Должность: Senior Python Developer

  • Описание вакансии: текст из HH / LinkedIn

  • Уровень: Middle/Senior

  • Кол-во вопросов: 5–10

AI на основе этого генерирует адаптированный набор вопросов.


2. Интервью в действии

Пользователь отвечает на вопрос, AI присылает обратную связь и следующий вопрос. Ответы сохраняются, можно вернуться к любой сессии.

class InterviewSessionView(DetailView):

model = JobInterview

template_name = 'interview/session.html'

def post(self, request, *args, **kwargs):

# сохраняем ответ пользователя

# вызываем LLM для фидбека

# записываем следующий вопрос

На фронте — простой HTMX + hx-post, чтобы обновлялось только нужное.


Стриминг и UX

AI отвечает не сразу — а стримится по частям, имитируя реального интервьюера. Использую стандартный StreamingHttpResponse и SSE:

def stream_ai_response(request):

def event_stream():

for chunk in generate_response_chunks(...):

yield f"data: {chunk}\n\n"

return StreamingHttpResponse(event_stream(), content_type='text/event-stream')

Это заметно улучшает UX: кажется, будто AI реально «думает» и «слушает» твой ответ.

Что получилось: почти как настоящее собеседование

Сейчас процесс выглядит так:

  1. Я вставляю описание вакансии (например, из Dodo или Yandex)

  2. AI формирует пул вопросов по стеку

  3. Интервью идёт в диалоговом режиме

  4. После каждого ответа — фидбек: что было хорошо, где можно улучшить

  5. В конце — список тем, которые стоит повторить

Вот типичный фидбек от AI после моего ответа:

«Вы объяснили, что такое GIL в Python, но не упомянули, как он влияет на многопоточность и CPU-bound задачи. Рекомендуем изучить модуль multiprocessing как альтернативу.»

Или вот про другой собес ответ

Это не замена реальному интервью, но отличный способ «набить руку».

Что я понял

  • AI не устаёт, не осуждает и не душнит — отличный спарринг-партнёр

  • Отвечать письменно — уже практика: структурируешь мысли

  • Даже просто читать вопросы, которые задаёт AI, — хорошая проверка знаний

  • Появился реальный план, какие темы повторять

  • Опять же история с рандомностью вопросов. Не знаешь, что спросит

  • Вопросы и задачи касаются именно требований к вакансии, не надо решать абстракное все подряд

  • Это НЕ ЧУДО ТАБЛЕТКА. Это просто дополнительный инструмент, который помогает. По крайней мере так честнее перед самим собой, чем во время реального интервью читерить с GPT на соседней вкладке.

А дальше?

Проект я пока веду как pet project. Если тема интересна — могу поделиться, как собираю промпты и как вытаскиваю темы из фидбека AI. Пишите в комментарии. В идеале потом сделать аудио версию ответов, чтоб они транскрибировались в текст. Чисто голосовушкой ответить. Ну и можно еще придумать какой-нибудь хард режим, в духе - лимит времени на все ответы 20 минут.

А вы когда-нибудь пробовали проводить собеседование с самим собой с помощью LLM?

Показать полностью 2
0

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Проект написан на 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% быстрее.

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

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

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

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

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

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

Что дальше?

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

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

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

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

Показать полностью 5
Отличная работа, все прочитано!