Лабораторная работа 3
"Запуск бота для реального использования"
Описание
В этой лабораторной работе вы развернете своего бота так, чтобы им могли пользоваться реальные люди - ваши коллеги, друзья или команда. Это последний шаг от идеи до работающего продукта!
Цель работы
Научиться деплоить бота и собирать обратную связь от реальных пользователей для улучшения продукта.
Правила по оформлению
Правила по оформлению отчета по лабораторной работе вы можете изучить по ссылке.
Ход работы
Шаг 1: Выбор способа деплоя
Выберите один из вариантов (в порядке сложности):
1. Локальный запуск с ngrok (самый простой) - Запуск на своем компьютере - Использование ngrok для доступа из интернета - Подходит для краткосрочного тестирования - Бесплатно, но требует постоянно включенный компьютер
2. Облачный хостинг (рекомендуется) - Деплой на бесплатных платформах - Автоматический запуск при перезагрузке - Подходит для постоянного использования - Варианты: - Railway - самый простой - Render - Fly.io - Heroku
3. Docker + VPS (продвинутый) - Контейнеризация бота - Запуск на своем сервере - Полный контроль - Требует больше знаний
Шаг 2: Подготовка к деплою
Для любого способа:
- Проверьте код
- Убедитесь, что бот работает локально
- Проверьте обработку ошибок
-
Убедитесь, что токен хранится в переменных окружения
-
Создайте .env файл
BOT_TOKEN=your_bot_token_here
- Добавьте .gitignore
.env
*.pyc
__pycache__/
*.db
*.log
- Создайте requirements.txt
python-telegram-bot==20.7
python-dotenv==1.0.0
pandas==2.1.4
requests==2.31.0
- Добавьте логирование
import logging
logging.basicConfig(
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
level=logging.INFO
)
logger = logging.getLogger(__name__)
Шаг 3: Деплой (выберите свой вариант)
Вариант 1: ngrok (локальный)
- Установите ngrok
- Скачайте с ngrok.com
-
Зарегистрируйтесь и получите токен
-
Запустите бота
python bot.py
- Запустите ngrok
ngrok http 8000
- Настройте webhook
- Скопируйте URL из ngrok (например:
https://abc123.ngrok.io) -
Откройте в браузере:
https://api.telegram.org/bot<TOKEN>/setWebhook?url=https://abc123.ngrok.io/webhook -
Готово! Бот доступен из интернета
Вариант 2: Railway (облачный)
- Зарегистрируйтесь на Railway
- Перейдите на railway.app
-
Войдите через GitHub
-
Создайте новый проект
- Нажмите "New Project"
- Выберите "Deploy from GitHub repo"
-
Подключите ваш репозиторий
-
Настройте переменные окружения
- В настройках проекта добавьте
BOT_TOKEN -
Вставьте токен вашего бота
-
Добавьте Procfile (если нужно)
worker: python bot.py
- Деплой
- Railway автоматически определит Python проект
- Установит зависимости из requirements.txt
-
Запустит бота
-
Получите URL
- Railway даст вам URL вида:
https://your-app.railway.app -
Настройте webhook:
https://api.telegram.org/bot<TOKEN>/setWebhook?url=https://your-app.railway.app/webhook -
Готово! Бот работает 24/7
Вариант 3: Docker (продвинутый)
- Создайте Dockerfile
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "bot.py"]
- Создайте docker-compose.yml
version: '3.8'
services:
bot:
build: .
env_file:
- .env
restart: unless-stopped
- Запустите
docker-compose up -d
Шаг 4: Тестирование деплоя
- Проверьте работу бота
- Откройте бота в Telegram
- Протестируйте все функции
-
Проверьте логи (если доступны)
-
Проверьте стабильность
- Оставьте бота работать на несколько часов
- Проверьте, что он не падает
- Убедитесь, что память не растет
Шаг 5: Сбор обратной связи
- Пригласите пользователей
- Создайте группу или канал
- Пригласите 3-5 человек для тестирования
-
Дайте им ссылку на бота
-
Соберите фидбек
- Создайте форму или опрос
-
Спросите:
- Что понравилось?
- Что не понравилось?
- Что можно улучшить?
- Хотели бы использовать такой бот?
-
Задокументируйте
- Скриншоты отзывов
- Статистика использования
- Примеры использования
Шаг 6: Улучшения на основе фидбека
- Проанализируйте отзывы
- Выделите главные проблемы
-
Определите приоритеты
-
Внесите улучшения
- Используйте LLM для генерации улучшений
- Протестируйте изменения
-
Задеплойте новую версию
-
Повторно соберите фидбек
- Покажите пользователям улучшения
- Убедитесь, что проблемы решены
Результаты лабораторной работы
В результате данной работы у вас должно быть:
- ✅ Бот развернут и доступен для использования
- ✅ Собрана обратная связь от реальных пользователей
- ✅ Внесены улучшения на основе фидбека
- ✅ Бот работает стабильно
- ✅ Отчет с результатами использования
Критерии оценивания
- Деплой (40%): Бот успешно развернут и работает стабильно
- Сбор фидбека (30%): Собрана обратная связь от 3+ пользователей
- Улучшения (20%): Внесены улучшения на основе фидбека
- Отчет (10%): Качество отчета и документации
Отчет по лабораторной работе
Отчет должен включать:
- Описание деплоя
- Какой способ выбрали
- Почему именно этот
-
URL бота (или скриншот)
-
Процесс деплоя
- Пошаговая инструкция
- С какими проблемами столкнулись
-
Как решили
-
Сбор фидбека
- Количество пользователей
- Скриншоты отзывов
-
Статистика использования
-
Анализ фидбека
- Главные проблемы
- Что понравилось пользователям
-
Приоритеты улучшений
-
Улучшения
- Что изменили
- Как это помогло
-
Новый фидбек (если есть)
-
Выводы
- Что получилось хорошо
- Что можно улучшить дальше
- Чему научились
Полезные ссылки
- ngrok Documentation
- Railway Documentation
- Render Documentation
- Docker Documentation
- python-telegram-bot Webhooks
- Environment Variables Best Practices
Часто задаваемые вопросы
Q: Какой способ деплоя выбрать?
A: Для начала - Railway или Render. Они самые простые и бесплатные.
Q: Что если бот упал?
A: Проверьте логи, найдите ошибку, исправьте и задеплойте заново. Это нормально!
Q: Нужно ли платить за хостинг?
A: Нет, все предложенные платформы имеют бесплатный тариф для небольших проектов.
Q: Как собрать фидбек, если нет пользователей?
A: Попросите друзей, коллег, однокурсников. Можно даже использовать бота самому и записать видео.
Q: Что если пользователи не хотят тестировать?
A: Сделайте бота полезным для них - решите их реальную проблему!
Q: Сколько должно быть пользователей?
A: Минимум 3-5 человек. Больше - лучше, но качество важнее количества.
Q: Как долго должен работать бот?
A: Минимум несколько дней для сбора фидбека. Для защиты - достаточно показать, что он работает.