Skip to content

Лабораторная работа 3

"Запуск бота для реального использования"

Описание

В этой лабораторной работе вы развернете своего бота так, чтобы им могли пользоваться реальные люди - ваши коллеги, друзья или команда. Это последний шаг от идеи до работающего продукта!

Цель работы

Научиться деплоить бота и собирать обратную связь от реальных пользователей для улучшения продукта.

Правила по оформлению

Правила по оформлению отчета по лабораторной работе вы можете изучить по ссылке.

Ход работы

Шаг 1: Выбор способа деплоя

Выберите один из вариантов (в порядке сложности):

1. Локальный запуск с ngrok (самый простой) - Запуск на своем компьютере - Использование ngrok для доступа из интернета - Подходит для краткосрочного тестирования - Бесплатно, но требует постоянно включенный компьютер

2. Облачный хостинг (рекомендуется) - Деплой на бесплатных платформах - Автоматический запуск при перезагрузке - Подходит для постоянного использования - Варианты: - Railway - самый простой - Render - Fly.io - Heroku

3. Docker + VPS (продвинутый) - Контейнеризация бота - Запуск на своем сервере - Полный контроль - Требует больше знаний

Шаг 2: Подготовка к деплою

Для любого способа:

  1. Проверьте код
  2. Убедитесь, что бот работает локально
  3. Проверьте обработку ошибок
  4. Убедитесь, что токен хранится в переменных окружения

  5. Создайте .env файл

BOT_TOKEN=your_bot_token_here
  1. Добавьте .gitignore
.env
*.pyc
__pycache__/
*.db
*.log
  1. Создайте requirements.txt
python-telegram-bot==20.7
python-dotenv==1.0.0
pandas==2.1.4
requests==2.31.0
  1. Добавьте логирование
import logging

logging.basicConfig(
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
    level=logging.INFO
)
logger = logging.getLogger(__name__)

Шаг 3: Деплой (выберите свой вариант)

Вариант 1: ngrok (локальный)
  1. Установите ngrok
  2. Скачайте с ngrok.com
  3. Зарегистрируйтесь и получите токен

  4. Запустите бота

python bot.py
  1. Запустите ngrok
ngrok http 8000
  1. Настройте webhook
  2. Скопируйте URL из ngrok (например: https://abc123.ngrok.io)
  3. Откройте в браузере: https://api.telegram.org/bot<TOKEN>/setWebhook?url=https://abc123.ngrok.io/webhook

  4. Готово! Бот доступен из интернета

Вариант 2: Railway (облачный)
  1. Зарегистрируйтесь на Railway
  2. Перейдите на railway.app
  3. Войдите через GitHub

  4. Создайте новый проект

  5. Нажмите "New Project"
  6. Выберите "Deploy from GitHub repo"
  7. Подключите ваш репозиторий

  8. Настройте переменные окружения

  9. В настройках проекта добавьте BOT_TOKEN
  10. Вставьте токен вашего бота

  11. Добавьте Procfile (если нужно)

worker: python bot.py
  1. Деплой
  2. Railway автоматически определит Python проект
  3. Установит зависимости из requirements.txt
  4. Запустит бота

  5. Получите URL

  6. Railway даст вам URL вида: https://your-app.railway.app
  7. Настройте webhook: https://api.telegram.org/bot<TOKEN>/setWebhook?url=https://your-app.railway.app/webhook

  8. Готово! Бот работает 24/7

Вариант 3: Docker (продвинутый)
  1. Создайте 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"]
  1. Создайте docker-compose.yml
version: '3.8'

services:
  bot:
    build: .
    env_file:
      - .env
    restart: unless-stopped
  1. Запустите
docker-compose up -d

Шаг 4: Тестирование деплоя

  1. Проверьте работу бота
  2. Откройте бота в Telegram
  3. Протестируйте все функции
  4. Проверьте логи (если доступны)

  5. Проверьте стабильность

  6. Оставьте бота работать на несколько часов
  7. Проверьте, что он не падает
  8. Убедитесь, что память не растет

Шаг 5: Сбор обратной связи

  1. Пригласите пользователей
  2. Создайте группу или канал
  3. Пригласите 3-5 человек для тестирования
  4. Дайте им ссылку на бота

  5. Соберите фидбек

  6. Создайте форму или опрос
  7. Спросите:

    • Что понравилось?
    • Что не понравилось?
    • Что можно улучшить?
    • Хотели бы использовать такой бот?
  8. Задокументируйте

  9. Скриншоты отзывов
  10. Статистика использования
  11. Примеры использования

Шаг 6: Улучшения на основе фидбека

  1. Проанализируйте отзывы
  2. Выделите главные проблемы
  3. Определите приоритеты

  4. Внесите улучшения

  5. Используйте LLM для генерации улучшений
  6. Протестируйте изменения
  7. Задеплойте новую версию

  8. Повторно соберите фидбек

  9. Покажите пользователям улучшения
  10. Убедитесь, что проблемы решены

Результаты лабораторной работы

В результате данной работы у вас должно быть:

  • ✅ Бот развернут и доступен для использования
  • ✅ Собрана обратная связь от реальных пользователей
  • ✅ Внесены улучшения на основе фидбека
  • ✅ Бот работает стабильно
  • ✅ Отчет с результатами использования

Критерии оценивания

  • Деплой (40%): Бот успешно развернут и работает стабильно
  • Сбор фидбека (30%): Собрана обратная связь от 3+ пользователей
  • Улучшения (20%): Внесены улучшения на основе фидбека
  • Отчет (10%): Качество отчета и документации

Отчет по лабораторной работе

Отчет должен включать:

  1. Описание деплоя
  2. Какой способ выбрали
  3. Почему именно этот
  4. URL бота (или скриншот)

  5. Процесс деплоя

  6. Пошаговая инструкция
  7. С какими проблемами столкнулись
  8. Как решили

  9. Сбор фидбека

  10. Количество пользователей
  11. Скриншоты отзывов
  12. Статистика использования

  13. Анализ фидбека

  14. Главные проблемы
  15. Что понравилось пользователям
  16. Приоритеты улучшений

  17. Улучшения

  18. Что изменили
  19. Как это помогло
  20. Новый фидбек (если есть)

  21. Выводы

  22. Что получилось хорошо
  23. Что можно улучшить дальше
  24. Чему научились

Полезные ссылки

Часто задаваемые вопросы

Q: Какой способ деплоя выбрать?
A: Для начала - Railway или Render. Они самые простые и бесплатные.

Q: Что если бот упал?
A: Проверьте логи, найдите ошибку, исправьте и задеплойте заново. Это нормально!

Q: Нужно ли платить за хостинг?
A: Нет, все предложенные платформы имеют бесплатный тариф для небольших проектов.

Q: Как собрать фидбек, если нет пользователей?
A: Попросите друзей, коллег, однокурсников. Можно даже использовать бота самому и записать видео.

Q: Что если пользователи не хотят тестировать?
A: Сделайте бота полезным для них - решите их реальную проблему!

Q: Сколько должно быть пользователей?
A: Минимум 3-5 человек. Больше - лучше, но качество важнее количества.

Q: Как долго должен работать бот?
A: Минимум несколько дней для сбора фидбека. Для защиты - достаточно показать, что он работает.