Text-to-SQL агент: вопросы на естественном языке к живым данным FSM-системы

Ссылка на работу
Агент отвечает на вопросы на естественном языке, обращаясь напрямую к живым данным системы — SQL генерируется на лету под конкретный вопрос, а не индексируется заранее. Сгенерированный LLM SQL перед выполнением проходит через guard-слой на sqlglot: разрешён только один SELECT, таблицы — по whitelist, системные схемы и опасные функции запрещены, лимит строк выставляется принудительно. Если запрос не проходит проверку или падает при выполнении — ошибка возвращается в LLM, и она пробует снова (self-correction loop, несколько попыток). Готовый результат оформляется вторым LLM-вызовом в понятный ответ. Модуль встроен в общий роутер, который сам решает — направить вопрос сюда, в RAG-поиск по документам или в оба сразу. Заказчик - производитель премиальных продуктов питания.