Skip to content

Minimalistic telegram bot for sql queries checking. Provides AI-generated tips for queries rewriting

Notifications You must be signed in to change notification settings

Lookingforcommit/sql_ai_bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Бот-линтер для SQL-запросов

Telegram-бот для проверки корректности SQL-запросов с интеллектуальным анализом ошибок на базе GigaChat API. Бот позволяет пользователям регистрироваться, выполнять SQL-запросы, проверять их и получать подробные объяснения обнаруженных ошибок.

Возможности

  • Система регистрации пользователей с полными данными (ФИО)
  • Проверка корректности SQL-запросов через SQLite
  • Интеллектуальный анализ ошибок с использованием GigaChat
  • Интерактивный режим диалога для помощи с запросами
  • Система периодической отправки статистики
  • Логирование действий пользователей
  • Система миграций базы данных

Обработка ошибок

Бот включает комплексную обработку ошибок для:

  • Неверного синтаксиса SQL (с детальным анализом через GigaChat)
  • Проблем с подключением к базе данных
  • Ошибок в процессе регистрации
  • Проблем связи с GigaChat API
  • Ошибок при работе планировщика задач

Логирование

Все действия пользователей автоматически записываются в базу данных, включая:

  • Отправленные сообщения
  • Использованные команды
  • Результаты проверок запросов (корректные/некорректные)
  • События регистрации
  • Настройки периодических уведомлений

Системные требования

  • Python 3.8 или выше
  • SQLite3
  • Токен Telegram бота
  • Учетные данные GigaChat API

Установка

  1. Клонируйте репозиторий:
git clone https://github.com/Lookingforcommit/sql_ai_bot.git
cd <директория-проекта>
  1. Создайте и активируйте виртуальное окружение:
python -m venv venv

Для Linux/MacOS:

source venv/bin/activate

Для Windows:

venv\Scripts\activate
  1. Установите зависимости:
pip install -r requirements.txt

Настройка

  1. Создайте файл .env в корневой директории проекта со следующими переменными:
BOT_TOKEN=ваш_токен_telegram_бота
DB_PATH=путь_к_базе_данных.db
MIGRATIONS_DIR=путь_к_директории_миграций
GIGACHAT_API_KEY=ваш_ключ_gigachat_api
  1. Создайте директорию sqlite/data для хранения базы данных.

  2. Подготовьте директорию для миграций базы данных и добавьте SQL-файлы миграций. Файлы миграций должны быть названы в последовательном порядке (например, 001_initial.sql, 002_add_users.sql).

Запуск бота

  1. Запустите бота:
python main.py

Руководство по использованию

Доступные команды

  • /menu - Вывести главное меню
  • /start - Начать взаимодействие с ботом
  • /register - Начать процесс регистрации
  • /check_sql - Проверить SQL-запрос
  • /quit - Завершить разговор с SQL-ассистентом
  • /stats - Настроить периодические сообщения со статистикой
  • /stop_notifications - Отменить периодическую отправку статистики

Процесс регистрации

  1. Отправьте команду /register или нажмите кнопку "Регистрация"
  2. Следуйте инструкциям для ввода:
    • Фамилии
    • Имени
    • Отчества

Проверка SQL-запросов

  1. Используйте команду /check_sql, за которой следует ваш запрос:
/check_sql SELECT * FROM users WHERE id = 1
  1. Бот выполнит:

    • Проверку синтаксиса через SQLite
    • Анализ ошибок через GigaChat при необходимости
    • Переход в интерактивный режим для дополнительной помощи
    • Обновление статистики пользователя
  2. После получения анализа ошибки вы можете:

  • Задавать дополнительные вопросы об ошибке
  • Запрашивать разъяснения по синтаксису SQL
  • Получать предложения по улучшению запроса
  • Использовать /quit для завершения диалога

Настройка периодических уведомлений

  1. Используйте команду /stats или кнопку "Отправка статистики"
  2. Выберите интервал отправки (1, 10, 15, 30 или 60 минут)
  3. Для отмены используйте команду /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                    # Переменные окружения

Скриншоты работы

Запуск и прохождение регистрации

Запуск и прохождение регистрации

Меню бота

Меню бота

Проверка SQL-запроса

Проверка SQL-запроса

Диалог с ИИ

Диалог с ИИ

Настройка периодических сообщений

Настройка периодических сообщений

Получение периодических сообщений

Получение периодических сообщений

Структура БД

Структура БД

Блок-схема

sql_ai_bot.pdf

About

Minimalistic telegram bot for sql queries checking. Provides AI-generated tips for queries rewriting

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages