ShipAI
УРОК 5 · СТАРТОВЫЙ КУРС SHIPAI
RedisКраткосрочная памятьКонтекст сообщений

Бот больше не теряет контекст: Redis и память процесса

В пятом уроке ShipAI подключаем Redis как краткосрочную память процесса, чтобы бот помнил активный контекст пользователя, не терял продолжение мысли и не создавал новую задачу на каждое сообщение.

Коротко о сути урока

Этот урок нужен не ради Redis как технологии, а ради памяти процесса: система перестаёт видеть каждое сообщение отдельно и начинает держать один живой контекст пользователя.

После урока ты сможешь:

  • Понять, зачем системе нужен слой краткосрочной памяти.
  • Увидеть, как Redis хранит активный контекст пользователя по отдельному ключу.
  • Разобраться, как бот отличает новый ввод от продолжения мысли.
  • Сделать явное завершение контекста кнопкой, а не ждать только тайм-аута.

Для кого этот урок

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

Подойдёт, если ты

  • уже посмотрел первые четыре урока стартового курса ShipAI;
  • строишь Telegram-бота, который не должен терять продолжение мысли;
  • хочешь понять, зачем нужна краткосрочная память процесса;
  • собираешь AI-процесс, где важно отличать новый ввод от продолжения контекста.

Не расширяем этот урок

Это не урок про Redis ради Redis и не обзор всех вариантов state management. Фокус держим на краткосрочной памяти, продолжении мысли и явном завершении контекста.

Видео и конспект

Смотрите урок прямо на странице или откройте его на YouTube, если удобнее там.

Что добавляем

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

Как это работает

Без памяти каждое сообщение выглядит как отдельный мир, и система дробит одну мысль на несколько задач. Этот урок учит удерживать контекст и не терять продолжение фразы между сообщениями.

Что важно понять

В уроке появляется `redis_key` на пользователя, чтение активного контекста, развилка между новым вводом и продолжением мысли, а также кнопка явного завершения контекста.

  • Ключ Redis на `chat_id`.
  • Проверка активного контекста перед созданием новой задачи.
  • Обновление текущего контекста вместо создания нового.
  • TTL и кнопка завершения ввода как разные способы закрыть состояние.

Ограничение шага

Краткосрочная память живёт отдельно от долгого хранения и нужна только пока мысль не завершена. Важный смысл урока — научить систему различать новый ввод и продолжение уже начатого процесса.

Что дальше

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

Частые вопросы

Короткие ответы на типичные вопросы перед просмотром урока.

Да, это желательно: в четвёртом уроке мы уже собрали внутреннюю шину задач, а здесь добавляем краткосрочную память поверх неё.

Потому что они решают разные задачи: Google Sheets дают видимый результат для человека, шина задач хранит внутреннюю координацию, а Redis держит активный короткий контекст процесса.

В Redis лежит только короткий активный контекст: context_id, task_db_id, chat_id, накопленный текст, время старта и время последнего обновления.

Сначала workflow читает ключ активного контекста из Redis. Если там уже есть состояние пользователя, сообщение уходит в ветку обновления, а не в создание нового контекста.

Да. В уроке добавляется кнопка завершения ввода, чтобы пользователь мог закрыть активный контекст явно, не дожидаясь только TTL.

Материалы по уроку в Сообществе

Что дальше

После урока можно перейти дальше, открыть курс целиком или зайти в Telegram-канал ShipAI.