Автоматизация обработки страховых заявлений, тикетов поддержки и KYC-документов может работать целиком внутри собственной инфраструктуры компании, без отправки какого-либо документа внешнему провайдеру моделей. Языковая модель — один этап из семи, наряду с классификацией, извлечением текста и структуры страницы, валидацией, очередью ручной проверки, пополевой оценкой и аудиторской записью. Разбираем, как строится каждый этап, чем различаются страховые заявления, тикеты и KYC и что спросить у компании, которая предлагает это построить.
У страховых заявлений, тикетов поддержки и KYC-документов общая проблема: люди читают их, чтобы заполнить поля, нужные другой системе. Страховое заявление превращается в номер полиса, дату страхового случая и позиции счёта; тикет — в категорию и клиента; документ, удостоверяющий личность, — в имя, дату рождения и дату окончания срока действия. Требование, которое приходит вместе с задачей, обычно звучит раньше всего остального: документы не должны уходить в OpenAI или к любому другому внешнему провайдеру моделей.
Где работает модель — отдельное решение; варианты сравниваются в одной из предыдущих статей этого блога. Здесь предполагается модель с открытыми весами, развёрнутая внутри вашей инфраструктуры, и описывается пайплайн вокруг неё — от приёма до записи, которую потребляет другая система. Статья объясняет механику; это не кейс.
Короткий ответ: языковая модель — один этап из семи, и все семь работают внутри вашей инфраструктуры. Документы классифицируются при приёме; текст и структура страницы извлекаются с помощью OCR или модели анализа макета до любого вызова модели; движок сервинга на вашей инфраструктуре ограничивает вывод схемой для каждого типа документов; код валидирует запись по схеме и бизнес-правилам; не прошедшие проверку и сомнительные поля уходят в очередь ручной проверки, исправления из которой пополняют оценочный набор; точность измеряется по каждому полю и типу документов; а у каждого поля сохраняется запись о модели, промпте и версии схемы, которые его дали. Страховые заявления, тикеты и KYC разделяют этот скелет и различаются правилами, персональными данными и сроками хранения. Что amBrain может подтвердить публично о собственной работе с LLM — полностью: мы вывели интеграцию LLM в прод внутри FinTech-периметра клиента: извлечение и нормализация неструктурированных уведомлений брокеров и торговых площадок — о корпоративных действиях, изменениях по инструментам и марже — в структурированные записи, которые потребляет торговая система. Клиент не называется, какие из этих этапов использовались в том проекте, не раскрывается, и эта статья — не кейс по нему.
Удержание данных вне внешних провайдеров — свойство всего пайплайна, а не вызова модели: OCR-движок, инструмент проверки, оценочный набор, аудиторское хранилище и логи — все они содержат документ или что-то производное от него, как полностью перечислено в предыдущей статье о пилотах.
От типа документа зависит каждый последующий этап: схема, правила, проверяющие и срок хранения, поэтому классификация идёт первой и определяет маршрут. Пакет документов по страховому заявлению, пришедший по почте, может содержать бланк заявления, счета, фотографии и медицинское заключение; каждое вложение классифицируется отдельно и привязывается к тому же делу.
PDF, сгенерированный программой, содержит текстовый слой, который можно прочитать напрямую. Скан или фото с телефона содержит только пиксели, и что-то должно превратить их в символы с координатами.
Open-source движки для этого шага работают локально. Документация командной строки Tesseract показывает вывод в формате TSV со столбцом уверенности для каждого слова и вывод hOCR с атрибутом уверенности слова — пословный сигнал, который может использовать этап маршрутизации. Docling — open-source библиотека конвертации под лицензией MIT — называет среди своих возможностей для PDF разметку страницы, порядок чтения и структуру таблиц, поддержку OCR для отсканированных PDF и изображений, а также локальное выполнение для чувствительных данных и изолированных (air-gapped) сред.
Вместо этого изображение страницы может прочитать визуально-языковая модель: документация vLLM о мультимодальных входах указывает, что вход в виде изображений поддерживается в соответствии с OpenAI Vision API. Что работает лучше, измеряется на ваших документах — с учётом того, что отдельный этап OCR возвращает координаты слов и уверенность распознавания, а модель, читающая изображение, — нет.
Каждый тип документов получает собственную схему вывода, которая версионируется как код. Документация vLLM о structured outputs перечисляет пять видов ограничений: choice, regex, JSON-схема, контекстно-свободная грамматика и structural tag, — с бэкендами, среди которых xgrammar, guidance, outlines и lm-format-enforcer, и значением по умолчанию auto, которое попытается выбрать подходящий бэкенд исходя из деталей запроса.
Проверяйте вывод ещё раз в коде приложения обычным валидатором JSON Schema. Бэкенды различаются: на той же странице отмечено, что xgrammar, guidance и outlines используют регулярные выражения в стиле Rust, а lm-format-enforcer — модуль re из Python, и что для моделей Qwen3 Coder с включённым reasoning structured outputs могут оказаться отключены, если содержимое reasoning не разбирается в отдельное поле. Генерация, остановленная лимитом токенов, к тому же обрывается посреди записи. Вторая проверка стоит дёшево.
Запись, соответствующая схеме, всё равно может быть неверной. Её ловят те проверки, которые бэк-офис сегодня выполняет вручную, — записанные в виде кода для каждого типа документов:
Для документов, удостоверяющих личность, есть собственный валидатор. ICAO Doc 9303 — спецификация машиночитаемых проездных документов — определяет контрольные цифры в машиночитаемой зоне, вычисляемые по модулю 10 с непрерывно повторяющимися весами 7, 3, 1, где буквы от A до Z считаются как 10–35, а символ-заполнитель — как ноль, и указывает, что контрольные цифры позволяют считывателям проверить, что данные интерпретированы правильно.
Маршрутизация решается по каждому полю, а не по документу: страховое заявление, у которого не сходится итог счёта, а всё остальное проходит, отправляет человеку одно поле, а не всё дело. Сигналы:
Собственное заявление модели о своей уверенности намеренно не используется; в одной из предыдущих статей этого блога объясняется, почему это слабый фильтр.
Экран проверки показывает страницу с подсвеченными цитируемыми словами рядом с предложенным значением, так что проверяющий сверяет, а не перечитывает. Каждое исправление сохраняется по полю: старое значение, новое значение, проверяющий и причина из короткого списка. Когда его подтверждает второй человек, исправление попадает в оценочный набор, но никогда — в замороженную часть, по которой принимаются решения о релизе.
Одна цифра точности для всего пайплайна скрывает важный результат — например, что даты окончания срока действия не проходят на удостоверениях личности одной страны, тогда как все остальные поля проходят. Измеряйте в тех же разрезах, что использует маршрутизация:
Релиз — будь то новая модель, промпт, схема, версия OCR или валидатор — оценивается на замороженном наборе до выхода в прод, и планка действует по каждому полю: ни одно поле ни в одном типе документов не опускается ниже своего проходного порога, даже если среднее растёт. Как собрать первый размеченный набор, разобрано в предыдущей статье о пилотах, которые так и не дошли до прода.
Спорное страховое заявление или вопрос аудитора о личности, прошедшей проверку, касается одного поля в одном документе. Запись, которая на него отвечает, пишется по ходу работы пайплайна, по одной на поле, в хранилище только для добавления (append-only):
Регламент ЕС об ИИ (AI Act) устанавливает требование к логированию для систем, которые он относит к системам высокого риска: статья 12(1) гласит, что системы ИИ высокого риска должны технически позволять автоматическую запись событий (логов) на протяжении всего срока существования системы. Приложение III перечисляет виды использования высокого риска, среди них оценку кредитоспособности физических лиц, за исключением выявления финансового мошенничества, а также оценку рисков и ценообразование в страховании жизни и здоровья; статья 6(3) определяет, когда система из этого перечня всё же не считается системой высокого риска, например когда она выполняет узкую процедурную задачу. Подпадает ли конкретный пайплайн под действие регламента — вопрос к юристам клиента; пополевая запись, которая пишется во время работы, полезна в любом случае.
Пайплайн копирует персональные данные в большее число мест, чем исходная папка. Статья 5(1)(c) GDPR требует, чтобы персональные данные были адекватными, релевантными и ограниченными тем, что необходимо для целей, для которых они обрабатываются. Статья 25(2) требует мер, обеспечивающих, что по умолчанию обрабатываются только персональные данные, необходимые для каждой конкретной цели, и распространяет это на объём собираемых данных, степень их обработки, срок хранения и доступность. В терминах пайплайна:
OWASP Logging Cheat Sheet относит чувствительные персональные данные и некоторые виды персонально идентифицирующей информации, например данные о здоровье и государственные идентификаторы, к данным, которые обычно не следует записывать в логи напрямую, и говорит, что вместо этого такие данные следует удалять, маскировать, очищать, хешировать или шифровать.
Срок хранения различается по типам документов, а для KYC в ЕС его устанавливает законодательство о противодействии отмыванию денег. Статья 77 Регламента (ЕС) 2024/1624, который применяется с 10 июля 2027 года, требует от обязанных субъектов хранить копию документов и информации, полученных в ходе надлежащей проверки клиента, и обеспечивать, чтобы из этих записей ничего не было изъято. Она устанавливает срок хранения в пять лет, отсчитываемый от окончания деловых отношений или от даты разовой операции, после чего персональные данные подлежат удалению, с учётом исключений, предусмотренных той же статьёй. Исходная KYC-запись остаётся полной в основной учётной системе; собственные копии пайплайна — от трейсов до снимков для проверки — минимизируются и удаляются по своему, более короткому графику.
Нагрузка на бэк-офис неравномерна: одно событие может затронуть сразу многих страхователей, а сбой переполняет очередь тикетов. Очереди, backpressure и ручной фолбэк разобраны в предыдущей статье о пилотах; вот что специфично для пайплайна документов на своей инфраструктуре:
Мощности ускорителей внутри вашей собственной инфраструктуры в краткосрочной перспективе фиксированы, поэтому порядок, в котором очереди уступают друг другу, определяется заранее, а не во время пика.
То, что документы не уходят к внешнему провайдеру моделей, определяется тем, где работает модель. Можно ли доверить их пайплайну, определяется всем, что вокруг модели: схемой, правилами, очередью ручной проверки и записью о том, кем получено каждое поле.
У этого вопроса три вида ответов, и продают они разное. Вендоры систем обработки документов продают платформу — иногда устанавливаемую на собственном оборудовании клиента, — которую вы настраиваете под свои документы. Облачные провайдеры продают управляемые сервисы, работающие в их инфраструктуре. Инженерные компании строят пайплайн в вашей среде из открытых компонентов и ваших правил.
С кем бы из них вы ни говорили, эти вопросы показывают, строила ли команда такое раньше:
Если ответ на первый и пятый вопросы остаётся общим, значит, путь данных и аудиторский след ещё не спроектированы.
Что amBrain может подтвердить публично помимо интеграции в проде, описанной в кратком ответе выше: amBrain пишет софт с 2019 года. Мы работаем в трёх форматах: полная разработка, выделенная команда или наши инженеры в вашей команде. Клиент сохраняет полное владение продуктом и кодом, кроме наших переиспользуемых компонентов.
Эта статья объясняет, как работает такой пайплайн; это не кейс, в ней не называются клиенты, и она не утверждает, что amBrain построил систему для страховых заявлений, тикетов или KYC. Названная выше работа в проде — извлечение уведомлений брокеров и торговых площадок для торговой системы.
Поэтому первый шаг — не выбор модели. Первый шаг — письменно зафиксировать для одного типа документов схему, правила, которые её проверяют, и поля, которые человек должен видеть всегда, — до того как в пайплайн попадёт хоть один документ.
Принесите текущую архитектуру и тот сценарий отказа, который вас беспокоит, — разберём его вместе за полчаса.