К основному содержимому
whalio
▶

Видео этого урока скоро появится

Конспект урока доступен ниже

Урок 5 из 812 мин

Память бота: контекст диалога и своя база данных

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

Конспект урока

  1. 1

    Два вида памяти

    Короткая память это последние сообщения диалога для контекста, постоянная это данные пользователя, которые живут годами. Хранятся они по-разному, и путать их нельзя.

  2. 2

    Почему словарь в коде не подходит

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

  3. 3

    SQLite как первый выбор

    Один файл, никакой настройки, поддержка из коробки и в Python, и в Node. Для тысяч пользователей хватает с запасом, а перейти на PostgreSQL можно позже без переписывания логики.

  4. 4

    Схема таблиц

    Таблица пользователей (идентификатор Telegram, имя, дата регистрации) и таблица записей (пользователь, дата, данные). Ключом везде бери числовой идентификатор, а не username: username меняется в любой момент.

  5. 5

    Окно контекста

    Держи последние 10-20 сообщений на пользователя и обрезай старые. Полная история постепенно раздувает каждый запрос и делает ответы медленнее.

  6. 6

    Резервная копия

    Настрой копирование файла базы по расписанию в облако или на второй сервер. Потеря базы означает потерю всех пользователей, и происходит это ровно один раз.

Практика

Добавь боту базу SQLite: при первом сообщении он записывает пользователя, а по команде показывает дату регистрации и количество сообщений.

Сделал? Отметь урок пройденным и переходи дальше