Представьте: вы задаёте AI-агенту вопрос «какая выручка за сентябрь?» и получаете три разных числа. Все SQL-запросы при этом выполняются без ошибок. Это не баг генерации SQL, а проблема интерпретации данных. В статье на Habr разбирается воспроизводимый эксперимент, который показывает, откуда берутся расхождения, и как семантический слой помогает их избежать.

Почему возникают расхождения

Причина в том, что AI-агент, генерирующий SQL, может по-разному трактовать одни и те же термины. Например, «выручка» может означать сумму оплат, сумму отгрузок или сумму выставленных счетов. «Сентябрь» может относиться к календарному месяцу или к финансовому периоду. Без явного определения этих понятий агент каждый раз выбирает разную логику, что приводит к разным результатам.

Воспроизводимый эксперимент

Авторы статьи провели эксперимент: один и тот же вопрос к корпоративному хранилищу данных задавался AI-агенту несколько раз. Все сгенерированные SQL-запросы были синтаксически корректны и выполнялись без ошибок, но возвращали разные суммы выручки за сентябрь. Это подтверждает, что проблема не в качестве SQL, а в неоднозначности бизнес-терминов.

Роль семантического слоя

Семантический слой — это набор определений и правил, которые связывают бизнес-термины с конкретными полями и агрегациями в хранилище данных. Когда AI-агент использует семантический слой, он получает однозначные инструкции: что считать выручкой, как определять период и какие фильтры применять. Это устраняет вариативность и обеспечивает согласованность результатов.

Практические шаги для внедрения

  • Определите ключевые бизнес-метрики и их формулы. Задокументируйте, что именно входит в каждую метрику.
  • Создайте семантический слой, который мапит термины на конкретные таблицы, поля и условия агрегации.
  • Обучите AI-агента использовать этот слой при генерации SQL-запросов, например, через промпты или ограничения.
  • Проведите тестирование: задайте один и тот же вопрос несколько раз и убедитесь, что ответы совпадают.
  • Регулярно обновляйте семантический слой при изменении бизнес-логики или структуры данных.

Вывод

Расхождения в ответах AI-агента — не случайность, а следствие неоднозначности терминов. Семантический слой помогает сделать вопросы и ответы однозначными, повышая доверие к данным и снижая риск ошибок в отчётности. Внедрение семантического слоя требует усилий, но оно того стоит, особенно если вы используете AI для анализа данных.