К тренажеру
ВопросMediumnlp-agentsРеальный собес

Schema linking и NER в доменной базе

Пользователь пишет естественный запрос к большой корпоративной базе. Как матчить сущности, аббревиатуры, таблицы и колонки?

Короткий ответ

Нужны data catalog, glossary, aliases, embeddings по описаниям таблиц/колонок, entity extraction и reranking кандидатов с учетом доступа и бизнес-домена.

Полный разбор

В больших базах названия колонок часто не совпадают с языком пользователя. Поэтому нужен слой metadata: описания таблиц, owner, бизнес-сущности, aliases, аббревиатуры, примеры запросов и ограничения доступа.

Pipeline: извлечь из запроса сущности и намерение, найти candidate tables/columns через lexical и embedding retrieval по catalog, затем rerank с учетом домена, joinability и истории успешных запросов. Для аббревиатур полезны словарь и human feedback от аналитиков.

Важно учитывать безопасность: даже если таблица семантически подходит, пользователь может не иметь доступа. Хороший ответ также упоминает ручную разметку golden examples и continuous improvement по rejected/edited SQL.

Теория

Schema linking - это bridge между естественным языком и физической схемой данных. Без него Text2SQL быстро путает похожие метрики и таблицы.

Типичные ошибки

  • Думать, что LLM сама запомнит всю схему.
  • Не учитывать aliases и доменные аббревиатуры.
  • Не фильтровать кандидатов по правам доступа.

Как отвечать на собеседовании

  • Назови data catalog и glossary.
  • Раздели retrieval кандидатов и reranking.