Клиент — 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-вопросов сверены с этalon SQL senior-аналитика. Итог: 80% типовых отчётов — самообслуживание; очередь к BI-команде −60%. NDA: компания не публикуется.