Проблема: «ORA-00904 invalid-identifier»
Большие языковые модели (LLM) часто генерируют синтаксически верный, но нерабочий SQL для корпоративных баз данных Oracle. Основная причина — галлюцинации: модель придумывает несуществующие столбцы, алиасы или использует неверный диалект, что приводит к ошибкам выполнения ORA-00904. Без знания реальной структуры базы данных (schema grounding) модель работает вслепую.
Решение: Schema-Aware Localisation (SAL)
Авторы (Sanjay Mishra, Divya Chukkapalli, Ganesh R. Naik) предлагают решение без переобучения моделей. SAL работает как промежуточный слой (middleware), который:
- В реальном времени опрашивает каталог
USER_TAB_COLUMNSOracle для построения актуальной карты схемы. - Фильтрует таблицы: выбирает релевантный подмножество для простого вопроса или использует полную схему для сложных запросов.
- Инжектирует этот контекст в промпт LLM.
Механика валидации: Hidx
После генерации SQL модуль Hidx (Hallucination Index) проверяет каждую ссылку на таблицу/столбец по живому каталогу. При обнаружении ошибки система либо автоматически исправляет предсказуемые префиксные ошибки, либо инициирует структурированный повторный запрос с детализированными исправлениями.
Результаты на TPC-H и Oracle 23c
Тестирование проводилось на 500 вопросах естественного языка (TPC-H) против живого экземпляра Oracle Autonomous Database 23c с использованием модели GPT-4o-mini. Ключевые метрики Execution-Grounded Truth (EGT — выполнение и совпадение с эталоном):
| Метод | EGT (%) | Успешность по сложности |
|---|---|---|
| Без маппинга схемы | 2.2% | — |
| Статический хинт (ручной) | 62.0% | — |
| SAL (автоматический) | 62.6% | Simple: 96%, Medium: 95%, Complex: 40.7% |
Важнейший показатель: доля ошибок выполнения (execution failures) упала с 97.6% до 2.6%. SAL демонстрирует, что правильный контекст схемы важнее размера самой модели.
Источник: arXiv cs.AI ↗
