Add files via upload
Initial project upload
This commit is contained in:
commit
126e76963c
20 files changed
+1227
No files matched your search
@@ -0,0 +1,230 @@
|
||||
from docx import Document
|
||||
from docx.shared import Pt, Inches, RGBColor
|
||||
from docx.enum.text import WD_ALIGN_PARAGRAPH
|
||||
from datetime import datetime
|
||||
import os
|
||||
|
||||
def create_report():
|
||||
# Создаём документ
|
||||
doc = Document()
|
||||
|
||||
# Заголовок
|
||||
title = doc.add_heading('Отчет о разработке Telegram-бота для предпринимателей', 0)
|
||||
title.alignment = WD_ALIGN_PARAGRAPH.CENTER
|
||||
|
||||
# Дата
|
||||
doc.add_paragraph(f'Дата: {datetime.now().strftime("%d.%m.%Y")}')
|
||||
doc.add_paragraph()
|
||||
|
||||
# 1. Введение
|
||||
doc.add_heading('1. Введение', level=1)
|
||||
doc.add_heading('1.1. Назначение приложения', level=2)
|
||||
doc.add_paragraph(
|
||||
'Данный Telegram-бот предназначен для помощи предпринимателям в ведении социальных сетей. '
|
||||
'Бот собирает информацию о пользователе, его бизнесе и на основе этих данных генерирует уникальный '
|
||||
'контент для различных социальных платформ (Instagram, LinkedIn, Telegram, Twitter/X).'
|
||||
)
|
||||
|
||||
doc.add_heading('1.2. Основные функции', level=2)
|
||||
doc.add_paragraph('• Регистрация пользователей с сохранением данных в SQLite', style='List Bullet')
|
||||
doc.add_paragraph('• Выбор из 9 видов предпринимательской деятельности', style='List Bullet')
|
||||
doc.add_paragraph('• Генерация контента для соцсетей с использованием нейросетей', style='List Bullet')
|
||||
doc.add_paragraph('• Управление ботом через команды в Telegram', style='List Bullet')
|
||||
doc.add_paragraph('• Интуитивно понятный интерфейс с кнопками', style='List Bullet')
|
||||
|
||||
# 2. Архитектура
|
||||
doc.add_heading('2. Архитектура приложения', level=1)
|
||||
doc.add_heading('2.1. Структура проекта', level=2)
|
||||
|
||||
doc.add_paragraph('''
|
||||
telegram_bot/
|
||||
├── .env # Переменные окружения
|
||||
├── config.py # Загрузка конфигурации
|
||||
├── database.py # Работа с SQLite
|
||||
├── main.py # Точка входа
|
||||
├── requirements.txt # Список библиотек
|
||||
├── ai_core/
|
||||
│ ├── __init__.py
|
||||
│ └── neural_network.py # Нейросеть
|
||||
├── handlers/
|
||||
│ ├── __init__.py
|
||||
│ ├── registration.py
|
||||
│ ├── menu.py
|
||||
│ └── content.py
|
||||
└── keyboards/
|
||||
├── __init__.py
|
||||
└── reply_keyboards.py
|
||||
''', style='Normal')
|
||||
|
||||
# 3. Библиотеки
|
||||
doc.add_heading('3. Используемые библиотеки', level=1)
|
||||
doc.add_heading('3.1. Основные зависимости', level=2)
|
||||
|
||||
libs = [
|
||||
('pytelegrambotapi', 'Работа с Telegram Bot API'),
|
||||
('sqlite3', 'Легковесная база данных (встроенная)'),
|
||||
('python-dotenv', 'Загрузка переменных из .env'),
|
||||
('requests', 'HTTP-запросы к API'),
|
||||
('groq', 'API для работы с нейросетями Groq'),
|
||||
('python-docx', 'Создание Word-документов'),
|
||||
]
|
||||
|
||||
table = doc.add_table(rows=1, cols=2)
|
||||
table.style = 'Table Grid'
|
||||
hdr_cells = table.rows[0].cells
|
||||
hdr_cells[0].text = 'Библиотека'
|
||||
hdr_cells[1].text = 'Назначение'
|
||||
|
||||
for lib, desc in libs:
|
||||
row_cells = table.add_row().cells
|
||||
row_cells[0].text = lib
|
||||
row_cells[1].text = desc
|
||||
|
||||
doc.add_paragraph()
|
||||
|
||||
# 4. База данных
|
||||
doc.add_heading('4. База данных', level=1)
|
||||
doc.add_heading('4.1. Схема таблиц', level=2)
|
||||
|
||||
doc.add_paragraph('Таблица users:')
|
||||
table2 = doc.add_table(rows=1, cols=3)
|
||||
table2.style = 'Table Grid'
|
||||
hdr = table2.rows[0].cells
|
||||
hdr[0].text = 'Поле'
|
||||
hdr[1].text = 'Тип'
|
||||
hdr[2].text = 'Описание'
|
||||
|
||||
fields = [
|
||||
('id', 'INTEGER PRIMARY KEY', 'Уникальный ID записи'),
|
||||
('telegram_id', 'INTEGER UNIQUE', 'ID пользователя в Telegram'),
|
||||
('name', 'TEXT', 'Имя пользователя'),
|
||||
('phone', 'TEXT', 'Номер телефона'),
|
||||
('business_type', 'INTEGER', 'ID вида бизнеса (1-9)'),
|
||||
('description', 'TEXT', 'Описание бизнеса'),
|
||||
('registered', 'BOOLEAN', 'Флаг завершения регистрации'),
|
||||
]
|
||||
|
||||
for field, typ, desc in fields:
|
||||
row = table2.add_row().cells
|
||||
row[0].text = field
|
||||
row[1].text = typ
|
||||
row[2].text = desc
|
||||
|
||||
# 5. Виды бизнеса
|
||||
doc.add_heading('4.2. 9 видов предпринимательства', level=2)
|
||||
|
||||
business_types = [
|
||||
('1', '🛒 Розничная торговля'),
|
||||
('2', '🏭 Производство'),
|
||||
('3', '💻 IT-услуги'),
|
||||
('4', '📚 Образование'),
|
||||
('5', '🏥 Медицина'),
|
||||
('6', '🚚 Логистика'),
|
||||
('7', '🏨 Гостиничный бизнес'),
|
||||
('8', '🎨 Маркетинг и реклама'),
|
||||
('9', '🔧 Услуги (ремонт, клининг)'),
|
||||
]
|
||||
|
||||
table3 = doc.add_table(rows=1, cols=2)
|
||||
table3.style = 'Table Grid'
|
||||
hdr = table3.rows[0].cells
|
||||
hdr[0].text = 'ID'
|
||||
hdr[1].text = 'Название'
|
||||
|
||||
for bid, bname in business_types:
|
||||
row = table3.add_row().cells
|
||||
row[0].text = bid
|
||||
row[1].text = bname
|
||||
|
||||
# 6. Управление
|
||||
doc.add_heading('5. Управление ботом', level=1)
|
||||
doc.add_heading('5.1. Команды Telegram', level=2)
|
||||
|
||||
table4 = doc.add_table(rows=1, cols=2)
|
||||
table4.style = 'Table Grid'
|
||||
hdr = table4.rows[0].cells
|
||||
hdr[0].text = 'Команда'
|
||||
hdr[1].text = 'Описание'
|
||||
|
||||
commands = [
|
||||
('/start', 'Начать работу / открыть меню'),
|
||||
('/help', 'Показать справку'),
|
||||
('/status', 'Показать статус бота'),
|
||||
('/stop', 'Остановить бота'),
|
||||
('/restart', 'Перезапустить бота'),
|
||||
]
|
||||
|
||||
for cmd, desc in commands:
|
||||
row = table4.add_row().cells
|
||||
row[0].text = cmd
|
||||
row[1].text = desc
|
||||
|
||||
# 7. Нейросеть
|
||||
doc.add_heading('6. Нейросетевая составляющая', level=1)
|
||||
doc.add_heading('6.1. Используемые модели', level=2)
|
||||
|
||||
table5 = doc.add_table(rows=1, cols=3)
|
||||
table5.style = 'Table Grid'
|
||||
hdr = table5.rows[0].cells
|
||||
hdr[0].text = 'Модель'
|
||||
hdr[1].text = 'Провайдер'
|
||||
hdr[2].text = 'Назначение'
|
||||
|
||||
models = [
|
||||
('llama-3.3-70b-versatile', 'Groq', 'Генерация постов'),
|
||||
('mixtral-8x7b-32768', 'Groq', 'Альтернативная модель'),
|
||||
]
|
||||
|
||||
for model, provider, purpose in models:
|
||||
row = table5.add_row().cells
|
||||
row[0].text = model
|
||||
row[1].text = provider
|
||||
row[2].text = purpose
|
||||
|
||||
# 8. Установка
|
||||
doc.add_heading('7. Установка и запуск', level=1)
|
||||
|
||||
doc.add_heading('7.1. Установка зависимостей', level=2)
|
||||
doc.add_paragraph('pip install -r requirements.txt', style='Normal')
|
||||
|
||||
doc.add_heading('7.2. Настройка переменных окружения', level=2)
|
||||
doc.add_paragraph('.env:')
|
||||
doc.add_paragraph('TELEGRAM_TOKEN=ваш_токен_от_BotFather', style='Normal')
|
||||
doc.add_paragraph('GROQ_API_KEY=gsk_ваш_ключ_из_console.groq.com', style='Normal')
|
||||
|
||||
doc.add_heading('7.3. Запуск', level=2)
|
||||
doc.add_paragraph('python main.py', style='Normal')
|
||||
|
||||
# 9. Примеры
|
||||
doc.add_heading('8. Примеры работы', level=1)
|
||||
doc.add_paragraph('Сценарий регистрации:')
|
||||
doc.add_paragraph('1. Пользователь вводит /start', style='List Number')
|
||||
doc.add_paragraph('2. Бот запрашивает имя', style='List Number')
|
||||
doc.add_paragraph('3. Бот запрашивает телефон (кнопка)', style='List Number')
|
||||
doc.add_paragraph('4. Бот показывает 9 видов бизнеса (кнопки)', style='List Number')
|
||||
doc.add_paragraph('5. Бот запрашивает описание бизнеса', style='List Number')
|
||||
doc.add_paragraph('6. Регистрация завершена → главное меню', style='List Number')
|
||||
|
||||
# 10. Заключение
|
||||
doc.add_heading('9. Заключение', level=1)
|
||||
doc.add_paragraph(
|
||||
'Разработанный Telegram-бот представляет собой полностью функциональное решение '
|
||||
'для предпринимателей, желающих автоматизировать создание контента для социальных сетей.'
|
||||
)
|
||||
|
||||
doc.add_heading('Ключевые достижения:', level=2)
|
||||
doc.add_paragraph('• Модульная архитектура', style='List Bullet')
|
||||
doc.add_paragraph('• Интеграция с нейросетями (Groq)', style='List Bullet')
|
||||
doc.add_paragraph('• Удобный интерфейс с кнопками', style='List Bullet')
|
||||
doc.add_paragraph('• Локальное хранение данных (SQLite)', style='List Bullet')
|
||||
doc.add_paragraph('• Гибкая система шаблонов', style='List Bullet')
|
||||
doc.add_paragraph('• Управление через Telegram-команды', style='List Bullet')
|
||||
|
||||
# Сохраняем
|
||||
filename = f'Отчет_о_разработке_бота_{datetime.now().strftime("%Y%m%d")}.docx'
|
||||
doc.save(filename)
|
||||
print(f'✅ Отчет создан: {filename}')
|
||||
print(f'📁 Файл сохранен в: {os.path.abspath(filename)}')
|
||||
|
||||
if __name__ == '__main__':
|
||||
create_report()
|
||||
Reference in new issue
Block a user