
Образовательная платформа: единая точка входа
Личный кабинет студента после редизайна: чаты в реальном времени, нативные уведомления, две сборки
- React
- TypeScript
- TanStack Router
- TanStack Query
- +10
Стриминг ответов, шаблоны со шагами и условиями, ветвление диалога, загрузка файлов
Детали и код закрыты соглашением: описываю задачи и решения без раскрытия внутренностей.

Ассистент для сотрудников и студентов: свободный чат и режим шаблонов, где запрос собирается по шагам. Отвечает потоком, помнит ветки диалога, принимает файлы и работает под единой авторизацией платформы.
Контекст
Помощник встроен в экосистему платформы: пользователь заходит по единому логину и работает либо в обычном чате, либо в режиме шаблонов — заранее собранных сценариев под типовые задачи.
Шаблон отличается от простого промпта тем, что он ведёт пользователя: задаёт вопросы по шагам, умеет повторять блоки и выбирать следующий шаг по условию.
Задача
Ответ модели приходит долго. Ждать его целиком неприемлемо: без потоковой выдачи интерфейс кажется зависшим, а пользователь не понимает, работает ли запрос.
Шаблоны требуют собственной модели данных: шаги, блоки, циклы и условия перехода нужно и хранить, и показывать так, чтобы пользователь понимал, где он находится в сценарии.
Отдельная тонкость — авторизация. Токен может истечь в момент, когда поток уже открыт, и обработать это нужно без потери набранного контекста.
Решение
Ответ появляется по мере генерации, шаблоны ведут по шагам, а предыдущие варианты ответа сохраняются. Файлы прикладываются к сообщению, вход общий с платформой.
Результат
Помощник стал рабочим инструментом внутри платформы: шаблоны закрывают повторяющиеся задачи, стриминг снял ощущение зависшего интерфейса, а ветвление истории позволяет спокойно экспериментировать с формулировками.
Технически это самый интересный для меня проект из продуктовых: здесь пришлось работать с потоками, а не с привычным «запрос — ответ», и придумывать интерфейс для нелинейной истории диалога.


Личный кабинет студента после редизайна: чаты в реальном времени, нативные уведомления, две сборки

Конструктор шаблонов: шаги, блоки, циклы и условия перехода
Прохождение курса: лонгриды, вебинары, тесты с перетаскиванием, подсказки GPT по выделенному тексту