Розробка AI Data Analyst — цифровий аналітик даних Text-to-SQL

Керівникові потрібні цифри за хвилини, а команда збирає звіти днями — і будь-яка помилка підриває довіру до даних. Ми розробляємо AI Data Analyst під ключ: цифровий аналітик відповідає на запитання до бази звичайною мовою. Скорочуємо терміни підготовки відповідей у кілька разів і тримаємо достовірність під контролем.
Часті запитання

Чому AI Data Analyst помиляється в цифрах і руйнує довіру

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

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

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

Відрізнити «даних немає» від «дані не знайшлися» за відповіддю неможливо, і саме тут довіра до цифр ламається найтихіше.

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

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

Для користувача всі ці випадки виглядають однаково — гарна відповідь із графіком, яку нема чим перевірити.

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

Ефект впровадження: терміни відповідей і достовірність цифр

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

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

Що ми фіксуємо на прийманні. Час від питання до готової цифри за типовими показниками падає з годин до секунд, а повторний запит уже не потребує участі інженера.

Частка питань, закритих без аналітика, зазвичай виходить на 60–80%: решта — важкі розрахунки, нові джерела й спірні визначення метрик, які свідомо залишаються за командою даних.

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

Достовірність забезпечує не сама модель, а контур перевірки навколо неї. Кожна метрика описана один раз: формула, джерело, фільтри, права доступу.

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

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

Варіанти реалізації та їхні технічні обмеження

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

Одна справа — відповідати за відкритим набором метрик, інша — звертатися до робочого сховища з персональними даними.

Варіант Коли підходить Чим обмежений
Готовий сервіс аналітики Потрібен результат швидко, дані некритичні, команда невелика Запити й схема даних ідуть на чужий бік, тонке налаштування під вашу модель даних недоступне
Розгортання в закритому контурі Персональні дані, вимоги регулятора, заборона на зовнішні виклики Потрібні власні потужності, оновлення моделей — на вашому боці, запуск довший
Гібридна схема Частину даних можна віддавати назовні, частину — не можна Складніша маршрутизація: потрібно явно розділяти, що йде за периметр, і стежити за цим
Семантична надбудова над сховищем Уже є вітрини й звітність, потрібен шар питань Обмежена складом вітрин: чого немає в моделі даних, того аналітик не побачить

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

Порядок робіт: від аудиту джерел до передачі

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

  1. Аудит даних. Інвентаризуємо джерела, збираємо профіль таблиць: частка порожніх значень, дублікати записів, розбіжності в довідниках, часові пояси в датах. На виході — перелік полів, придатних для аналітики, і окремий список того, що потребує чищення на боці власника системи.
  2. Проєктування рішення. Фіксуємо сутності та зв’язки, будуємо семантичний шар: метрики, виміри, синоніми бізнес-термінів. Окремо узгоджуємо спірні показники — як рахувати виручку з поверненнями, що таке активний клієнт, за який період беремо порівняння.
  3. Налаштування прав доступу. Розмежовуємо ролі та видимість рядків, вмикаємо журналювання кожного запиту: хто спитав, що отримав. Керівник філії бачить свої дані й не бачить чужі — без ручних вивантажень і листування.
  4. Складання та налаштування. Підключаємо джерела, перекладаємо питання природною мовою в запити до бази, домагаємося стійкості до різних формулювань одного й того самого питання. Часті звернення кешуємо, важкі рахуємо за розкладом.
  5. Приймання на контрольних питаннях. Готуємо набір із кількох десятків реальних питань з еталонними відповідями й звіряємо результат порядково. Якщо розбіжність — дивимося, у семантиці помилка чи в даних, і правимо до підписання.
  6. Передача й навчання. Віддаємо документацію щодо семантичного шару, інструкції для користувачів, розбір типових помилок і регламент: що робимо при зміні структури джерела. Навчаємо робочу групу й супроводжуємо перші тижні самостійної роботи.

Що залишається у вас: конфігурації, схеми, регламенти

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

  • Опис моделі даних — підключені джерела, використовувані таблиці та зв’язки, місця, де поля трактуються неоднозначно, і прийняті щодо них рішення.
  • Словник показників — кожне бізнес-поняття прив’язане до формули, джерела та фільтрів; розбіжність у трактуванні між відділами видно на етапі налаштування, а не в готовому звіті.
  • Політики доступу — ролі, розмежування на рівні рядків і колонок, маскування персональних даних, журнал звернень: видно, хто й яке питання задавав.
  • Передача конфігурації — файли підключень, параметри обробки запитів, розклад оновлення словника, версіонування налаштувань у вашому репозиторії.
  • Схема розгортання — де працює сервіс, як пов’язаний зі сховищем, які точки відмови та як виконується відкат на попередню версію.
  • Набір перевірних питань — еталонні пари «питання → правильна відповідь», за якими перевіряється коректність після будь-якої правки моделі.
  • Інструкції для користувачів — як формулювати питання, які уточнення система запитає, що робити, якщо відповідь виглядає сумнівною.
  • Регламент оновлення — хто править словник при зміні схеми джерела, як зміни тестуються й хто підтверджує випуск.

Кейс: як підняли частку правильних відповідей з 62% до 94%

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

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

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

Що змінили

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

Запит не йде до користувача, поки не пройде перевірку на виконання, на допустимі таблиці та на ліміт рядків, а при помилці бази система розбирає повідомлення й перебудовує з’єднання.

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

Що стало

Частка правильних відповідей зросла з 62% до 94% на тому самому наборі; залишок — питання поза доменом, їх система чесно відхиляє. Середній час підготовки цифри скоротився з двох-трьох днів до кількох хвилин разом із перевіркою джерела.

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

Чим AI-аналітик відрізняється від регулярної звітності?

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

Її сила — у повторюваності: розбіжність між звітами видно відразу, а результат не залежить від того, хто дивиться: і звіт, і фільтри, і порядок зрізів задані заздалегідь.

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

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

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

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

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

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

Сумніви щодо якості даних, доступів і навантаження

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

Довідники брудні, частину значень введено вручну

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

У співробітників різні права, не всі бачать потрібні таблиці

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

Чи не зросте навантаження на сховище

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

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

Схема зміниться після впровадження — усе зламається

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

Ці питання розбираємо на етапі проєктування, до перших запитів користувачів, — так вони не перетворюються в аварії на проді.

Обговоримо задачу: що підготувати до розмови

Щоб оцінка була предметною, а не «плюс-мінус порядок», нам достатньо кількох вступних. Вони ж стають основою критеріїв приймання: за ними потім перевіряємо, що цифровий аналітик відповідає на реальні питання співробітників, а не на демонстраційні.

  • Постановка задачі — які рішення ухвалюють за даними й що заважає зараз: довгі вивантаження, черга до аналітика, звіти, зібрані вручну.
  • Перелік джерел — бази, сховища, таблиці та представлення, словник метрик; що вважається «істиною», якщо цифри у звітах розходяться.
  • Зразки питань — 20–50 формулювань так, як їх реально задають співробітники, з очікуваними відповідями хоча б для частини.
  • Правила доступу — під яким обліковим записом працює аналітик, які таблиці й колонки йому закриті, як маскуються персональні дані.
  • Межі допустимого — лише читання, ліміт рядків у відповіді, поведінка при неоднозначному запиті: уточнити в користувача чи відмовити.
  • Критерії приймання — частка питань із набору, на які відповідь правильна, як звіряємо числовий збіг і що вважаємо помилкою.
  • Експлуатація — де розгортаємо, хто власник, як оновлюються описи таблиць при зміні схеми.

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

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

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

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