Copilot для аналитики: запросы к БД на естественном языке
Вопрос на русском превращается в безопасный SELECT, таблицу и график — без доступа к PII и без записи в БД.
LangChain, NL2SQL, PostgreSQL, Python, React
Клиент — retail-сеть (80+ магазинов), отдел аналитики и региональные менеджеры. Простой отчёт «выручка по регионам за квартал» требовал заявки в BI-команду и занимал 1–2 дня. SQL знали единицы; дашборды в Looker покрывали только типовые срезы, ad-hoc вопросы оставались в очереди.
Задача: copilot для аналитики — вопрос на русском → безопасный SQL → таблица и график. Только read-only к витрине данных; без доступа к сырым PII и без возможности изменять данные.
- semantic layer: описание таблиц, метрик, связей на языке бизнеса (dbt/docs);
- агент NL→SQL: генерация запроса + валидация (только SELECT, whitelist таблиц и колонок);
- sandbox: лимит строк (TOP 1000), timeout 30 сек, EXPLAIN перед выполнением;
- ответ: таблица + auto-chart (bar/line/pie) + кнопка «показать SQL» для аудита;
- история запросов, избранное, шаринг ссылки на отчёт внутри компании;
- роли: менеджер (агрегаты) / аналитик (детализация) / admin;
- audit log всех запросов; блок JOIN к PII-таблицам и опасных конструкций.
Стек: Python, FastAPI, LangChain, PostgreSQL/ClickHouse, React, Plotly, Docker, SSO. Приёмка: 40 business-вопросов сверены с эталонным SQL senior-аналитика.
Итог: 80% типовых отчётов — самообслуживание; очередь к BI-команде −60%. NDA: компания не публикуется.