Требовался Telegram-чат-бот, который помогает пользователю подобрать книгу и фильм под текущее настроение, опираясь на серию вопросов и персональные данные.
Цель проекта — создать персонализованный рекомендательный сервис, который учитывает эмоциональное состояние, предпочтения, возраст и пол пользователя, а также запоминает историю рекомендаций.
Основные задачи:
- провести мини-опрос пользователя в удобном формате;
- сформировать психологический профиль на основе ответов;
- подобрать релевантную книгу и фильм с помощью ИИ;
- сохранять рекомендации и позволять пользователю получать новые варианты без повторов;
- обеспечить простой и понятный пользовательский сценарий без сложных настроек.
Проект реализован как Telegram-бот на Python (aiogram) с интеграцией ChatGPT API и локальной базой данных SQLite.
Ключевые этапы реализации:
1. Сбор данных пользователя
При первом запуске бот запрашивает пол и возраст пользователя, сохраняет данные в базе и использует их в дальнейшем для персонализации рекомендаций.
2. Опрос о настроении
Бот задаёт пользователю серию из 5 вопросов с вариантами ответов (текущие эмоции, ожидания от книги/фильма, предпочтения и т.д.).
Ответы сохраняются и формируют структурированный психологический профиль.
3. Интеграция с ChatGPT
На основе профиля формируется промпт для ИИ:
o отдельно для подбора книги;
o отдельно для подбора фильма.
Модель получает чёткую роль эксперта (книжный/кино-эксперт) и возвращает рекомендации в заданном формате.
4. Исключение повторов
Бот запоминает уже предложенные книги и фильмы и при повторном запросе передаёт их в промпт как исключения, чтобы пользователь получал новые варианты.
5. Хранение истории
Все рекомендации сохраняются в базе данных. Пользователь может:
o просмотреть историю подборок;
o запросить новые рекомендации с тем же настроением;
o пройти опрос заново, если настроение изменилось.
6. Администрирование и логирование
Реализована отправка служебной информации администратору (дата, пользователь, выданные рекомендации), что упрощает контроль и развитие проекта.
Проект реализован как автономный бот без внешнего backend-сервера, легко разворачивается и масштабируется.
В результате клиент получил работающего Telegram-бота, который:
• персонализирует рекомендации книг и фильмов;
• учитывает настроение и предпочтения пользователя;
• запоминает историю взаимодействий;
• предлагает новые варианты без повторений;
• обеспечивает простой и приятный интерфейс.
Практическое применение решения:
• развлекательный и рекомендательный Telegram-бот;
• персональный AI-помощник для чтения и просмотра фильмов;
• основа для коммерческих сервисов рекомендаций.