В эпоху цифровой трансформации каждая минута работы с документами на вес золота. Юридические отделы, банки, госучреждения ежедневно обрабатывают сотни договоров, доверенностей и судебных приказов. Ручной ввод данных, поиск реквизитов и проверка сроков могут отнимать до 20 минут на документ — и это если сотрудник не отвлекся на кофе.
В нашей линейке продуктов есть универсальная IDP-платформа ContentCapture. Она хорошо понимает структурированные документы, а вот при обработке неструктурированных данных раньше могли возникать сложности. Чтобы решить эту проблему, мы в новом релизе продукта настроили интеграцию с облачными большими языковыми моделями (LLM), такими как YandexGPT и GigaChat.
Делимся подробностями и рассказываем, как оценивали качество работы LLM с разными типами документов.
Почему NLP нам было уже недостаточно
Традиционные методы обработки естественного языка (NLP) требуют долгого обучения и тщательной подготовки. Это особенно заметно при работе с уставами, многостраничными договорами или криво отсканированными PDF. Классические подходы сталкивались с двумя проблемами. Во-первых, с низким качеством распознавания. Особенно в «мусорных» полях, таких как печати или рукописные пометки. Во-вторых, с длительностью обработки: настройка технологии под конкретный тип документа могла занять несколько часов, а в случае сложных документов — и того больше. Например, администратор, настраивающий IDP-платформу, вряд ли сможет в одиночку корректно разметить десятки или даже сотни документов так, чтобы система их правильно идентифицировала. Для этого ему понадобится помощь специалиста: юриста или бухгалтера.
С появлением LLM эти ограничения нам удалось преодолеть. Теперь настройка занимает не больше 10 минут: достаточно загрузить данные, написать или вставить готовый промт, выполнить маппинг (сопоставление) полей — и система готова к работе
Однако полностью заменить NLP на LLM нам не удалось. Языковые модели стали мощным дополнением, а не заменой классических инструментов. Ведь у каждого подхода есть свои сильные и слабые стороны. Так, NLP безошибочно обрабатывает шаблонные документы, но «ломается» при малейшем изменении формата, а LLM мгновенно адаптируется к новым задачам, но иногда галлюцинирует.

Как настроена интеграция LLM и СontentCapture
Для интеграции ContentCapture с LLM необходимо выполнить три ключевых этапа: настроить подключения, создать промты и сопоставить поля. Разберем каждый шаг подробно, чтобы понять, как платформа работает изнутри.
Первый этап — интеграция с облачными LLM. Администратор прописывает API-ключи в web.config. На втором этапе нужно подготовить промты для LLM. Здесь есть несколько важных нюансов, о которых мы тоже скоро расскажем в отдельной статье.
Финальный этап — связывание данных из LLM с полями в ContentCapture. Хотя это делается вручную, есть хорошая новость: достаточно однократно настроить маппинг, чтобы система запомнила правила и начала применять их ко всем новым документам автоматически.
Ниже на видео показали, как работает LLM в связке с СontentCapture.
Какие метрики использовали для оценки качества YandexGPT и GigaChat
Для оценки качества поиска данных с помощью LLM выбрали две основных метрики: BERTScore и точность извлечения полей (Accuracy).
Accuracy показывает, как часто модель угадывает правильный ответ. Эту метрику используем для точных совпадений и оценки качества поиска числовых или строгих текстовых данных, где важно полное совпадение. Например, для дат, сумм, ФИО, индексов и кодов.
BERTScore учитывает смысл искомой фразы и частичные совпадения в тексте документа. Метрика помогает оценить, насколько хорошо модель понимает скрытый смысл текста. Например, если в документе не написано прямо это «Московский суд», но по другим деталям об этом можно догадаться — BERTScore покажет, правильно ли LLM считала эту информацию. Также метрику используют для проверки саммаризации текстов: насколько они близки к оригиналу по смыслу.

Мы тестировали облачные LLM на двух типах документов: доверенностях и судебных приказах. На доверенностях YandexGPT показал лучшие результаты, а вот на юридических документах модели работали примерно одинаково.
Что дальше
В текущем релизе ContentCapture отсутствует возможность сегментировать текст перед отправкой в LLM. Также возникают проблемы с чекбоксами: LLM распознает их как текст, но не всегда корректно определяет состояние отметки. Например, пустой чекбокс в доверенности может быть ошибочно воспринят как отмеченный. Технологически эту проблему пока нельзя решить, поэтому при обработке подобных документов требуется ручная верификация результатов распознавания, которые получены от LLM.
Помимо этого, в рамках развития продукта мы работаем сейчас над следующими функциональными улучшениями:
Поддержка локальных моделей — это позволит работать без зависимости от внешних API.
Сегментация документов — система будет передавать в LLM только релевантные фрагменты, повышая точность обработки.
Подсветка текста — пользователи смогут видеть, какие именно фрагменты из исходного документа LLM использовала для извлечения полей, что улучшит прозрачность работы.
Комментарии (2)
qqqgod
01.08.2025 13:47В текущем релизе ContentCapture отсутствует возможность сегментировать текст перед отправкой в LLM. Также возникают проблемы с чекбоксами: LLM распознает их как текст, но не всегда корректно определяет состояние отметки. Например, пустой чекбокс в доверенности может быть ошибочно воспринят как отмеченный. Технологически эту проблему пока нельзя решить, поэтому при обработке подобных документов требуется ручная верификация результатов распознавания, которые получены от LLM.
С этим как не странно тоже есть мысли как можно обойти этот технологическую проблему.)
qqqgod
Статья хорошая, как раз с другом занимаемся подобным направлением.