- Раздел
- 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 полезен.
Источники
Следующий шаг
Проверьте этот сценарий на своем процессе
Опишите систему учета, данные, ограничения по правам и ожидаемый эффект. Ответим, что можно запускать в пилот, а где сначала нужен порядок в процессе.