Add files via upload

Initial project upload
This commit is contained in:
nini52 authored and GitHub committed 2026-07-08 09:06:08 +03:00
commit 126e76963c
20 files changed
+1227

No files matched your search

+230
View File
@@ -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()