Видео этого урока скоро появится
Конспект урока доступен ниже
Память бота: контекст диалога и своя база данных
Разберёшься, где бот хранит информацию: короткая память диалога и постоянная база данных. Подключишь простое хранилище и научишь бота запоминать записи каждого пользователя. Это фундамент для бота финансов из следующего урока.
Конспект урока
- 1
Два вида памяти
Короткая память это последние сообщения диалога для контекста, постоянная это данные пользователя, которые живут годами. Хранятся они по-разному, и путать их нельзя.
- 2
Почему словарь в коде не подходит
Данные в переменной процесса исчезают при каждом перезапуске. Для учебного примера терпимо, для боевого бота недопустимо: один сбой стирает всех пользователей.
- 3
SQLite как первый выбор
Один файл, никакой настройки, поддержка из коробки и в Python, и в Node. Для тысяч пользователей хватает с запасом, а перейти на PostgreSQL можно позже без переписывания логики.
- 4
Схема таблиц
Таблица пользователей (идентификатор Telegram, имя, дата регистрации) и таблица записей (пользователь, дата, данные). Ключом везде бери числовой идентификатор, а не username: username меняется в любой момент.
- 5
Окно контекста
Держи последние 10-20 сообщений на пользователя и обрезай старые. Полная история постепенно раздувает каждый запрос и делает ответы медленнее.
- 6
Резервная копия
Настрой копирование файла базы по расписанию в облако или на второй сервер. Потеря базы означает потерю всех пользователей, и происходит это ровно один раз.
Практика
Добавь боту базу SQLite: при первом сообщении он записывает пользователя, а по команде показывает дату регистрации и количество сообщений.
Сделал? Отметь урок пройденным и переходи дальше