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

 
 
 

Contributors

Languages