Опис проекту:
Необхідно розробити Telegram бота для генерації SEO текстів для сайту Trast.ua. Бот повинен приймати URL категорії або продукту, генерувати SEO текст з використанням API OpenAI, і зберігати результат в базі даних.
Основні вимоги:
1. **Технологічний стек**:
- Python 3.10
- Aiogram для Telegram бота
- Quart для веб-сервера
- SQLite для бази даних
- Aiohttp для асинхронних HTTP запитів
- BeautifulSoup4 для парсингу HTML
- Pytest для написання тестів
2. **Функціональні вимоги**:
- **Команда /start**: Відправлення вітального повідомлення з кнопкою "START".
- **Кнопка "START"**: При натисканні бот повинен запитати URL категорії або продукту.
- **Обробка URL**: Бот повинен приймати URL, перевіряти його валідність і генерувати SEO текст за допомогою OpenAI API.
- **Збереження SEO тексту**: Бот повинен зберігати згенерований SEO текст в базі даних.
- **Відправлення SEO тексту**: Бот повинен відправляти згенерований SEO текст користувачеві.
3. **Нефункціональні вимоги**:
- **Продуктивність**: Бот повинен обробляти запити і генерувати SEO текстів протягом 5 секунд.
- **Тестування**: Усі основні функції повинні бути покриті тестами з використанням Pytest.
- **Документація**: Весь код повинен бути добре документованим і супроводжуватися інструкцією з запуску та налаштування.
#### Деталізація завдань:
1. **Розробка Telegram бота**:
- Налаштування Aiogram.
- Реалізація команди `/start`.
- Обробка натискання кнопки "START".
- Обробка повідомлень з URL.
- Генерація SEO тексту з використанням OpenAI API.
- Відправлення згенерованого тексту користувачеві.
2. **Розробка веб-сервера**:
- Налаштування Quart.
- Реалізація маршруту `/generate` для генерації SEO тексту за URL.
3. **Робота з базою даних**:
- Налаштування SQLite.
- Створення таблиць для зберігання категорій і продуктів.
- Функції для збереження та отримання даних з бази.
4. **Тестування**:
- Написання тестів для основних функцій бота.
- Тестування генерації SEO текстів.
- Тестування роботи з базою даних.
5. **Документація**:
- Опис установки та налаштування середовища.
- Інструкція з запуску бота і веб-сервера.
- Опис структури бази даних.
#### Приклад структури проекту:
```
project/
│
├── app.py # Файл Quart додатку
├── bot.py # Файл Telegram бота
├── db_manager.py # Управління базою даних
├── seo_generator.py # Генерація SEO текстів
├── config.py # Конфігураційні параметри
├── gunicorn_conf.py # Конфігурація Gunicorn
│
├── tests/ # Папка з тестами
│ ├── test_app.py
│ ├── test_bot.py
│ ├── test_db_manager.py
│ └── test_seo_generator.py
│
├── requirements.txt # Залежності проекту
├── wsgi.py # Файл для запуску додатку
└── pytest.ini # Конфігурація для Pytest
```
#### Очікувані результати:
- Робочий Telegram бот, що відповідає функціональним вимогам.
- Веб-сервер на Quart, що обробляє запити на генерацію SEO текстів.
- Коректно працююча база даних.
- Повне покриття основних функцій тестами.
- Детальна документація по проекту.
При виникненні питань або необхідності уточнень, будь ласка, зв'яжіться