Лідери думок
Розумне маршрутизація запитів для AI-помічників SQL: як скоротити витрати без втрати якості

П уявіть, що ваш помічник SQL – це ракета, яка пролетить через складні запити. Потім одного дня ви розумієте, що ви використовуєте ракетне паливо, щоб отримати список покупок.
Це цікаво, поки не надходить рахунок за паливо. Раптом стає зрозуміло, що прості доручення не потребують ракети. Те саме відбувається, коли кожен запит SQL, від базового пошуку до аналізу چندсхеми, маршрутизується до однієї потужної моделі AI.
Процес отримання помічника SQL зазвичай однаковий. Спочатку продуктивність зростає: запити виконуються швидше, код відходять, і розробники витрачають менше часу на написання звичайних запитів SQL. Коли更多 команд використовують його, кількість запитів зростає. Коли надходить рахунок за інфраструктуру, економіка змінюється.
Проблема полягає в будівлі. Витрати на виконання моделей AI Frontier, які можуть думати про плани виконання, схеми та складну логіку запитів, становлять багато грошей. Ціна виправдовується для складних завдань, оскільки вона становить близько $0,03 за запит. Однак при використанні для простих операторів SELECT і CRUD операцій це стає марнотратством у великих масштабах.
Але відповідь не полягає в зниженні моделі. Це полягає в тому, щоб маршрутизувати запити до правильного місця. Розумна маршрутизація запитів сортує кожен запит за складністю та маршрутизує його до відповідного рівня моделі. Цей метод може скоротити витрати на висновок на 40-70% у роботі з SQL без зниження якості виводу.
Ця стаття пояснює, як працює ця архітектура: визначення рівнів складності SQL, побудова класифікації та маршрутизації трубопроводів, вимірювання реальних торгових угод між витратами та якістю після запуску системи. Ці закономірності відображають уроки, виведені під час розробки можливостей AI, які усвідомлюють схему, у dbForge AI Assistant.
Чому одна модель не підходить для всіх завдань SQL
Не всі запити SQL однакові за складністю. Запит, який витягує користувача за первинним ключем, і той, який відновлює сесійні труби через кілька схем з вікновими функціями, обидва є SQL, але розумування, необхідне для їх генерації, дуже відрізняється.
Якщо система обробляє їх однаково, результат передбачуваний: марнотратство обчислювальних ресурсів. У більшості корпоративних робочих процесів більшість запитів є звичайними. Прості запити, читання з однієї таблиці, базові вставки, виправлення синтаксису. Ніщо складне. Надсилання всіх цих запитів до моделі Frontier подібно до використання вантажного ліфта для перенесення блокнота.
Один зі способів розглянути проблему – розділити запити на рівні складності:
| Рівень | Опис | Приклади | Необхідна модель |
| Рівень 1 – звичайний | Прості, добре визначені завдання | Прості оператори SELECT, запити, базові CRUD, виправлення синтаксису | Швидка, низьковитратна модель |
| Рівень 2 – середній | Вимагає багаторозрядного rozumіння | З’єднання таблиць, підзапити, агрегації, підказки оптимізації | Модель середнього рівня |
| Рівень 3 – складний | Глибоке усвідомлення схеми та rozumіння | Запити між базами даних, вікнові функції, налаштування плану виконання, усвідомлення схеми при переробці | Модель Frontier |
Пропуск між рівнями великий. Запит рівня 1 може коштувати близько $0,001 на легкій моделі. Той же запит, надісланий до моделі Frontier, коштує близько $0,03. При 10 000 запитах на день це $10 проти $300 у щоденних витратах. Різниця в 30 разів, тільки через рішення щодо маршрутизації.
Усвідомлення схеми також має значення тут. Запити рівня 3 не тільки потребують більше обчислювальних ресурсів. їм потрібен контекст: відносини таблиць, зовнішні ключі, індекси, синтаксис, залежний від бази даних. Цей контекст потрібно ввести під час висновку.
Виконання простого запиту рівня 1 через той же важкий шлях марнує токени, додає затримку та не покращує результат.
Практична архітектура для вибору моделі
Система маршрутизації зазвичай складається з чотирьох етапів: класифікація, маршрутизація, виконання та перевірка. Кожен етап виконує різні завдання та може мати різні причини невдачі. Корисно розглядати їх окремо, перш ніж складати повний трубопровід.
Класифікація – найважливіший етап. Класифікатор отримує сирій запит SQL або природний мовний запит, який буде генерувати його, та призначає йому рівень складності. Є три поширені способи побудови цього класифікатора.
Класифікація на основі правил використовує шаблони регулярних виразів та розбору абстрактного синтаксичного дерева для виявлення структурних сигналів: таких як кількість таблиць, глибина вкладеності, вікнові функції, підзапити чи оператори агрегації. Цей підхід швидкий та передбачуваний, з майже нульовими витратами. Він добре працює для очевидних випадків: прості оператори SELECT та базові DML можуть зазвичай бути ідентифіковані без залучення моделі.
Легкі моделі класифікаторів використовують невелику мовну модель, навчену оцінювати складність SQL. Це додає додатковий етап, але це одне з найвищих рішень щодо повернення інвестицій у всьому трубопроводі. Виклик класифікатора може коштувати близько $0,0001, що легко виправдовує уникнення виклику моделі Frontier за $0,03.
У багатьох налаштуваннях ці легкі моделі також можуть працювати локально, фактично видаляючи витрати для простих запитів користувачів зовсім. Вони також можуть класифікувати природні мовні запити до генерації SQL, що корисно у роботі помічників, де запит ще не існує.
Гібридна класифікація поєднує обидва підходи. Логіка на основі правил обробляє ясні випадки без витрат, тоді як класифікатор обробляє неоднозначну середину: запити, які виглядають помірними, але можуть фактично потребувати усвідомлення схеми для правильної генерації.
Маршрутизація відбувається після класифікації. Але сам рівень не є єдиним фактором. Деякі інші речі впливають на те, куди має бути направлений запит. Це включають:
- Вимоги до контексту схеми. Деякі запити потребують, щоб модель розуміла зовнішні ключі, індекси чи інші структурні деталі. Ці запити несуть більше контексту та зазвичай потребують маршрутизації до моделі вищої здатності.
- Толерантність до затримки. Функції, орієнтовані на користувача, такі як автозаповнення або інлайн-поради, мають суворі бюджетні обмеження затримки. Фоновими завданнями зазвичай не є. У цих випадках повільніша, але більш здатна модель може бути прийнятною.
- Пороги впевненості. Іноді класифікатор не впевнений у рівні. У цих випадках маршрутизація вгору зазвичай є безпечнішою опцією. Неправильне пониження може призвести до поганого запиту та спровокувати повторні спроби, які часто коштують більше, ніж використання потужнішої моделі спочатку.
Шар перевірки працює після виконання коду. Його завдання – впіймати помилки маршрутизації до того, як вони потраплять до користувача. Після виконання проводяться перевірки, щоб переконатися, що синтаксис правильний, результати розумні (чи запит повернув правильну форму рядків?), а схема узгоджена. Коли результат не проходить перевірку, система рухається на рівень вище та повторно виконує запит.
У Devart найважливішим для отримання точності маршрутизації в dbForge AI Assistant було внесення контексту усвідомлення схеми до рішення щодо класифікації. Без контексту схеми запити, які використовували неясні імена таблиць або покладалися на неявні відносини, завжди неправильно класифікувалися та направлялися до дешевших моделей, які не могли їх обробити. Рішенням було надати класифікатору не тільки структуру запиту, але й деякі метадані схеми.
Вимірювання того, що має значення: торги між витратами та якістю на практиці
Бізнес-кейс для маршрутизації діє лише тоді, коли зберігається якість. Зниження витрат, яке призводить до погіршення виводу, збільшення повторних спроб або недовіри розробників, не є заощадженням, а переведенням витрат з рахунку інфраструктури на час інженерів. Три метрики визначають, чи працює система маршрутизації насправді.
Витрати на запит за рівнем встановлюють базовий рівень. Відстежуйте фактичні витрати на кожному рівні окремо, а не як середнє значення. Середнє значення маскує, чи працює маршрутизація, система, яка маршрутизує 50% запитів до неправильного рівня, все одно покаже нижчу середню вартість, а приховано буде генерувати гірші результати.
Бал за якість перевіряє правильність, повноту та дотримання найкращих практик SQL. Темп ескалації – це найпряміший сигнал. Він показує, як часто модель рівня 1 або 2 генерує вивід, який не проходить перевірку та потребує направлення до іншого місця. Система, яка добре налаштована, повинна зберігати ескалацію нижче 5%. Класифікатор потрібно повторно навчати вище цього рівня. Він може неправильно читати структурні сигнали або не мати контексту схеми, необхідного для розрізнення помірних та складних запитів.
Вплив на затримку розглядає, як довго триває відповідь на рух від одного рівня до іншого, включаючи додатковий час, необхідний для класифікації. Користувачі повинні помітити затримку лише в 50-100 мілісекунд у взаємодіях, які проходять через шар маршрутизації. Якщо класифікація сама стає проблемою, гібридний підхід (правила для ясних випадків, класифікатор тільки для неясних) виправляє це без втрати точності.
У реальному житті добре налаштована система маршрутизації може знижувати витрати на висновок на 40-60%, зберігати ескалацію нижче 5% та зберігати високу якість виводу для складних запитів. Щоб заощадити 70% або більше, зазвичай потрібно виконувати завдання рівня 1 самостійно з меншими моделями. Це може працювати, але це також ускладнює речі, з якими не кожна команда хоче справлятися.
“Податок на ескалацію” – це ще одна річ, яку потрібно розглянути. Якщо маршрутизація надто складна для дешевих моделей, система може повинна виконувати більше роботи загалом: виклик класифікатора, початковий виклик моделі, невдала перевірка, повторна маршрутизація та другий виклик моделі. У деяких випадках це коштує більше, ніж направлення питання до моделі Frontier спочатку.
Розгляд лише витрат на виклик пропускає цей ефект. Темп ескалації потрібно відстежувати поряд з ним.
Стратегічні висновки для інженерних команд
Розумна маршрутизація не є лише приємною річчю для зрілих розгортань AI SQL; це необхідна річ для довгострокових розгортань. Команди, які пропускають це, міняють проблему бюджету, яку не можна вирішити, на проблему архітектури, яку можна вирішити. Закономірності існують; залишається тільки вирішити, яких слід слідувати спочатку.
Почніть з класифікатора, а не з моделей. Шар маршрутизації визначає, чи працює все інше. Добре налаштований гібридний класифікатор дасть вам більшість економії витрат без ускладнення речей.
Використовуйте контекст схеми джерела, щоб допомогти вам приймати рішення щодо класифікації. Для робочих процесів SQL, які включають відносини між кількома таблицями або розумування, залежне від схеми, структура запиту сама по собі не достатня. Часткова мета даних схеми під час класифікації значно підвищує точність рівня.
Використовуйте темп ескалації як основний сигнал якості. Він знаходить помилки класифікації швидше, ніж будь-який інший метрик, і показує точно, де класифікатору потрібно покращення.
Перед класифікатором сплануйте шар перевірки. Знання того, що виглядає невдача, та причини ескалації роблять логіку маршрутизації чистішою та роблять систему краще здатною обробляти крайні випадки.
Цінність шару маршрутизації зростає, а не знижується, коли відкриті моделі покращуються та витрати на локальний висновок знижуються. Дешевші моделі рівня 1 роблять різницю між рівнями більшим, що робить правильну класифікацію ще більш цінною. Архітектура маршрутизації, побудована сьогодні, буде корисною протягом довгого часу, а не лише як швидке рішення.












