TGViewer
Максим Максимов // IT, AI Максим Максимов // IT, AI @maks_it_ai · 697 subscribers
Post #126 801
Как работает платформа для курса

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

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

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

Каждая сессия Jupyter запускается в виде pod в Kubernetes с использованием JupyterLab. Данный подход позволил сделать изолированной каждую сессию пользователя. Каждая сессия имеет ограничения по CPU и памяти. В случае превышения лимитов — pod отключается, не затрагивая работу платформы.

В Jupyter я предоставил возможность обращения к LLM, но только внутри самой сессии. Для этого был создан прокси с простой очередью, через который идут все запросы к LLM. Внутри него настроены ограничения на количество запросов в минуту и максимальное количество использования токенов. Отсюда же я снимаю данные для мониторинга.

В качестве LLM взял GigaChat API. Для работы с OpenAI API используется прокси gpt2giga, который переводит запросы в формат GigaChat. При желании его можно заменить. Например на OpenRouter.

Начало работы с платформой начинается с Telegram бота на aiogram. В нем пользователь регистрируется и получает логин, пароль и URL с API KEY для доступа к LLM.

В качестве фронтенда используется React, основной бекенд - FastAPI, база данных - PostgreSQL. Все это работает в Docker. В качестве единой точки входа используется Nginx.

Также для себя добавил простенький мониторинг (на рисунок не попал) - FastAPI + Jinja-шаблоны, в котором видно количество пользователей, количество использованных токенов и запросов к LLM, количество запущенных сессий Jupyter по времени.

Сейчас платформа развернута на небольшом сервере: 2 vCPU, 8 ГБ RAM и 80 ГБ диск. На данный момент этого достаточно, чтобы выдерживать одновременно ~15 работающих сессий Jupyter (проводил стресс тест).

Подводя итог могу сказать, что возможно платформа сделана не идеально. Вопросы безопасности, архитектуры, кодовой базы и другого остаются открытыми. Мне было интересно сделать что-то такое, развернуть и попробовать дать это реальным пользователям. Работаем дальше!

Максим Максимов // IT, AI
  • 👍 6
  • ❤ 4
  • 🤯 1
More from @maks_it_ai
  1. Jul 8, 2026Как я разработал легковесный Guardrails для русского языка Написал статью на Хабр, в котор…
  2. Jun 11, 2026⚡️ Открываем бенчмарк для детекции PII в русском тексте Мы тут много рассказывали про рабо…
  3. Jun 6, 2026Как дообучить LLM. Рассказываю шаг за шагом Написал статью на Хабр, в которой рассказал ша…
  4. May 11, 2026Максим Максимов // IT, AI pinned «🤷 Когда использовать BERT, а когда LLM? Во время решени…
  5. May 11, 2026🤷 Когда использовать BERT, а когда LLM? Во время решения различных NLP задач ловлю себя н…
  6. Apr 24, 2026Максим Максимов // IT, AI pinned «🤑 Как платить меньше за инференс LLM Занимался изучение…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →