AI
AI-MANAGE
Блог/RAG без магии: как сделать поиск по документам быстрым и точным

RAG без магии: как сделать поиск по документам быстрым и точным

10.08.202515 мин чтения
#RAG
#документы
#поиск

Поясняем на практике: сбор корпуса, индекс, RAG‑подсказки, права доступа и метрики качества ответов.

Введение: почему «обычный поиск» больше не тянет

В корпоративной среде документы множатся быстрее, чем успевают обновляться регламенты: договоры и допсоглашения, технические спецификации, протоколы, переписки, инструкции, политики ИБ. Классический полнотекстовый поиск по ключевым словам возвращает десятки нерелевантных результатов: пользователю приходится угадывать формулировки, он тонет в дубликатах и версиях, а критичные фрагменты теряются за «шумом». Retrieval‑Augmented Generation (RAG) решает эту проблему: модель сначала извлекает релевантные фрагменты из вашего корпуса, затем формирует ответ по смыслу, снабжая его ссылками на первоисточники. Результат — быстрые и точные ответы, снижение нагрузки на экспертов и рост качества решений.

Бизнес‑кейсы: где RAG окупается

  • Юридический отдел: поиск условий в договорной базе (сроки, ответственность, штрафы), сравнение версий, подсветка несоответствий.
  • Операции и саппорт: ответы по процедурам и SLA, быстрые подсказки первой линии; связка с чат‑виджетом по документам.
  • Закупки и тендеры: вытягивание требований и критериев из документации, формирование чек‑листов соответствия.
  • Финансы: поиск правил признания доходов/расходов, специфики договоров; связка с OCR счетов → 1C.
  • ИБ/Compliance: централизованный доступ к политикам, контроль «актуальной версии», доказательная база при аудите.

Архитектура решения: от сырого файла к ответу со ссылками

  1. Инвентаризация корпуса и прав: список источников (SharePoint/Диск/почта/архивы), матрица доступа (кто что видит), политика версий.
  2. Предобработка: OCR сканов, очистка, нормализация кодировок, извлечение текста, разбиение на фрагменты (chunking) с умным перекрытием для сохранения контекста.
  3. Метаданные: заголовки, автор, дата, тип документа, версия, отдел, теги — всё это сохраняется вместе с фрагментом для фильтрации и аудит‑логов.
  4. Эмбеддинги и индекс: строятся векторные представления фрагментов, индексируются в векторном хранилище (faiss/pgvector/оптимизированные движки).
  5. RAG‑цепочка: запрос → симантический поиск → ранжирование → формирование ответа из нескольких фрагментов с точными ссылками и цитатами.
  6. Интерфейс: веб‑поиск, встроенный виджет на портале, или диалоговый чат‑помощник с подсветкой источников.

Ключевые проектные решения: как сделать «по‑взрослому»

1) Chunking и окно контекста

Слишком большие фрагменты «размывают» релевантность, слишком маленькие — рвут смысл. Практическая рекомендация: 500–1200 токенов с 10–20% перекрытием, для юридических текстов — ближе к верхней границе. Для таблиц и формул применяйте специальную нарезку (по структуре).

2) Реранжирование

После первичного поиска по эмбеддингам используйте лёгкое реранжирование (cross‑encoder или BM25‑микс), чтобы поднять фрагменты с точными совпадениями терминов и названий сущностей.

3) Промпт‑инжиниринг

Модель должна «знать», что она обязана ссылаться на источники и не «додумывать». Жёстко проговаривайте: «Если в документах нет ответа — сообщи об этом и предложи связаться с экспертом».

4) Управление галлюцинациями

Ограничивайте ответ материалами из корпуса: используйте «клетку контекста» (context window) и «цитатную дисциплину». Для спорных ответов — флаг «требуется подтверждение».

5) Актуальность и версии

Плановые инкрементальные обновления индекса (ежедневно/еженедельно), а также «триггерные» — при добавлении документа в «горячую» папку. Метки версии — обязательны.

Безопасность и соответствие требованиям

  • Права доступа: фильтрация результатов на уровне запроса и на уровне индекса; пользователь видит только то, к чему имеет доступ.
  • Логи и аудит: журнал запросов, кто‑когда‑что искал, какие документы смотрел; логи используют для обучения и контроля.
  • 152‑ФЗ и персональные данные: ограничение корпусов, хранение следов обработки, политика ретенции.
  • Разграничение сред: отдельные окружения (dev/test/prod), анонимизация тестовых корпусов.

Оценка качества: что и как мерить

  • Coverage/Recall@k: доля запросов, где среди top‑k фрагментов присутствует правильный источник.
  • nDCG/MRR: насколько высоко ранжируется «правильный» фрагмент.
  • Answer‑usefulness: экспертная оценка полезности ответа (ошкала 1–5), доля ответов «без договора/источника».
  • Время ответа: общая латентность (поиск + генерация); цель — секунды.
  • Операционные метрики: доля обращений к коллегам «после внедрения», экономия времени сотрудников.

Производительность и стоимость

Себестоимость запроса складывается из чтения индекса и генерации ответа. Оптимизации: кеширование эмбеддингов, сжатие индекса, «budget‑mode» для массовых FAQ с уменьшенным окном контекста, «expert‑mode» для сложных юридических запросов. Внедрение алертов (Telegram‑алерты) помогает ловить всплески латентности и проблемы с источниками данных.

План внедрения за 1–2 недели

  1. День 1–2: инвентаризация, права, выбор источников, согласование целей.
  2. День 3–4: предобработка (OCR, очистка), пилотная индексация, первые метрики.
  3. День 5–6: подключение интерфейса (поиск/чат‑виджет), настройка промптов.
  4. День 7–8: оценка качества, калибровка chunking/реранжирования.
  5. День 9–10: безопасность, логи, политика версий, обучение сотрудников.

Типовые ошибки и анти‑паттерны

  • Скормить всю сетевую папку без очистки и ожидать «волшебных ответов».
  • Отключить ссылки на источники — доверие падает, юристы против.
  • Не учитывать права доступа — риск инцидентов и потеря поддержки ИБ.
  • Делать «один большой промпт» без контроля версии контента.

FAQ: практические вопросы

Что делать со сканами и фотографиями? Пропускаем через OCR; для чеков/счётов полезно связать с OCR → 1C.

Можно ли «объяснить» ответ клиенту? Да, используйте краткий «consumer‑friendly» режим и ссылки на выдержки документа.

Как поддерживать актуальность? Инкрементальные обновления индекса + флажки «критичных» папок с триггерами переиндексации.

Вывод и дальнейшие шаги

RAG — понятный способ превратить документированный опыт компании в быстрые и проверяемые ответы. Начинайте с узкого, но ценного корпуса (например, договоры и политики) и расширяйтесь на смежные области. Для «точки входа» используйте диалоговый чат‑виджет и панель с показателями качества. Когда базовая система заработала, добавляйте автоматическое формирование рабочих шаблонов (например, договоры с автозаполнением) и метрики в KPI‑дашборде.

Готовое внедрение — поиск по архиву документов. Срок: 1–2 недели, прозрачный объём работ, измеримые KPI.