AI-система аналізу даних з Text-to-Code: швидка генерація SQL і Python

Аналітики витрачають години на ручні вивантаження, а бізнес-рішення чекають на цифри. Ми розробляємо AI-систему аналізу даних під ключ: вона перетворює запитання звичайною мовою на готовий запит і скорочує час підготовки вибірок у рази. Обговоримо задачу й повернемося з оцінкою та планом.
Часті запитання

AI-аналіз даних: де ламається ручний контур

AI-аналіз даних упирається не в модель, а в ручний контур навколо неї.

Питання бізнесу надходить формулюванням природною мовою, аналітик перекладає його в запит, узгоджує логіку вибірки з власником метрики, чекає на вивантаження — і проходить цей шлях заново для кожного наступного формулювання.

Вузьке місце аналітики тут не у швидкості виконання запиту, а в циклі узгоджень.

Поки логіка вибірки не зафіксована й не відтворювана, будь-який розрахунок залишається чернеткою: цифру не можна захистити перед керівником, а ручні вивантаження звітності живуть довше, ніж гіпотеза, заради якої їх робили.

Генерація SQL за питанням зміщує роботу аналітика з набору тексту на перевірку сенсу. Модель будує чернетковий запит за описом і схемою даних, а людина контролює те, що справді ламає звіти: межі періодів, з'єднання таблиць, дублі та пропуски, визначення метрики.

Кожен такий запит стає повторно використовуваним: однакові питання отримують однакову логіку, а не дев'ять різних трактувань «активних клієнтів». Змінюється й черга — частина питань закривається прямо з інтерфейсу, не доходячи до аналітика.

Далі розбираємо, де саме ручний контур дає збій і як його закривають: покроково, з перевіркою результату на історичних даних і на вже узгоджених звітах.

Ефект від Text-to-Code в аналізі даних

Text-to-Code не замінює аналітика, а знімає з нього рутину. Модель розбирає формулювання природною мовою, звіряє його зі схемою вітрин і збирає SQL або Python, який одразу йде на виконання. Різниця видна не в демонстрації, а в потоці завдань: типові звернення перестають чекати в черзі.

Скільки часу економить генерація типових вибірок

Типова вибірка — з'єднання кількох таблиць, фільтр за періодом і агрегація за двома-трьома розрізами. Вручну такий запит збирається від пів години до двох, а якщо поля й гранулярність потрібно уточнювати в замовника — довше.

Генерація дає робочу чернетку за секунди, і людина перевіряє лише сенс результату: у наших замовників 55–70% таких звернень закриваються без аналітика.

Клас помилок, який зникає разом із ручним кодом

Головне джерело помилок у ручному коді — логіка з'єднань: неправильно вибраний тип зв'язку, втрата рядків при внутрішньому з'єднанні замість зовнішнього, різна гранулярність ключів, дублі на зв'язках «багато до багатьох».

Генератор будує граф з'єднань за описаними зв'язками в каталозі даних, тому такий клас помилок не відтворюється; результат звіряється на контрольних сумах, а не на око.

«Кожен згенерований запит проходить перевірку прав на рівні ролі: якщо в користувача немає доступу до вітрини, він не виконається, навіть коли код зібрано коректно», — інженер нашої команди.

Разом це перерозподіляє навантаження: аналітики йдуть від потоку однотипних заявок до моделювання й розбору спірних даних, а строк відповіді на типове питання вимірюється хвилинами замість днів.

Режими генерації запитів: порівняння варіантів

Режим генерації обирають не за «потужністю» моделі, а за чутливістю даних і ціною помилки в запиті. Нижче — реальні альтернативи, між якими проходить вибір, і те, чим кожна обмежена на практиці.

Варіант Коли підходить Обмеження
Генерація лише SQL Вітрини та звіти за стабільною схемою Модель не подужає багатокрокову логіку й не вийде за синтаксис одного діалекту
Генерація SQL і скриптів обробки Потрібна підготовка даних до розрахунку Помилку в проміжному кроці складніше локалізувати
Обов'язкова перевірка схеми й прав Доступ до чутливих таблиць Частина запитів відсікається, потрібен актуальний каталог метаданих
Локальна модель у закритому контурі Дані не покидають периметр замовника Вужче вікно контексту, слабша на нестандартних формулюваннях
Гібрид: генерація + ручна ревізія Регламентна звітність і регулярні розрахунки З'являється затримка на ревізію, у контурі потрібен інженер

Де проходить межа застосовності моделі

Межа проходить там, де закінчується опис схеми й починається знання предметної області: зв'язки між довідниками, історичність, правила виключення дублів.

Чим повніший каталог метаданих і права ролей віддано моделі, тим точніша генерація — але перевірку схеми даних усе одно залишаємо обов'язковим кроком, а не опцією.

Обмеження за навантаженням і обсягом даних

Модель працює з описом даних, а не з самими рядками, тому обсяг таблиць на якість запиту майже не впливає — впливає число зв'язків і неоднозначність назв.

Гібридний режим вмикаємо, коли запит іде в регулярний розрахунок: генерація збирає чернетку, ревізія фіксує перевірений варіант.

Етапи впровадження: від аудиту джерел до передачі

Починаємо не з моделі, а з інвентаризації даних: поки невідомо, де лежать показники й хто відповідає за їхню коректність, генератор видає переконливі, але неправильні цифри.

  1. Аудит джерел даних. Фіксуємо, звідки береться кожна метрика, де дані розходяться й які таблиці дублюють одна одну.
  2. Словник термінів. Узгоджуємо формулювання показників і розрізів, зіставляємо кожному терміну таблиці та формулу розрахунку.
  3. Доступи й ролі. Відкриваємо підключення лише на читання й розмежовуємо видимість за підрозділами.
  4. Підключення до сховища. Завантажуємо схему, словник і правила розрахунків, перевіряємо зв'язку на живих питаннях.
  5. Еталонні питання. Збираємо контрольний набір типових питань із заздалегідь відомими відповідями.
  6. Замір точності. Звіряємо відповіді з еталоном, розбираємо розходження, доопрацьовуємо словник до цільової частки правильних відповідей.
  7. Передача рішення. Віддаємо інструкції, регламент поповнення словника й навчаємо команду.

Як описуємо бізнес-терміни для моделі

Термін описується трьома частинами: як його називає бізнес, з яких таблиць беруться дані та за якою формулою рахується показник. Синоніми відділів прив'язуємо до того самого терміна — питання «виручка за регіоном» і «продажі в області» приводять до одного розрахунку.

Як перевіряємо точність на контрольному наборі питань

Набір збираємо з реальних питань замовника з порахованими вручну відповідями. Після кожної правки словника прогін повторюється — видно, що доопрацювання не зламало раніше правильні запити.

Що передаємо замовнику разом із системою

Систему не можна вважати зданою, поки в команди замовника не залишиться документів, за якими вона працює без нас. Тому разом із робочим контуром передаємо комплект, що описує не лише що натискати, а й чому рішення влаштовано саме так.

  • Схема джерел і зв'язків — які таблиці, вивантаження й довідники беруть участь в аналізі, за якими ключами з'єднуються і де можливі розходження.
  • Політики доступу й ролі — хто бачить сирі дані, хто працює лише з агрегатами, хто має право змінювати правила генерації запитів.
  • Набір контрольних питань — типові формулювання аналітиків з еталонним результатом: за ними перевіряють систему після кожного оновлення.
  • Інструкції для аналітиків — як формулювати питання, щоб отримати коректний запит, і що робити при розходженні з очікуванням.
  • Каталог збережених запитів — перевірені SQL- і Python-скрипти з позначками, які можна повторно використовувати.

Словник термінів і правила перекладу

Ключовий документ: він фіксує, як слова бізнесу перетворюються на поля бази. «Виручка» — це відвантаження чи оплата, за який період, з якими виключеннями. Без словника два аналітики задають одне питання й отримують різні цифри.

Регламент супроводу при зміні схеми

Перейменоване поле або новий статус замовлення ламає частину запитів. Регламент описує, хто повідомляє про зміну, у який строк оновлюються словник і правила перекладу та як проганяються контрольні питання — розходження виявляється до того, як аналітик побачить неправильну цифру.

Кейс: прибрали ручні вивантаження й прискорили вибірки

Що було до впровадження

Напрям збирав операційну звітність вручну: близько 45 запитів на тиждень ішло аналітикам, черга вишиковувалася на 2-3 дні. Кожен звіт збирався вивантаженнями з кількох систем, а та сама метрика в різних файлах рахувалася по-різному — частка розходжень сягала 15%. Рішення ухвалювалися за даними, які встигали застаріти, поки готувався звіт.

Ми підключили шар Text-to-Code поверх наявного сховища: співробітник формулює питання словами, система будує запит до узгоджених вітрин і повертає результат за секунди. Права доступу, довідники й визначення метрик залишилися тими самими — змінився лише спосіб отримати вибірку.

Результат у цифрах і що змінилося в процесі

  • 68% запитів закриваються самостійно, без аналітика: звіт «у моменті» замість очікування в черзі.
  • Час очікування звіту скоротився з 2-3 днів до хвилини, повторний розрахунок — одразу після уточнення формулювання.
  • Частка помилок у розрахунках упала з 15% до 3%: відповіді будуються за однією семантикою метрик, ручне копіювання зникло.
  • Потік запитів аналітикам знизився з 45 до 13 на тиждень — вивільнений час пішов на моделювання й якість даних.

«Раніше половина нарад починалася з питання, чому цифри не сходяться. Тепер сперечаємося про рішення, а не про вивантаження», — керівник напряму аналітики Nordline Retail.

Чим генерація запитів відрізняється від панелей звітів?

Готовий звіт — це заздалегідь зафіксоване питання до даних: метрики, зрізи й фільтри, визначені до того, як користувач відкрив панель. Він відповідає швидко й однаково в усіх, бо розрахунок спирається на описану модель і кешується.

Але щойно потрібен нестандартний зріз — інша комбінація вимірювань, нова когорта, — готовий набір закінчується, і запит іде в чергу до розробника.

Генерація довільних вибірок починається там, де питання з'являється швидше, ніж його встигають описати у звіті. Аналітик формулює його словами, система збирає SQL або скрипт на Python за реальною схемою даних, звіряє назви таблиць і полів і повертає результат.

Ключове тут не «магія мови», а два обмеження: побудова йде лише за описаною схемою і з правами на читання, а сам запит залишається перевірюваним — його можна показати, поправити й зберегти.

Одне не замінює інше: панель передбачувана, дешева в розрахунку й годиться для регулярних показників, де всі дивляться на ті самі числа.

Аналітика на запит виграє в гнучкості, але потребує ресурсів на виконання й валідації результату — без неї легко отримати синтаксично коректну й безглузду відповідь. Тому обидва шари розумно тримати разом, розводячи їх за призначенням.

На практиці регулярні метрики живуть у готових звітах, а генерація працює поверх тієї самої семантичної моделі — спільних визначень полів, метрик і фільтрів. Тоді довільна вибірка не розходиться з панеллю в цифрах, а вдалий запит стає кандидатом у новий звіт.

Різниця підходів не в тому, який із них сучасніший, а в тому, наскільки питання було відоме заздалегідь.

Технічні сумніви перед стартом проєкту

Технічні сумніви зазвичай спливають на етапі оцінки, а не на пілоті — і це правильний момент, щоб їх зняти. Нижче — те, що найчастіше запитують інженери й керівники напрямів до старту.

Наскільки точно модель перекладає питання в запит?

Точність перекладу перевіряється не на демо, а на вашому наборі питань: ми збираємо 50-100 реальних формулювань аналітиків, проганяємо їх і звіряємо результат з еталонними вибірками.

Модель повертає не лише запит, а й проміжне представлення — за ним видно, де вона вгадала умову, а де підставила неправильний фільтр. Схему таблиць і зв'язки між ними система читає з метаданих сховища, тому спирається на фактичні назви полів, а не на здогадки.

Тяжкі вибірки покладуть бойове сховище?

Запити йдуть в окремий контур виконання з обмеженням за часом і обсягом видачі, а не напряму в промислову базу. Система переписує агрегати, підставляє партиціювання за датою й відсікає зайві з'єднання — на типових звітах це скорочує час відповіді в рази.

Якщо оцінка вартості запиту перевищує поріг, він не запускається: користувач отримує попередження й пропозицію звузити період.

Як розмежувати доступ між підрозділами?

Права успадковуються з вашої системи автентифікації, а правила видимості описуються на рівні таблиць і рядків — співробітник одного напряму не побачить дані іншого, навіть якщо сформулює питання коректно.

Кожне звернення до моделі й кожен згенерований запит потрапляють у журнал із зазначенням користувача, часу й задіяних сутностей.

Чи можна працювати без зовнішніх сервісів?

Так. У закритому контурі розгортається власна модель перекладу в запит, без звернень до зовнішніх API, — дані не покидають ваш периметр. Вимоги до обладнання ми рахуємо заздалегідь, виходячи з обсягу метаданих і числа одночасних користувачів.

Що з уже розгорнутим сховищем?

Наявне сховище залишається джерелом істини: ми не переносимо дані й не змінюємо схему, а підключаємося до нього як до зовнішнього джерела. Шар описів — які таблиці й поля доступні моделі, як називаються бізнес-сутності — налаштовується поверх і оновлюється в міру розвитку схеми.

Обговоримо задачу й повернемося з оцінкою та планом

Щоб розмова про систему AI-аналізу даних одразу переходила в оцінку, а не в загальні міркування про можливості технології, корисно прийти з фактурою.

Нижче — те, що реально впливає на архітектуру й строки: за цими пунктами ми рахуємо трудовитрати, обираємо спосіб підключення до сховищ і визначаємо межі перевірок.

  • Список джерел даних: які бази, сховища й файли в роботі, як часто змінюється схема, чи є вітрини з уже узгодженими метриками.
  • Приклади типових питань: 15-30 формулювань від аналітиків і керівників — на них налаштовується генерація запитів, за ними ж рахується точність на прийманні.
  • Вимоги щодо доступів: обліковий запис лише на читання, дозволені схеми, куди системі можна записувати результат, що заборонено читати й зберігати в логах.
  • Обмеження контуру: де розгортається система, чи є ізольований сегмент, свої правила зберігання історії запитів і знеособлення даних.
  • Критерії результату: що вважаємо успіхом — частка питань, закриваних без інженера, час до першої відповіді, частка розрахунків з обов'язковою перевіркою людиною.
  • Власники й приймання: хто відповідає за метрики й хто приймає етапи плану впровадження.

Опишіть задачу у вільній формі — повернемося з оцінкою проєкту та планом впровадження, де за кожним етапом зафіксовані очікуваний результат і точка перевірки.

Напрямки AI-розробки

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1393
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1368
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    815
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1139