Асинхронный бот, который переводит запросы естественного языка в SQL для базы данных
Стек: aiohttp, asyncio, aiogram, sqlalchemy, alembic, pydantic, docker
- Развернуть базу данных и проект в Docker
- Загрузить предоставленный JSON-файл в базу, разложив его на нормальные таблицы.
- Реализовать асинхронного Telegram-бота, который принимает текстовые сообщения от пользователя бота на русском (естественный язык), передает это в ИИ, получает текст SQL запроса и по нему делает запрос в базу данных. Ответ возвращается пользователю в Telegram.
Проект работает с версией Python 3.11
-
Склонировать репозиторий:
git clone git@github.com:Demiat/quest_to_sql.git -
Создать и заполнить файл .env: DB_NAME=...
DB_USER=...
DB_PASSWORD=...
DB_HOST=...
DB_PORT=5432. DB_ECHO=True или False.
COMMTOBOT_TOKEN=<Токен Вашего Бота>
SBER_AUTH_TOKEN=<Токен от СБЕРА>
RqUID=<уникальный идентификатор запроса для СБЕРА>
Ключ авторизации SBER_AUTH_TOKEN получается в личном кабинете Gigachat API и передается в запросе на получение Access token
-
Запустить: docker compose up --build
-
Загрузить фикстуры в базу: docker exec -i qts-back python -m database.loader
Автор: Тарасов Дмитрий