Telegram-бот для проверки корректности SQL-запросов с интеллектуальным анализом ошибок на базе GigaChat API. Бот позволяет пользователям регистрироваться, выполнять SQL-запросы, проверять их и получать подробные объяснения обнаруженных ошибок.
- Система регистрации пользователей с полными данными (ФИО)
- Проверка корректности SQL-запросов через SQLite
- Интеллектуальный анализ ошибок с использованием GigaChat
- Интерактивный режим диалога для помощи с запросами
- Система периодической отправки статистики
- Логирование действий пользователей
- Система миграций базы данных
Бот включает комплексную обработку ошибок для:
- Неверного синтаксиса SQL (с детальным анализом через GigaChat)
- Проблем с подключением к базе данных
- Ошибок в процессе регистрации
- Проблем связи с GigaChat API
- Ошибок при работе планировщика задач
Все действия пользователей автоматически записываются в базу данных, включая:
- Отправленные сообщения
- Использованные команды
- Результаты проверок запросов (корректные/некорректные)
- События регистрации
- Настройки периодических уведомлений
- Python 3.8 или выше
- SQLite3
- Токен Telegram бота
- Учетные данные GigaChat API
- Клонируйте репозиторий:
git clone https://github.com/Lookingforcommit/sql_ai_bot.git
cd <директория-проекта>
- Создайте и активируйте виртуальное окружение:
python -m venv venv
Для Linux/MacOS:
source venv/bin/activate
Для Windows:
venv\Scripts\activate
- Установите зависимости:
pip install -r requirements.txt
- Создайте файл
.env
в корневой директории проекта со следующими переменными:
BOT_TOKEN=ваш_токен_telegram_бота
DB_PATH=путь_к_базе_данных.db
MIGRATIONS_DIR=путь_к_директории_миграций
GIGACHAT_API_KEY=ваш_ключ_gigachat_api
-
Создайте директорию
sqlite/data
для хранения базы данных. -
Подготовьте директорию для миграций базы данных и добавьте SQL-файлы миграций. Файлы миграций должны быть названы в последовательном порядке (например,
001_initial.sql
,002_add_users.sql
).
- Запустите бота:
python main.py
/menu
- Вывести главное меню/start
- Начать взаимодействие с ботом/register
- Начать процесс регистрации/check_sql
- Проверить SQL-запрос/quit
- Завершить разговор с SQL-ассистентом/stats
- Настроить периодические сообщения со статистикой/stop_notifications
- Отменить периодическую отправку статистики
- Отправьте команду
/register
или нажмите кнопку "Регистрация" - Следуйте инструкциям для ввода:
- Фамилии
- Имени
- Отчества
- Используйте команду
/check_sql
, за которой следует ваш запрос:
/check_sql SELECT * FROM users WHERE id = 1
-
Бот выполнит:
- Проверку синтаксиса через SQLite
- Анализ ошибок через GigaChat при необходимости
- Переход в интерактивный режим для дополнительной помощи
- Обновление статистики пользователя
-
После получения анализа ошибки вы можете:
- Задавать дополнительные вопросы об ошибке
- Запрашивать разъяснения по синтаксису SQL
- Получать предложения по улучшению запроса
- Использовать
/quit
для завершения диалога
- Используйте команду
/stats
или кнопку "Отправка статистики" - Выберите интервал отправки (1, 10, 15, 30 или 60 минут)
- Для отмены используйте команду
/stop_notifications
project/
├── src/
│ ├── ai_management.py # Интеграция с GigaChat
│ ├── configs_management.py # Управление конфигурацией
│ ├── db_management.py # Операции с базой данных
│ ├── handlers.py # Обработчики Telegram бота
│ ├── middlewares.py # Промежуточное ПО
│ └── periodic_messages.py # Управление периодическими сообщениями
├── main.py # Точка входа в приложение
├── requirements.txt # Зависимости проекта
└── .env # Переменные окружения