Семантический поиск по документам и ИИ-поиск по базе знаний на заказ

Семантический поиск находит документ по смыслу вопроса, а не по совпадению слов: запрос «как оформить командировку» находит и «порядок направления в служебную поездку». Мы разрабатываем такой поиск на заказ: разбор ваших документов, гибрид смыслового и полнотекстового поиска, права доступа внутри индекса и замер качества на реальных вопросах сотрудников. Нужен ли поверх него ответ языковой модели, решаете вы; поиск, который показывает источник, нужен в любом случае.

Обследование — от 200 000 ₽, 2–3 неделиПрава доступа действуют в индексе, а не после выдачиКачество меряем на ваших вопросах и документах

С чем приходят

Когда обычного поиска по словам уже мало

Поиск по словам не находит

Сотрудник ищет «отпуск за свой счёт», а в документе написано «отпуск без сохранения заработной платы». Полнотекстовый поиск молчит, и вопрос уходит коллеге.

Документы разбросаны по местам

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

Находится слишком много

Поиск выдаёт длинный список файлов, а нужный абзац лежит внутри одного из них. Приходится читать документ целиком.

Чат с документами не вызвал доверия

Ответ без ссылки на источник проверить нельзя. Мы начинаем с поиска, который показывает источник, а ответ модели добавляем, если он действительно нужен.

Режимы

Полнотекстовый, смысловой и гибридный поиск: что чем находится

Какой режим нужен, показывает замер на ваших вопросах, а не вкус исполнителя. Ассистента, который отвечает по найденным фрагментам, описывает страница ИИ-ассистента по документам.

Режим поиска
Как работает
Хорошо находит
Где подводит
Режим поискаПолнотекстовыйпо словам
Как работаетИндекс слов с учётом словоформ русского языка
Хорошо находитНомера, артикулы, фамилии, точные формулировки пунктов
Где подводитСинонимы и перефразировки: человек и документ говорят разными словами
Режим поискаСмысловой (векторный)по близости смысла
Как работаетТекст превращается в вектор моделью эмбеддингов, ищутся ближайшие векторы
Хорошо находитВопросы своими словами, синонимы, длинные запросы
Где подводитТочные коды, редкие названия, аббревиатуры; результат труднее объяснить
Режим поискаГибридныйоба сразу
Как работаетСписки обоих режимов объединяются и пересортировываются
Хорошо находитСмешанные запросы: «акт по договору поставки с конкретным контрагентом»
Где подводитСложнее настроить; нужен набор вопросов, чтобы подобрать вес режимов
Режим поискаПереранжированиевторой проход
Как работаетОтдельная модель перечитывает верх списка и сортирует точнее
Хорошо находитСлучаи, когда в начале списка «почти то», а нужный документ не первый
Где подводитДобавляет задержку и нагрузку; включаем, если замер показал выигрыш
Индекс

Как документ попадает в индекс: чтение, фрагменты, метаданные

Качество поиска закладывается до первого запроса, при подготовке документов.

Чтение

Из Word и PDF с текстовым слоем текст достаётся напрямую, скан сначала распознаётся (смотрите интеллектуальную обработку документов). Таблицы и колонки часто дают мусор: в двухколоночном PDF порядок чтения легко сбивается, и фрагмент склеивается из двух разных мест.

Разбиение на фрагменты

Документ режется на куски. Слишком мелкие теряют контекст, слишком крупные размывают смысл. Мы режем по структуре (заголовки, пункты, абзацы), а не по числу знаков, и к каждому фрагменту прикладываем заголовок раздела и название документа. Размер подбираем замером на ваших вопросах.

Метаданные

Тип документа, подразделение, дата, версия, статус («действует» или «утратил силу»), уровень доступа. По ним фильтруют и сортируют, а без них поиск легко возвращает отменённый регламент.

Векторы и хранилище

Фрагмент превращается в вектор открытой многоязычной моделью эмбеддингов, которая работает на вашем сервере (например, из семейств E5 или BGE). На русском с профессиональной лексикой модели ведут себя по-разному, поэтому кандидатов сравниваем на ваших документах. Векторы лежат в pgvector, Qdrant или Weaviate: выбор зависит от объёма и от того, что уже есть в вашей инфраструктуре, подробнее в статье о векторных базах. Облачные сервисы вроде Pinecone остаются внешними, и для документов ограниченного доступа они чаще не подходят по требованиям заказчика.

Дубли и версии

Один приказ в трёх копиях вытесняет из выдачи остальное. Дубли находим по содержанию, устаревшую версию понижаем или скрываем.

Источники

Источники документов и что с ними не так

Заготовка для разбора: на ваших системах строки будут другими, вопросы те же.

Источник
Что внутри
Что мешает поиску
Что делаем
ИсточникОбщий диск и папки отделовфайлы Word, PDF, Excel
Что внутриПапки, договоры, приказы, инструкции
Что мешает поискуКопии вида «финал_2», нет статуса документа
Что делаемДубли находим по содержанию, статус берём из реестра или даты, спорное отдаём владельцу
ИсточникВики и портал знанийстатьи и инструкции
Что внутриРегламенты, ответы на частые вопросы
Что мешает поискуВложенные разделы, устаревшие страницы без отметки
Что делаемБерём структуру и дату изменения, устаревшее понижаем в выдаче
ИсточникФайлы в 1Сдоговоры, акты, спецификации
Что внутриДокументы, привязанные к контрагенту
Что мешает поискуЗначение файла определяет объект учёта, а не имя
Что делаемБерём файл вместе со ссылкой на объект учёта, права определяем по учёту
ИсточникСканы и фотографиистарый архив
Что внутриБумажные документы после сканирования
Что мешает поискуНет текстового слоя, шум, штампы поверх текста
Что делаемРаспознаём отдельным шагом, низкую уверенность помечаем, архив подключаем после основной базы
Права

Права доступа в поиске: фильтр в индексе, а не после выдачи

Видеть фрагмент закрытого документа тоже значит получить его содержимое. Поэтому права должны работать в момент поиска.

  • Права хранятся рядом с фрагментом. Группы, подразделения, уровень доступа записаны в метаданных, и запрос к индексу уже содержит условие по пользователю. Фильтр после выдачи ломает порядок результатов и может оставить пустую страницу.
  • Источник прав один. Это каталог пользователей (Active Directory, LDAP) либо права самой системы-источника. Копия прав в поиске обновляется по событию, а не раз в месяц. О едином входе — на странице SSO и MFA для корпоративных систем.
  • Увольнение и перевод. Права отзываются с задержкой, записанной в регламенте. Чем она короче, тем меньше окно, в котором уволенный ещё что-то находит.
  • Подсказки, сниппеты и счётчики. Автодополнение запроса, фрагменты и надпись «найдено N результатов» тоже не должны раскрывать закрытое.

Проверка при приёмке: из-под каждой роли ищем фразы из закрытых документов и убеждаемся, что их нет ни в списке, ни в подсказках, ни в счётчиках. Тот же принцип описан для личных кабинетов на странице разработки личного кабинета.

Выдача

Как показываем результат: список, ответ или похожие документы

Поиск без генерации ответа — законный и часто достаточный результат.

Вид выдачи
Кому нужна
Риск
Как контролируем
Вид выдачиСписок с фрагментамиклассический поиск
Кому нужнаТому, кто знает, что ищет, и хочет открыть документ
РискНужный абзац утонул внизу
Как контролируемПодсветка фрагмента, страница и раздел, фильтры по типу, подразделению и дате
Вид выдачиОтвет с цитатойпоиск и модель
Кому нужнаТому, кому нужен ответ, а не документ
РискМодель добавила то, чего в тексте нет
Как контролируемОтвет только из найденных фрагментов, ссылка на страницу, отказ при пустой выдаче, прогон эталонных вопросов
Вид выдачиПоиск внутри другой системы1С, CRM, портал
Кому нужнаСотрудникам, которые работают в привычном окне
РискПрава поиска и системы-источника расходятся
Как контролируемЕдиный вход, проверка прав на каждый запрос, журнал
Качество

Как измерить качество поиска до запуска

Умный поиск без замера остаётся демонстрацией. Для замера нужны вопросы и правильные ответы к ним.

Набор вопросов

Собираем настоящие вопросы сотрудников: из обращений в поддержку, из рабочих чатов, из журнала старого поиска. Для каждого эксперт отмечает документы и фрагменты, где лежит ответ. Начинаем с нескольких десятков вопросов и расширяем набор по ходу работы.

Что считаем

  • Нашёлся ли нужный документ в первых результатах: на первом месте, в первых трёх, в первых десяти.
  • На каком месте списка он стоит.
  • Доля вопросов, для которых нужного документа в выдаче нет.
  • Для ответов с цитатой: подтверждён ли ответ найденным фрагментом.

Сравнение режимов

Один набор вопросов прогоняется через полнотекстовый, смысловой и гибридный поиск, с переранжированием и без. Режим выбираем по цифрам. Сами цифры называются на вашем наборе, заранее мы их не обещаем.

После запуска

Журнал запросов показывает, что искали и где ничего не нашли: запросы без результата превращаются в список недостающих документов. Набор вопросов остаётся регрессионным тестом при смене модели или настроек. Как устроена цепочка «поиск, затем ответ», описано в статье о RAG-пайплайне.

Эксплуатация

Что происходит с индексом после запуска

Новые и изменённые документы

Индекс обновляется по событию или по расписанию. Изменённый документ переиндексируется, старая версия получает статус и уходит вниз выдачи.

Удаление и отзыв

Удалённый или отозванный документ пропадает из выдачи в срок, записанный в регламенте. Иначе поиск показывает то, чего в источнике уже нет.

Смена модели эмбеддингов

Векторы разных моделей несовместимы, поэтому смена модели означает пересчёт индекса. Строим его так, чтобы пересчёт шёл параллельно, а переключение не останавливало поиск.

Мониторинг

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

Что делаем

Из чего состоит работа и сколько она стоит

Цены — по тарифам. Цена называется по итогам обследования, остановиться можно после любой ступени, сделанное остаётся у вас по акту.

Обследование: одна база документов

Источники, права, виды вопросов. На выходе описание источников и прав, набор вопросов для замера и вилка бюджета. Вычитается из первого этапа, если продолжаете с нами.

200 000 ₽ · 2–3 недели

Обследование: несколько источников

Диск, вики, 1С, почта и права из каталога пользователей. На выходе схема потоков документов и матрица источников.

350 000 ₽ · 3–4 недели

Лёгкий пилот: поиск по одной базе

Индекс одного источника, гибридный поиск, простой интерфейс, замер на вашем наборе вопросов. Права на уровне подразделений.

150 000–400 000 ₽ · 2–8 недель

Тяжёлый пилот: несколько источников

Несколько источников, права из каталога пользователей, встраивание в портал или 1С, при необходимости ответ с цитатой, журнал запросов.

400 000–1 200 000 ₽ · 2–3 месяца

Вывод в эксплуатацию

Все источники, нагрузочная проверка, мониторинг, регламент обновления индекса, обучение администраторов.

от 1 500 000 ₽ этапами по 300 000–700 000 ₽ · от 3 месяцев

Сопровождение

Контроль качества на свежих вопросах, обновление индекса и правил, разбор инцидентов. Сверх пакета — 5 000 ₽ в час.

20 000 / 60 000 / 120 000 ₽ в месяц
Процесс

Как идёт работа

2–4 недели — Обследование

Источники и их владельцы, права, состав вопросов, ограничения безопасности. Решаем, нужен ли ответ модели или хватит выдачи.

Перед пилотом — Набор вопросов

Вместе с вашими экспертами собираем реальные вопросы и отмечаем правильные документы. Это эталон для всех замеров.

2–8 недель — Лёгкий пилот

Индекс одного источника, сравнение режимов поиска на вашем наборе, показ результата и ошибок.

От 2 месяцев — Подключение и запуск

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

Дальше — развитие или сопровождение

Новые источники и виды выдачи добавляются этапами с отдельной приёмкой.

Цена

Что двигает цену внутри вилки

Число и состояние источников

Дубли, сканы, таблицы и документы без статуса берут первые недели. У каждого источника свой способ доступа и свой владелец.

Права доступа

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

Объём и скорость обновления

Число документов и частота изменений определяют нагрузку на переиндексацию и размер хранилища. Мощность оборудования считаем на обследовании, закупаете её вы.

Вид выдачи

Список с фрагментами проще. Ответ с цитатой добавляет модель, проверки и эталонные вопросы для регулярной оценки.

Контроль

Что остаётся у вас и чего мы не делаем

Остаётся у вас

  • Исходный код в вашем репозитории с первого коммита.
  • Индекс, векторы и модели эмбеддингов на ваших серверах и инструкция по развёртыванию.
  • Набор вопросов и скрипт замера: ими можно проверять и другой поиск.
  • Описание источников и прав в проверяемом виде.
  • Право остановиться после любой ступени: сделанное остаётся у вас по акту.

Мы этого не делаем

  • Не размечаем документы вручную вместо ваших экспертов: даём инструкцию, оценку делают ваши люди.
  • Не сканируем и не оцифровываем бумажный архив.
  • Не обещаем, что поиск найдёт всё: полноту измеряем на наборе вопросов.
  • Не делаем поиск по интернету и не подключаем внешние поисковые сервисы к документам ограниченного доступа.
  • Не проводим аттестацию, лицензии ФСТЭК у нас нет.
  • Не дежурим круглосуточно и не берём работы дешевле 150 000 ₽.
Граница

Поиск, ассистент по документам или распознавание: где граница

Если пользователю нужен документ или абзац, достаточно поиска. Если нужен связный ответ с цитатами из нескольких документов, поверх поиска добавляется языковая модель: это RAG-система и ИИ-ассистент по документам. Поиск в этом случае остаётся основой, и его качество определяет качество ответов.

Если документ нужно не найти, а разобрать на поля (счёт, договор, акт), это интеллектуальная обработка документов. Если искать нужно в расшифровках звонков, смотрите речевую аналитику. Общая картина — на страницах LLM-приложений и разработки ИИ на заказ.

Типовые задачи разобраны в материалах о поиске по технической документации и по регламентам в закрытом контуре: это разборы, а не описание выполненных проектов.

Инструменты

На чём собираем

Поиск и модели
  • Векторные хранилища: pgvector, Qdrant, Weaviate
  • Полнотекстовый поиск в PostgreSQL или OpenSearch
  • Открытые многоязычные модели эмбеддингов и переранжирования на вашем сервере
  • Языковая модель на вашем сервере, если нужен ответ с цитатой
Данные и развёртывание
  • Python, очередь задач для чтения и индексации
  • Разбор Word, PDF, таблиц; распознавание сканов отдельным шагом
  • Каталог пользователей (LDAP, Active Directory) для прав
  • Docker, Nginx, GitLab CI, мониторинг индекса
Материалы

Материалы по теме

Статья

Семантический поиск и обычный поиск: как устроен и когда лучше

Чем отличается поиск по смыслу от поиска по словам, из каких частей он состоит и в каких случаях обычный поиск лучше.

  • Как устроен
  • Когда лучше
  • Гибрид
Читать →
Статья

Как выбрать векторную базу для RAG

pgvector, Qdrant, Weaviate: по каким критериям выбирать хранилище векторов и что проверить до решения.

  • pgvector
  • Qdrant
  • Weaviate
Читать →
Статья

Векторные базы данных простыми словами

Что такое эмбеддинг и зачем хранилище векторов, где без него можно обойтись.

  • Эмбеддинги
  • Хранилище
  • Выбор
Читать →
Заявка

Разберём ваши документы и вопросы, которые задают сотрудники

Сорок минут созвона: где лежат документы, что ищут сотрудники и кому что нельзя видеть. По итогам скажем, с какой ступени начинать и в какую вилку это укладывается.

Спасибо, заявка отправлена. Ответим в течение рабочего дня.

Не удалось отправить. Напишите в телеграм или позвоните.

Вопросы

Частые вопросы: семантический поиск по документам

Сколько стоит разработка семантического поиска по документам?

Обследование стоит 200 000 ₽ за одну базу документов и 350 000 ₽ при нескольких источниках. Лёгкий пилот — 150 000–400 000 ₽, тяжёлый — 400 000–1 200 000 ₽, вывод в эксплуатацию от 1 500 000 ₽ этапами по 300 000–700 000 ₽. Точная цена называется после обследования, оно вычитается из первого этапа, если продолжаете с нами.

Сколько времени занимает разработка?

Обследование — 2–3 недели при одном источнике и 3–4 недели при нескольких. Лёгкий пилот занимает 2–8 недель, тяжёлый 2–3 месяца, вывод в эксплуатацию от трёх месяцев. Сроки зависят от состояния документов и от того, насколько просто получить права доступа.

Чем семантический поиск отличается от обычного?

Обычный поиск ищет слова и их формы, семантический ищет близость смысла. Первый точнее находит номера и точные формулировки, второй находит документы, написанные другими словами. На практике чаще всего собирают гибрид, а пропорцию подбирают по набору ваших вопросов.

Нужна ли языковая модель для поиска?

Не обязательно. Для смыслового поиска нужна модель эмбеддингов, она небольшая и запускается на вашем сервере. Языковая модель нужна, если вы хотите получать связный ответ с цитатой, а не список документов. Решаем это на обследовании.

Как не показать сотруднику то, что ему видеть нельзя?

Права хранятся вместе с фрагментами, и запрос к индексу содержит условие по пользователю. Источник прав — ваш каталог пользователей. При приёмке из-под каждой роли ищем фразы из закрытых документов и проверяем выдачу, подсказки и счётчики.

Можно ли работать только на наших серверах?

Да, это основной вариант. Индекс, модели эмбеддингов и при необходимости языковая модель работают на вашем оборудовании или в вашем облаке. Облачные поисковые и векторные сервисы для документов ограниченного доступа чаще не подходят по требованиям заказчика.

Как проверить, что поиск работает хорошо?

На наборе реальных вопросов сотрудников, к каждому из которых эксперт отметил правильные документы. Смотрим, на каком месте в выдаче стоит нужный документ, и сравниваем режимы поиска. Цифры называем после замера на вашем наборе, заранее не обещаем.

Кому принадлежат код и индекс?

Исходный код лежит в вашем репозитории с первого коммита. Результат работ (исходный код, конфигурации, индекс, дообученные модели) передаётся вам по акту, открытые компоненты остаются под своими лицензиями, их список входит в документацию. Сопровождение: 20 000, 60 000 или 120 000 ₽ в месяц, сверх пакета 5 000 ₽ в час.

Вы работаете только в Ростове-на-Дону?

Мы в Ростове-на-Дону, работаем с заказчиками по всей России: удалённо и в вашем контуре. Доступ к системам и обследование согласуем на старте с вашей службой безопасности.