Реализация AI-поиска по архиву документов (Document Search)

Реализация AI-поиска по архиву документов (Document Search)

Направления AI-разработки

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1441
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1302
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    998
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1267
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    714
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1006

Реализация AI-поиска по архиву документов (Document Search)

Файловая система бессильна против смыслового поиска: договор с автопролонгацией не найти, если запрос не содержит точной фразы. Менеджеры тратят часы на перебор папок, юристы пропускают сроки из-за потерянных договоров. Мы внедряем AI-систему, которая понимает запрос по смыслу, а не просто ищет подстроку. Результат — секунды вместо часов. Для типового архива из 50 000 документов время поиска сокращается с 15 минут до 30 секунд.

Как работает гибридный поиск?

Гибридный поиск объединяет два подхода: семантический (эмбеддинги) и лексический (BM25). Семантический улавливает синонимы и контекст: запрос «продлить договор с Газпромом» найдёт фразу «пролонгация контракта с ПАО Газпром». Лексический обеспечивает поиск по точным совпадениям — номерам, датам, суммам. Мы смешиваем результаты через RRF (Reciprocal Rank Fusion) и переранжируем cross-encoder'ом. Итоговая точность (NDCG@5) на тестовой коллекции из 10 000 документов — 0.89. Гибридный подход на 20% повышает recall по сравнению с чистыми эмбеддингами и даёт в 1.5 раза более высокий nDCG@5, чем BM25.

Индексирование архива

Каждый документ при попадании в архив проходит обработку:

  1. Извлечение текста: pdfminer (PDF), python-docx (DOCX), unstructured.io (поддерживает более 30 форматов).
  2. Структурирование: разбивка на чанки по 512 токенов с перекрытием 128 токенов + сохранение метаданных (раздел, страница, дата создания).
  3. Эмбеддинги: text-embedding-3-small (OpenAI, 1536-мерный) или cointegrated/rubert-tiny2 (384-мерный, on-premise). Выбор модели влияет на латентность: GPU-инференс занимает ~20 мс на чанк.
  4. Индексирование в Qdrant или pgvector с HNSW-индексом для быстрого поиска по 1 млн+ векторов (latency p99 < 300 мс).
  5. Извлечение структурированных метаданных: тип документа, стороны, даты, суммы — с помощью NER-модели (spaCy + дообучение на ваших данных) и запись в реляционную БД.
Детали чанкования Размер чанка 512 токенов с перекрытием 128 выбран эмпирически: он даёт наилучший баланс между покрытием и latency. Для документов с длинными таблицами используем adaptive chunking.

Почему cross-encoder reranking?

После получения топ-K от гибридного поиска мы применяем cross-encoder модель (например, cross-encoder/ms-marco-MiniLM-L-6-v2), которая попарно оценивает релевантность каждого документа к запросу. Это добавляет 50-100 мс к latency, но повышает точность первых результатов на 15-20%. На практике это значит, что пользователь реже пролистывает вторую страницу.

Фасетный поиск

Дополнительные фильтры для точного поиска представлены в таблице:

Фасет Примеры значений Тип фильтра
Тип документа договор, акт, накладная, счёт множественный выпадающий список
Контрагент Название или ИНН автодополнение с fuzzy match
Дата подписания, окончания, начала диапазон дат (календарь)
Сумма от 100 000 до 5 000 000 ползунок + поля ввода
Статус действующий, расторгнут, истёк radio button

Фасеты комбинируются с семантическим запросом: вы ищете «договоры аренды на сумму более 1 млн» и сразу видите только действующие.

Что такое Conversational search?

Мы реализовали диалоговый режим: система последовательно уточняет параметры поиска — контрагент, период, тип документа — и преобразует историю в структурированный запрос к хранилищу. LLM (GPT-4o или LLaMA 3 70B) конвертирует диалог в параметры фильтрации. Больше не нужно помнить, как называется столбец в Excel или куда кликнуть в CRM. Мы реализовали такой сценарий для пяти юрлиц с архивами от 50 000 документов — время поиска сократилось с 15 минут до 30 секунд.

Сравнение подходов к поиску

Критерий Ключевой поиск (Elasticsearch) Только эмбеддинги (Qdrant) Гибридный (наш)
Точность по смыслу Низкая Высокая Очень высокая
Поиск по номерам Высокая Средняя Высокая
Скорость индексации Высокая Средняя (нужна генерация эмбеддингов) Средняя
Latency p99 < 100 мс < 200 мс < 300 мс
Поддержка фильтров Да Ограниченная Да (фасеты)

Гибридный подход даёт наилучший баланс: на 20% больше recall, чем у чистых эмбеддингов, и на 35% больше nDCG@5, чем у BM25.

Что входит в работу

В рамкам внедрения мы подготавливаем:

  • Конвейер индексации (Python + Apache Airflow) для вашего хранилища.
  • Векторную БД (Qdrant) с тюнингованными индексными параметрами.
  • API-эндпоинты для поиска (REST/gRPC) с поддержкой фасетов.
  • Web-интерфейс с поисковой строкой и результатами в карточках.
  • Документацию по эксплуатации и обучение ваших инженеров (2 дня воркшопа).
  • Месяц технической поддержки после запуска.

Наш опыт и гарантии

Мы занимаемся AI-поиском более 5 лет, реализовали свыше 50 проектов для банков, логистических компаний и госсектора. В нашей команде — сертифицированные специалисты по машинному обучению (MLflow, Kubeflow). Гарантируем: система найдёт то, что вы ищете, с точностью не менее 90% на тестовой выборке.

Сроки и стоимость

Срок реализации пилотного проекта — от 3 до 6 недель в зависимости от объёма архива и необходимой степени кастомизации. Стоимость рассчитывается индивидуально: оцениваем число документов, количество полей для метаданных, требуемый SLA. Свяжитесь с нами, чтобы мы подготовили коммерческое предложение. Закажите пилотный проект на тестовой выборке — убедитесь в эффективности до полноценного внедрения. Получите консультацию по внедрению прямо сейчас.

Справочно: BM25 — классическая функция ранжирования для оценки релевантности текстов.