Перейти к содержимому
Олимжон Ахмаджонов
Все работы

Кейс · NDA — подробности по запросу

Ассистент для вопросов к корпоративным базам данных на обычном языке

Внутренний инструмент: команда задаёт вопросы к нескольким рабочим базам данных на обычном языке и получает ответ, таблицу и точный SQL — за защитным шлюзом, который делает изменение данных невозможным.

Клиент
Розничная компания, аналитический отдел
Роль
Архитектор и инженер
Сроки
Рабочий MVP · рассчитан на размещение у себя
Стек
PythonFastAPIPostgreSQL + pgvectorMySQLSQL ServersqlglotReactTypeScriptVega-Lite

Задача

Каждый бизнес-вопрос проходил через одного человека, который знал SQL и схемы нескольких баз. Ответы занимали дни, и никто не мог проверить, как получена цифра.

Обязательное условие — работа на собственных GPU компании: данные клиентов нельзя отправлять во внешний API.

Подход и архитектура

  • Сначала исследовал подходы к переводу вопросов в SQL и отдал план на ревью панели из пяти рецензентов до начала реализации.
  • Коннекторы для PostgreSQL, MySQL и SQL Server считывают схемы, ключи и примеры значений в каталог; описания, проверенные человеком, хранятся отдельно от черновиков AI.
  • Каждый запрос разбирается и проверяется до выполнения — только SELECT, разрешённые функции, принудительные лимиты строк, — а подключение с правами на запись отклоняется, пока его не подтвердит человек.
  • LLM подключается через любой OpenAI-совместимый эндпоинт — одна и та же система работает и с облачной моделью, и на локальных GPU.

Результат

Ответы приходят потоком вместе с SQL, сортируемой таблицей, экспортом в CSV и графиками; пользователи помечают хорошие ответы как проверенные — так растёт библиотека надёжных запросов.

Что обеспечило надёжность

  • Набор для оценки качества с базовыми значениями и командой-порогом — изменения промпта или модели не могут незаметно снизить качество.
  • Учётные данные хранятся зашифрованными AES-256-GCM; скрипты read-only ролей для всех трёх СУБД.
  • 100+ автотестов.

Похожая задача?

Расскажите о ней — честно оценю объём, подход и то, каким может быть первый этап.

Обсудить проект

Расскажите о задаче — достаточно нескольких предложений.

Отвечаю в течение 1–2 рабочих дней. Или напишите напрямую: oakhmadjonov.uz@gmail.com