ИИ-ассистент турагентства — подбор туров, консультации, бронирование через Telegram
Telegram-бот для турагентства «Онлайн Тур Плюс» с ИИ-подбором туров на базе GPT-4. Клиент описывает пожелания — бот анализирует запрос и предлагает подходящие варианты отдыха с учётом бюджета, дат, количества путешественников и предпочтений.
| Функция | Описание |
|---|---|
| 🗺 Чат с ИИ | Клиент описывает пожелания (страна, даты, бюджет, кол-во людей) — ИИ подбирает варианты |
| 📋 Каталог направлений | Турция, Египет, Таиланд, ОАЭ, Мальдивы с описаниями и ценами |
| 📝 Сбор заявок | Имя, телефон, email, пожелания → сохранение в БД + уведомление админу |
| ❓ FAQ | Визы, страховка, документы, оплата, отмена туров |
| 🔐 Админ-панель | /admin — просмотр заявок и статистика |
| 💬 Контекст разговора | Хранение истории чата (до 20 сообщений на пользователя) |
| 🐳 Docker | Готовый Dockerfile + docker-compose.yml для деплоя |
- Python 3.12 — язык разработки
- aiogram 3.x — асинхронный фреймворк для Telegram Bot API
- OpenAI API (GPT-4) — генерация ответов ИИ
- SQLAlchemy 2.0 + aiosqlite — асинхронная работа с SQLite
- Docker — контейнеризация
travel-ai-bot/
├── bot/
│ ├── __init__.py
│ └── __main__.py # Точка входа
├── handlers/
│ ├── __init__.py # Регистрация роутеров
│ ├── start.py # /start, навигация
│ ├── chat.py # Чат с ИИ
│ ├── catalog.py # Каталог направлений
│ ├── faq.py # Частые вопросы
│ ├── lead.py # Сбор заявок (FSM)
│ └── admin.py # Админ-панель
├── keyboards/
│ ├── __init__.py
│ ├── reply.py # Reply-клавиатура меню
│ └── inline.py # Inline-клавиатуры
├── services/
│ ├── __init__.py
│ ├── database.py # Работа с БД
│ └── openai_service.py # Интеграция с OpenAI
├── models/
│ ├── __init__.py
│ ├── base.py # Базовая модель
│ ├── user.py # Пользователи
│ ├── conversation.py # История разговоров
│ ├── lead.py # Заявки
│ └── popular_tour.py # Популярные направления
├── config.py # Конфигурация из .env
├── .env.example # Пример переменных окружения
├── requirements.txt
├── Dockerfile
├── docker-compose.yml
├── LICENSE
└── README.md
- Python 3.12+
- Telegram Bot Token (получить у @BotFather)
- OpenAI API Key (получить на platform.openai.com)
git clone https://github.com/Vardges13/travel-ai-bot.git
cd travel-ai-botcp .env.example .envЗаполните .env:
| Переменная | Описание | Пример |
|---|---|---|
BOT_TOKEN |
Токен Telegram-бота от @BotFather | 123456:ABC-DEF... |
OPENAI_API_KEY |
API-ключ OpenAI | sk-... |
ADMIN_IDS |
ID администраторов через запятую | 123456789,987654321 |
OPENAI_MODEL |
Модель OpenAI (по умолчанию gpt-4) |
gpt-4 |
MAX_HISTORY |
Макс. сообщений в контексте | 20 |
docker compose up -d --buildЛоги:
docker compose logs -f botpython -m venv .venv
source .venv/bin/activate # Linux/macOS
# .venv\Scripts\activate # Windows
pip install -r requirements.txt
python -m bot| Команда | Описание |
|---|---|
/start |
Приветствие и главное меню |
/admin |
Админ-панель (только для админов) |
SQLite-файл автоматически создаётся в data/bot.db при первом запуске.
| Таблица | Описание |
|---|---|
users |
Пользователи Telegram |
conversations |
История сообщений с ИИ |
leads |
Заявки клиентов |
popular_tours |
Каталог популярных направлений (seed-данные) |
💡 Для добавления скриншотов создайте директорию
docs/screenshots/и добавьте изображения.
Telegram Bot Token
- Откройте @BotFather в Telegram
- Отправьте
/newbotи следуйте инструкциям - Скопируйте токен в
.env
OpenAI API Key
- Зарегистрируйтесь на platform.openai.com
- Создайте API-ключ в разделе API Keys
- Скопируйте ключ в
.env
Admin ID
- Откройте @userinfobot в Telegram
- Отправьте любое сообщение — бот вернёт ваш ID
- Укажите ID в
ADMIN_IDS
Проект распространяется под лицензией MIT.
Сделано с ❤️ для турагентства «Онлайн Тур Плюс»


