Телеграм-бот для планирования маршрутов и путешествий. Бот помогает построить персонализированные туристические маршруты с учетом ваших предпочтений, бюджета и доступного времени.
- Описание
- Структура проекта
- Установка
- Настройка
- Использование
- Аналитика
JourneyPlannerBot — это интеллектуальный ассистент для путешественников. Он помогает:
- Создавать маршруты с живописными местами для фотографий
- Планировать гастрономические маршруты с учетом ваших кулинарных предпочтений
- Оптимизировать маршруты под заданный бюджет
- Распределять активности на нужное количество дней
Бот использует RAG-сервис для подборки релевантных мест и генеративные AI-технологии для создания персонализированных маршрутов.
bot.py
Основной файл бота. Содержит настройки маршрутизации сообщений и callback-запросов, регистрацию хендлеров и middleware.
database/
- db.py - Функции для работы с базой данных и аналитикой
- db_config.py - Конфигурация подключения к базе данных
- schema.sql - SQL-схема для создания таблиц в базе данных
handlers/
- parameters.py - Обработчики для сбора параметров маршрута (локация, бюджет, дни)
- routes.py - Логика построения маршрутов и выбора их типов
- start.py - Приветственное сообщение и стартовые команды
- currency.py - Обработка запросов по валюте
- feedback.py - Сбор обратной связи от пользователей
- info.py - Информация о боте
- fallback.py - Обработка сообщений вне основного сценария
keyboards/
- inline_keyboards.py - Все инлайн-клавиатуры бота
middlewares/
- db_middleware.py - Middleware для автоматической записи пользователей и сессий в БД
states/
- travel_states.py - FSM-состояния для диалога с пользователем
- Python 3.7 или выше
- PostgreSQL (можно использовать Supabase)
- Доступ в интернет для работы с API
Для работы бота требуются следующие Python-библиотеки:
pip install aiogram
pip install psycopg2-binary
pip install openai
pip install geopy
pip install requests- Создайте директорию tokensв корне проекта
- Создайте файл token.txt с токеном Telegram бота
- Создайте файл ai_token.txt с API-ключом для LLM-сервиса (если используется)
- Создайте файл db.env в корне проекта:
DATABASE_URL=postgres://user:password@host:port/database
- Выполните SQL-скрипт
database/schema.sqlдля инициализации базы данных - Создайте представления для аналитики из SQL-запросов в
database/analytics_views.sql
python bot.pyОтправьте команду /start боту и следуйте инструкциям.
- Нажмите кнопку "Построить маршрут"
- Выберите тип маршрута:
- Маршрут с живописными местами
- Маршрут с питанием
- Отправьте своё местоположение (текстом, координатами или геолокацией)
- Укажите бюджет в рублях
- Укажите количество дней путешествия
- При выборе фото-локаций, выберите интересующие вас типы
- При выборе маршрута с питанием, выберите предпочитаемые кухни
- Получение курсов валют
- Отправка обратной связи
- Информация о боте
Бот собирает обезличенные данные для улучшения качества рекомендаций:
- Популярные города отправления
- Предпочитаемые типы маршрутов
- Популярные кухни и фото-локации
- Средний бюджет путешествий
- Воронка конверсии по этапам взаимодействия