Логотип Студии Ивана Удачника Автоматизация, которая окупается
статьи - «ИИ для обработки документов: как извлекать данные из счетов, договоров и заявок без ручного переноса»

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

Как построить обработку документов с ИИ: распознавание, классификация, извлечение полей, нормализация, проверки, оценка качества и передача данных в учётные системы

ИИ для обработки документов: как извлекать данные из счетов, договоров и заявок без ручного переноса
короткий ответ

Обработка документов с ИИ - это не просто распознавание текста. Рабочий конвейер должен определить тип документа, извлечь нужные поля, привести значения к единому формату, проверить критичные данные и только после этого передать результат в учётную систему или человеку

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

Почему «мы распознали документ» ещё ничего не значит

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

Google Document AI различает извлечение пар «ключ - значение», таблиц, отметок и сущностей по заданной схеме 1. Microsoft Document Intelligence также описывает извлечение текста, структуры и полей; в документации отмечена замена старой общей модели на модель структуры для новых версий 2. Это разные задачи обработки, и для каждой нужны свои критерии проверки

Конвейер из девяти этапов

Для проектирования удобно использовать такой девятиэтапный рабочий конвейер; это не обязательный отраслевой стандарт.

1. Приём
2. Подготовка
3. Распознавание
4. Классификация
5. Извлечение
6. Нормализация
7. Проверка
8. Решение
9. Запись

1. Приём

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

2. Подготовка

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

3. Распознавание

Из изображения получается машинно читаемый текст и геометрия элементов

4. Классификация

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

5. Извлечение

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

6. Нормализация

Даты «11 сентября 26», «11.09.2026» и «2026-09-11» приводятся к одному формату, если год однозначно установлен из документа. Сумма «1 250 000,00 ₽» разделяется на числовое значение и валюту. Нормализация меняет представление данных, но не должна заполнять неизвестное по предположению

7. Проверка

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

8. Решение

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

9. Запись

Только после проверки данные передаются в учётную систему, очередь согласования или другую точку процесса

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

Матрица качества по полям

Условная «точность 95%» ничего не говорит о распределении ошибок между полями. Ниже пример матрицы: критичность нужно согласовать для своего процесса, поскольку даже номер документа может участвовать в защите от повторной оплаты

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

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

Доля правильно извлечённых значений поля = число документов с верным значением этого поля / число документов, где оно должно присутствовать

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

Как собрать эталонный набор

Для первого теста соберите реальные документы, покрывающие разнообразие потока, а не только удобные образцы поставщика

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

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

Не все поля должен извлекать ИИ

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

  • номер заказа берётся из связанного события
  • реквизиты поставщика проверяются по справочнику
  • итоговая сумма извлекается из документа и сверяется арифметически
  • ответственный определяется правилами процесса
  • текстовое назначение платежа может разбираться ИИ

Документы-пакеты и проблема разделения

В одном вложении могут быть счёт, акт и приложение - например, условный пакет на 17 страницах. До извлечения полей нужно определить границы документов. В Google Document AI для этого предусмотрены отдельные средства классификации и определения границ страниц 3

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

Что делать с уверенностью модели

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

По результатам проверки задайте условия для трёх маршрутов

  • автоматическая запись
  • ручная проверка
  • отклонение или повторная обработка

Условия записи суммы могут быть строже, чем условия записи описания товара. Высокая оценка уверенности не должна отменять обязательную арифметическую проверку или обнаруженное противоречие

Как считать экономику

Рассмотрим условный поток из 4 000 документов в месяц. При 2,5 минуты на открытие, перенос полей и первичную проверку ручная работа занимает 4 000 × 2,5 ÷ 60 ≈ 166,7 часа в месяц

Допустим, 70% документов проходят автоматически, а остальные требуют по 1 минуте проверки. Ручная часть составит 4 000 × 30% × 1 ÷ 60 = 20 часов. Разница - около 146,7 часа в месяц, пока без выборочной проверки автоматических результатов, повторной обработки и сопровождения. Эти трудозатраты нужно добавить, а стоимость сервисов посчитать отдельно

Все параметры здесь условные, не результат внедрения. Высвобождённые часы не равны денежной экономии: проверьте, изменились ли расходы, потребность в найме или пропускная способность. Если время проверки окажется больше минуты либо автоматическая доля ниже 70%, пересчитайте пример с фактическими значениями

Где чаще всего ломаются проекты

Настраивали только на удобных документах. В работе появляются фотографии, перекошенные сканы и старые шаблоны, которых не было в проверке

Проверяют весь документ одной цифрой. Критичные ошибки растворяются в общей точности

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

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

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

Какой результат считать готовностью к запуску

До разрешения автоматической записи зафиксируйте

  1. качество каждого критичного поля на эталонном наборе
  2. доля документов, уходящих человеку
  3. типичные причины ручной проверки
  4. поведение на неизвестном типе документа
  5. действия при техническом сбое
  6. журнал источника и изменённых данных
  7. владелец схемы и процесса обновления

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

источники и методика

  1. Google Document AI: извлечение данных - пары «ключ - значение», таблицы, отметки и сущности по заданной схеме. Описание функций не устанавливает точность на документах конкретной компании
  2. Microsoft Document Intelligence: извлечение данных и переход от общей модели - исходная ссылка перенаправляет сюда. Для версии 4.0 вместо prebuilt-document документация указывает prebuilt-layout с features=keyValuePairs
  3. Google Document AI: определение границ документов в пакете - процессор определяет границы страниц; физическое разделение файла выполняется отдельно

Матрица полей, конвейер и расчёт 4 000 документов - авторские примеры. 70%, 2,5 минуты и 1 минута заданы условно, не получены у клиента. Упоминание реквизитов и налоговых полей не заменяет бухгалтерские и правовые требования к конкретным документам

Сотрудники вручную разбирают счета, договоры или заявки?

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

Разобрать работу с документами Сначала проверим экономику процесса, а уже потом можно обсуждать внедрение

Частые вопросы

Чем обработка документов с ИИ отличается от обычного распознавания

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

Как измерять точность

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

Можно ли сразу записывать данные автоматически

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

Сколько документов нужно для теста

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

Нужен ли ИИ для всех полей

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