Skip to content

iwnmname/journeyplanner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JourneyPlannerBot

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

Содержание

  • Описание
  • Структура проекта
  • Установка
  • Настройка
  • Использование
  • Аналитика

Описание

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

Токены

  1. Создайте директорию tokensв корне проекта
  2. Создайте файл token.txt с токеном Telegram бота
  3. Создайте файл ai_token.txt с API-ключом для LLM-сервиса (если используется)

База данных

  1. Создайте файл db.env в корне проекта:
DATABASE_URL=postgres://user:password@host:port/database
  1. Выполните SQL-скрипт database/schema.sql для инициализации базы данных
  2. Создайте представления для аналитики из SQL-запросов в database/analytics_views.sql

Запуск

python bot.py

Использование

Начало работы

Отправьте команду /start боту и следуйте инструкциям.

Построение маршрута

  1. Нажмите кнопку "Построить маршрут"
  2. Выберите тип маршрута:
    • Маршрут с живописными местами
    • Маршрут с питанием
  3. Отправьте своё местоположение (текстом, координатами или геолокацией)
  4. Укажите бюджет в рублях
  5. Укажите количество дней путешествия
  6. При выборе фото-локаций, выберите интересующие вас типы
  7. При выборе маршрута с питанием, выберите предпочитаемые кухни

Дополнительные функции

  • Получение курсов валют
  • Отправка обратной связи
  • Информация о боте

Аналитика

Бот собирает обезличенные данные для улучшения качества рекомендаций:

Собираемые метрики

  • Популярные города отправления
  • Предпочитаемые типы маршрутов
  • Популярные кухни и фото-локации
  • Средний бюджет путешествий
  • Воронка конверсии по этапам взаимодействия

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages