Кейс · 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+ автотестов.
Похожая задача?
Расскажите о ней — честно оценю объём, подход и то, каким может быть первый этап.