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
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества