Этот урок нужен не ради Redis как технологии, а ради памяти процесса: система перестаёт видеть каждое сообщение отдельно и начинает держать один живой контекст пользователя.
Бот больше не теряет контекст: Redis и память процесса
В пятом уроке ShipAI подключаем Redis как краткосрочную память процесса, чтобы бот помнил активный контекст пользователя, не терял продолжение мысли и не создавал новую задачу на каждое сообщение.
Коротко о сути урока
После урока ты сможешь:
- Понять, зачем системе нужен слой краткосрочной памяти.
- Увидеть, как Redis хранит активный контекст пользователя по отдельному ключу.
- Разобраться, как бот отличает новый ввод от продолжения мысли.
- Сделать явное завершение контекста кнопкой, а не ждать только тайм-аута.
Для кого этот урок
Этот урок сделан для тех, кто уже прошёл предыдущие шаги курса и хочет понять, как система перестаёт дробить одно сообщение на отдельные входы и начинает держать живой контекст пользователя.
Подойдёт, если ты
- уже посмотрел первые четыре урока стартового курса ShipAI;
- строишь Telegram-бота, который не должен терять продолжение мысли;
- хочешь понять, зачем нужна краткосрочная память процесса;
- собираешь AI-процесс, где важно отличать новый ввод от продолжения контекста.
Не расширяем этот урок
Это не урок про Redis ради Redis и не обзор всех вариантов state management. Фокус держим на краткосрочной памяти, продолжении мысли и явном завершении контекста.
Видео и конспект
Смотрите урок прямо на странице или откройте его на YouTube, если удобнее там.
Если удобнее открыть на YouTube, вот ссылка: https://www.youtube.com/watch?v=QJqWys0S6Rs
Что добавляем
Redis здесь нужен не как очередная база данных, а как оперативная память процесса. Система получает короткое состояние, по которому понимает, что сейчас происходит у конкретного пользователя.
Как это работает
Без памяти каждое сообщение выглядит как отдельный мир, и система дробит одну мысль на несколько задач. Этот урок учит удерживать контекст и не терять продолжение фразы между сообщениями.
Что важно понять
В уроке появляется `redis_key` на пользователя, чтение активного контекста, развилка между новым вводом и продолжением мысли, а также кнопка явного завершения контекста.
- Ключ Redis на `chat_id`.
- Проверка активного контекста перед созданием новой задачи.
- Обновление текущего контекста вместо создания нового.
- TTL и кнопка завершения ввода как разные способы закрыть состояние.
Ограничение шага
Краткосрочная память живёт отдельно от долгого хранения и нужна только пока мысль не завершена. Важный смысл урока — научить систему различать новый ввод и продолжение уже начатого процесса.
Что дальше
После урока бот перестаёт дробить один разговор на отдельные входы и может держать живой контекст пользователя. Ограничение остаётся в том, что система пока не понимает смысл сообщения глубоко — следующий шаг будет связан с AI-разбором накопленного ввода.
Таймкоды урока
Быстрые переходы по видео, чтобы сразу открыть нужный фрагмент.
Частые вопросы
Короткие ответы на типичные вопросы перед просмотром урока.
Да, это желательно: в четвёртом уроке мы уже собрали внутреннюю шину задач, а здесь добавляем краткосрочную память поверх неё.
Потому что они решают разные задачи: Google Sheets дают видимый результат для человека, шина задач хранит внутреннюю координацию, а Redis держит активный короткий контекст процесса.
В Redis лежит только короткий активный контекст: context_id, task_db_id, chat_id, накопленный текст, время старта и время последнего обновления.
Сначала workflow читает ключ активного контекста из Redis. Если там уже есть состояние пользователя, сообщение уходит в ветку обновления, а не в создание нового контекста.
Да. В уроке добавляется кнопка завершения ввода, чтобы пользователь мог закрыть активный контекст явно, не дожидаясь только TTL.
Материалы по уроку в Сообществе
🔒 Полные материалы по уроку, шаблоны и разбор деталей — в Сообществе ShipAI.
📇 Вход через бота @shipai_ru_bot
Что дальше
После урока можно перейти дальше, открыть курс целиком или зайти в Telegram-канал ShipAI.