Раздел
RAG и базы знаний
Сложность
средняя
Обновлено
2026-05-20
Сценарий

RAG и базы знаний

Доказательства

Данные, права, ограничения и метрики в тексте статьи.

Аудит

Короткий разбор процесса перед пилотом.

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

Embeddings помогают искать бизнес-документы по смыслу: пользователь пишет “клиент дважды оплатил”, а система находит регламент про двойное списание. Но vector search не заменяет keyword search. Для договоров, артикулов, номеров счетов, кодов ошибок, дат и имен часто нужен точный поиск и metadata-фильтры. Поэтому для рабочих документов обычно нужен hybrid search: dense vectors для смысла, keyword/BM25 для точных совпадений и фильтры по правам.

OpenAI описывает embeddings как векторы, где расстояние отражает relatedness текста, и приводит search как один из типовых сценариев: OpenAI vector embeddings guide. Azure AI Search описывает hybrid search как один request с full-text и vector queries, результаты которого объединяются через RRF: Azure AI Search hybrid search. Qdrant также разбирает fusion dense и sparse representations в hybrid queries.

Эта статья дополняет материалы про векторную базу для RAG, RAG систему, оценку качества RAG и стоимость LLM API.

Где vector search помогает

Vector search полезен, когда пользователь не знает точную формулировку документа:

  • “как вернуть деньги, если платеж прошел два раза”;
  • “что делать, если клиент просит удалить данные”;
  • “порядок согласования нестандартной скидки”;
  • “инструкция по эскалации инцидента”;
  • “похожие договоры с ограничением ответственности”.

В таких запросах совпадение слов не гарантировано. Документ может называться “Процедура обработки дублирующих транзакций”, а пользователь пишет “двойное списание”. Embeddings помогают связать смысл.

Где keyword лучше

Keyword search лучше, когда важна точность:

ЗапросПочему keyword важен
ERR_BILLING_409код ошибки должен совпасть точно
договор 15/2026-Кномер нельзя заменить похожим
SKU-92811артикул не имеет “смысла” для embedding
Иванов И.И.имя требует точного совпадения и прав
пункт 4.2нужен конкретный раздел документа

Если оставить только vector search, система может найти “похожую” страницу, но пропустить точный документ. Для бизнеса это опасно: ответ будет убедительным, но не тем.

Hybrid search

Hybrid search объединяет оба подхода. Типовой pipeline:

query
  -> identity and metadata filters
  -> keyword search for exact terms
  -> vector search for semantic matches
  -> fusion or reranking
  -> answer with citations

Azure AI Search прямо указывает, что hybrid search runs full-text search and vector search in parallel and merges results using RRF. Для практики это означает: не спорьте “vector или keyword”. Тестируйте, какой mix дает правильный источник в top results.

{
  "query": "клиент оплатил дважды",
  "filters": {
    "access_group": "support_l2",
    "status": "approved",
    "product": "billing"
  },
  "retrieval": {
    "keyword_top_k": 20,
    "vector_top_k": 30,
    "fusion": "rrf",
    "rerank_top_k": 10
  },
  "must_return": ["source_url", "updated_at", "owner"]
}

Не применяйте права после fusion. Фильтры доступа должны работать до retrieval или внутри каждого retrieval-запроса, иначе закрытый документ может повлиять на ranking или попасть в prompt.

Metadata важнее, чем кажется

Бизнес-документ без metadata почти бесполезен для production RAG. Нужны поля:

  • owner;
  • updated_at;
  • status;
  • product;
  • department;
  • access_group;
  • document_type;
  • source_url;
  • version;
  • language;
  • retention class.

Metadata позволяют искать не просто “похожий текст”, а правильный документ для конкретного пользователя и ситуации. Например, юридический playbook для enterprise-договоров не должен отвечать пользователю из розничной поддержки.

Chunking и права

Chunking должен сохранять смысл и права. Нельзя нарезать документ так, что таблица условий отделилась от заголовка, а приложение к договору потеряло номер договора. Для регламентов полезно включать breadcrumbs: раздел, пункт, owner, дату обновления.

chunk_metadata:
  source_url: "sharepoint://legal/contracts/playbook"
  heading_path: "Скидки > Нестандартное согласование > Enterprise"
  owner: "legal_ops"
  updated_at: "2026-05-20"
  access_group: "sales_enterprise"
  status: "approved"
  chunk_id: "legal-playbook-4-2"

Если права различаются внутри документа, не индексируйте его одним куском с общим доступом. Разделите или исключите чувствительные приложения.

Evaluation

Оценка retrieval должна быть отдельной таблицей, а не впечатлением от чат-ответа.

ПроверкаЧто считать
Source hit rateправильный документ попал в top 5/top 10
Exact term recallнайдены коды, номера, имена, пункты
Semantic recallнайден смысл без точных слов
Access correctnessзакрытые документы не влияют на ответ
Freshness correctnessне используются устаревшие версии
Refusal qualityсистема отказывается, когда источника нет

Соберите вопросы трех типов: точные, смысловые и провокационные. Точные проверяют keyword. Смысловые проверяют embeddings. Провокационные проверяют права и отказ.

Стоимость и эксплуатация

Embeddings стоят не только денег провайдера. Есть стоимость переиндексации, хранения vectors, latency, reranking, логов, ручной разметки и поддержки коннекторов. OpenAI отмечает, что requests for embeddings billed based on input tokens; это только один слой стоимости. Для полного расчета смотрите статью про стоимость LLM API.

Не начинайте с самой сложной базы. Если документов мало и запросы точные, обычный full-text search с хорошими metadata может быть достаточен. Vector search подключайте там, где реальные вопросы не совпадают с формулировками документов.

Чеклист

  • Есть список query types: точные, смысловые, смешанные.
  • Keyword baseline проверен до покупки vector database.
  • Embeddings тестируются на реальных вопросах.
  • Hybrid search сравнен с чистым keyword и чистым vector.
  • Metadata включают owner, updated_at, status и access_group.
  • Права применяются до retrieval.
  • Chunking сохраняет заголовки, таблицы и версии.
  • Evaluation считает source hit rate, exact recall и access correctness.
  • Ответы показывают citations.
  • Стоимость считается на документ, запрос и успешный ответ.

FAQ

Embeddings заменяют RAG?

Нет. Embeddings - это способ представить текст для поиска. RAG включает corpus, права, retrieval, генерацию, citations, eval и эксплуатацию.

Hybrid search нужен всегда?

Не всегда. Если все запросы точные и документов мало, keyword может хватить. Но для корпоративных баз знаний hybrid часто выигрывает, потому что запросы сотрудников естественные и неточные.

Что важнее: модель embeddings или metadata?

Для бизнеса часто metadata. Без прав, owner, updated_at и status даже сильная embedding-модель вернет опасный источник.

Нужно ли хранить полный текст в vector database?

Не обязательно. Можно хранить chunk, ссылку, metadata и идентификатор исходного документа. Важно, чтобы ответ мог показать проверяемый источник.

Как понять, что vector search помогает?

Сравните top results на eval-наборе. Если semantic questions чаще находят правильный источник без ухудшения exact queries и прав, vector layer полезен.

Источники

Следующий шаг

Проверьте этот сценарий на своем процессе

Опишите систему учета, данные, ограничения по правам и ожидаемый эффект. Ответим, что можно запускать в пилот, а где сначала нужен порядок в процессе.

Выбрать поиск для документов Вернуться к маршруту раздела →